MathGroup Archive 2010

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

Search the Archive

Re: FindRoots?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112195] Re: FindRoots?
  • From: ADL <alberto.dilullo at tiscali.it>
  • Date: Sat, 4 Sep 2010 04:00:46 -0400 (EDT)
  • References: <i5qhi6$plh$1@smc.vnet.net>

In fact, I am a little surprised by the suggestions related to using
Reduce for the purposes of soving numeric equations.

First, it has been repeated in this Group several times (and also by
Andrej) that doing so "can cause all sorts of weird problems".
Second, the impossibility to deal with interpolations with Reduce is
quite clear.
Third, Reduce has been reported a number of times to have strange
bugs, possibly due to its intrinsic complexity.
For example, please, try the following consecutive inputs on a fresh
kernel (I have 7.0.1)

(* x is confined to be negative and the result is correct *)
In[1]:= Reduce[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] == 0 && -2 <  x <
-1/Sqrt[2], x,  Reals]

Out[1]=
x == Root[{Log[-((-1 + 2*#1)/(-1 + 2*#1^2))] + 2*#1 & ,
-0.86193624643066461859672257230652325788`20.308604836334762}]


(* x can be negative and positive. The last root is lost *)
In[2]:= Reduce[{2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] == 0, -2 < x <
2}, x,  Reals]

Out[2]=
x == Root[{Log[-((-1 + 2*#1)/(-1 + 2*#1^2))] + 2*#1 & ,
0.56055055440035189796824605607850099728`20.301071037894882}]


(* This is the first input. The root is lost and will be never
recovered again *)
In[3]:= Reduce[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] == 0 && -2 <  x <
-1/Sqrt[2], x, Reals]

Out[3]=
False


So, my understanding is that the concept of Rationalizing results and
applying N at the end to solve a numeric equation, which even Reduce
does internally, appears contrary to the expressed opinion of several
experts about Mathematica.

The introduction of an "NReduce" function (just to make a hypothesis)
could perhaps be more coherent.

ADL


  • Prev by Date: Re: <Null> while building lists
  • Next by Date: Re: <Null> while building lists
  • Previous by thread: Re: FindRoots?
  • Next by thread: Re: FindRoots?