Re: Re: 1`2 == 1*^-10

*To*: mathgroup at smc.vnet.net*Subject*: [mg71581] Re: [mg71572] Re: [mg71525] 1`2 == 1*^-10*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Fri, 24 Nov 2006 01:17:01 -0500 (EST)*References*: <200611221022.FAA04444@smc.vnet.net> <200611231041.FAA25296@smc.vnet.net> <acbec1a40611230510g1e2a4b96y206baf920cc5dbdf@mail.gmail.com>

Mathematica's confidence aritmetic is not suitable and not meant for this sort of situation. In empirical situations you never actualy know that your data has exactly 2 or exactly 3 digits of precision. What you do know at best is that your error has has a certain statistical distribution; and the correct approach in such cases is the "backward error" computation of numerical analysis. Mathematica's approach is based on interval arithmetic ("forward error") which is can be very useful for purely mathematical purposes (one can actually use it to produce "exact" proofs, as has been demonstrated on this group. But it is a poor model of situations where one deal with empirical errors. For example, in Hans Stetter's book "Numerical Polynomial agebra" (and a number of other places) the notion of an empirical polynomial is considered. The coefficients of such polynomials are known only vaguely. One does not even any precise bounds within which each coefficient lies, but only certain specified tolerances, which can be different for different coefficients. The questions that arise in connection with empirical data, e.g. finding roots of polynomial systems, are not those of equality (as with Mathemaitca's interval like approximate objects) but of validity. A candidate solution for an empirical problem with specified data is considered valid with a certain degree of validity if it is the exact solution for an set of empirical data lying within a certain distance (in a metric defined using the tolerances for the different coefficients) of the specified data. The minimum distance between the specified data and data for which the candidate solution is an exact solution constitutes the backward error (originally introduced by J. Wilkinson) of the solution. What Mathematica's "significane arithmetic" is really good at is automatic detection of numerical instability and automatic increase of precision of computations to overcome it. Numerical instability is a mathematical and not empirical phenomenon. The power of significance arithmetic is shown at its best in such techniques as approximate root isolation or numerical Groebner basis (used by NSolve). Typically precision of over one hundred digits is used. Empirical problems with low precision data are not well modelled by this and any results obtained with significance arithmetic are almost certain to be useless. What you need is old fashioned backward error analysis, which seems rather hard to implement in software (I don't know of any program that performs is automatically) and requires certain basic skils in numerical analysis. Andrzej Kozlowski On 23 Nov 2006, at 22:10, Chris Chiasson wrote: > One reason a person may want to work with low precision (or accuracy) > is when the given data is already of low precision (or accuracy). For > instance, I only know how tall I am to within half an inch or so. If I > were doing a calculation involving my height, I would probably enter > it as: > > height=6*12+1``0 > > That's already down to 1.857 digits of precision. > > On 11/23/06, Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote: >> This has come up several times before. I can't imagine why you need >> to consider numbers with two digits of precision but if you really do >> I think the best suggestion can be found here: >> >> >> http://forums.wolfram.com/mathgroup/archive/2006/Feb/msg00108.html >> >> Andrzej Kozlowski >> >> >> On 22 Nov 2006, at 19:22, Andrew Moylan wrote: >> >> > Hi all, >> > >> > Please help me understand the following behaviour, which was >> wrecking >> > havoc the results I get from calling the function Sort: >> > >> > Evaluating >> > 1`2 == 1*^-10 >> > gives >> > True >> > >> > Correspondingly, evaluating each of >> > 1`2 < 1*^-10 >> > and >> > 1`2 > 1*^-10 >> > give >> > False >> > >> > Can anyone explain why these two numbers are declared to be equal? >> > It's >> > inconsistent with my previous understanding of how arbitrary- >> precision >> > numbers are interpreted in Mathematica. >> > >> > (I've resolved my sorting problem by using OrderedQ instead of >> Less as >> > the ordering function in Sort. But why was this necessary?) >> > >> > Cheers, >> > Andrew >> > >> >> > > > -- > http://chris.chiasson.name/

**References**:**1`2 == 1*^-10***From:*"Andrew Moylan" <andrew.j.moylan@gmail.com>

**Re: 1`2 == 1*^-10***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>