MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: FindRoot cannot find obvious solution

  • To: mathgroup at
  • Subject: [mg48085] Re: FindRoot cannot find obvious solution
  • From: ab_def at (Maxim)
  • Date: Tue, 11 May 2004 05:20:08 -0400 (EDT)
  • References: <> <c6o3lc$cd0$> <c6qags$s56$> <> <c7klcs$2kn$>
  • Sender: owner-wri-mathgroup at

Andrzej Kozlowski <akoz at> wrote in message news:<c7klcs$2kn$1 at>...

> makes everything work perfectly. This seems to be the case with almost  
> every "problem" you have reported for as long as I can remember.  (To  
> deal with the remaining ones, like why 1`2 == 2  gives True, etc,  
> requires only careful reading of the documentation).

Actually this was discussed in a different thread ( ),
so I'll paste your answer from there:

Andrzej Kozlowski wrote:

Besides it is well known that Mathematica's high precision arithmetic 
model, based on approximate interval arithmetic,  works well only for 
numbers whose uncertainty is much smaller than the number itself. This
is the case in all applications I have ever heard of. For very low 
precision numbers like your examples, it is known to give excessively 
pessimistic or wrong answers, but so what?

The statement that arbitrary-precision arithmetics in Mathematica is
based on interval arithmetics is inaccurate; perhaps we might say that
since we have an estimate for the error, then we also implicitly have
an interval, but this just leads to confusion with true interval
arithmetics which is implemented for Interval objects.

Instead, arbitrary-precision computations in Mathematica use
significance arithmetics and the notion of condition number to keep
track of precision. For example, squaring a number can lose one binary
digit, so after calculating the square Mathematica subtracts Log[10,2]
from the precision of the input -- it doesn't use Interval to
represent bignums and this squaring isn't performed on any intervals.

Next, the suggestion that the uncertainty should be much smaller
(exactly how much that would be?) than the number itself seems to be
rather vacuous -- if the uncertainty and the number are of the same
order, that would mean that no digits are known for certain, that is,
the precision is zero.

I wouldn't say that true interval arithmetics is 'known' to give wrong
answers -- that would totally defy the purpose of intervals; the whole
point of using them for approximate calculations is to obtain bounds
which are certain to encapsulate the possible error (so 'pessimistic'
and 'wrong' are more like antinomes -- pessimistic means that those
bounds might be too wide).

But now, as far as I understand from your last post, you changed your
mind and instead of saying that those examples just gave meaningless
output due to low precision (which doesn't seem like a wise thing for
Interval to do anyway), you claim that, after reading documentation,
you can offer some explanation other than "so what?". Then please
elaborate on why 1`2==2.2, 1`2==2.3 and
IntervalMemberQ[Sin[Interval[1`2]],0] work the way they do. I'd like
to hear the explanation, that's why I was asking the question in the
first place.

Maxim Rytin
m.r at

  • Prev by Date: Re: FindRoot and NDSolve
  • Next by Date: complex cube roots?
  • Previous by thread: Re: Re: FindRoot cannot find obvious solution
  • Next by thread: Re: Re: FindRoot cannot find obvious solution