MathGroup Archive 2010

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

Search the Archive

Re: FindRoots?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112210] Re: FindRoots?
  • From: Gianluca Gorni <gianluca.gorni at uniud.it>
  • Date: Sat, 4 Sep 2010 04:03:31 -0400 (EDT)

Very bizarre! Try the following inputs in sequence,
in a fresh kernel:

eq == 2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] ==== 0;
Reduce[eq && -2 < x < -1/Sqrt[2], x, Reals]
Reduce[eq && x < 0, x, Reals]
Reduce[eq && -2 < x < -1/Sqrt[2], x, Reals]

I get the first Reduce output correct, but the next two outputs
are False.
If I re-evaluate the inputs in the same kernel,
I get False three times.

Strange results also from the following, in a fresh kernel:

eq == 2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] ==== 0;
Reduce[eq && -2 < x < -1/Sqrt[2], x, Reals]
Reduce[eq, x, Reals]
Reduce[eq && -2 < x < -1/Sqrt[2], x, Reals]

$Version
7.0 for Mac OS X x86 (64-bit) (February 19, 2009)

Best regards,
Gianluca Gorni



On 03/set/2010, at 14.38, Bob Hanlon wrote:

>
> $Version
>
> 7.0 for Mac OS X x86 (64-bit) (February 19, 2009)
>
> Reduce[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] ==== 0 &&
>     -2 < x < -1/Sqrt[2], x, Reals] //
>  N // ToRules
>
> {x->-0.861936}
>
> sol == x /. First@NDSolve[
>     {x'[t] ==== x[t] + 2, x[0] ==== -1},
>      x, {t, 0, 2}];
>
> Minimize[{Abs[sol[t]], 0 < t < 2}, t][[2]]
>
> {t->0.693147}
>
>
> Bob Hanlon
>
> ---- Gianluca Gorni <gianluca.gorni at uniud.it> wrote:
>
> ==========================
>
> In my opinion Reduce can replace RootSearch in some
> cases but not in others.
>
> First of all, Reduce has bugs. Here is an analytic function
> that clearly has a real root:
>
> Plot[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))], {x, -2, -1/Sqrt[2]}]
>
> Still, Reduce does not see it (as of version 7.0.1):
>
> Reduce[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] ======== 0 && -2 <
>   x < -1/Sqrt[2], x, Reals]
> False
>
> (I reported this example to wolfram last year).
>
> Next, Reduce has problems with inexact input, and with
> InterpolatingFunction, so that it won't work with
> the output of NDSolve:
>
> sol ==== x /.
>  First@NDSolve[{x'[t] ======== x[t] + 2, x[0] ======== -1}, x, {t, 0, 2}]=
;
> Reduce[sol[t] ======== 0 && 0 < t < 2, t]
>
> or, say, with functions obtained by interpolating between Locators.
> RootSearch works fine in these cases.
>
> I have made some interactive panels where I can change the Locators
> with the mouse and I get in real time the roots of the interpolating
> function as big Points in the plot: I can do this with RootSearch,
> but not with Reduce.
> Unfortunately, I can't give these panels to other users, because
> I can't assume that they have RootSearch installed.
>
> I endorse the wish that the functionality of RootSearch were available
> in the kernel.
>
> Best regards,
> Gianluca Gorni
>
>
>
> On 01/set/2010, at 12.28, Andrzej Kozlowski wrote:
>
>>
>> On 30 Aug 2010, at 12:19, David Park wrote:
>>
>>> I don't know why Wolfram doesn't acquire the rights to this package and
>>> incorporate it as part of regular Mathematica. Finding all the roots of=
 a
>>> real function on a 1-dimensional domain is the most common case of root
>>> finding, and it is the one thing regular Mathematica is very poor at. T=
ed's
>>> package is quite robust and returns all the roots in order.
>>
>>
>> Mathematica's Reduce can do this (in the case of complex analytic functi=
ons, which covers most important practical cases) since version 7. I have p=
osted examples of this several times, but somehow nobody seems to notice an=
d we keep reading strange remarks like the above. Well, I don't want it to =
sound like I am trying to diminish Ted's achievement, but quite frankly, fr=
om the mathematical point of view, the methods used in the RootSearch packa=
ge are rather primitive, relatively to the current state of knowledge in th=
is field, of course. Not only does Reduce solve most transcendental equatio=
ns much faster but it also does not require setting the values of any optio=
ns by hand, and, what I think is most important, the results thus obtained =
are provably correct, which is not the case with Ted's package. In fact, mu=
ch more general methods of solving transcendental equations exist (in gener=
al the functions need not be analytic and can involve systems of n-real equ=
ations in n-vari
> a!
> b
>> l!
>> es with non-vanishing Jacobian). An example of such a method can be foun=
d in one of my demonstrations on the demonstrations site (the algorithm can=
 easily be converted to a practical method for real life probl ems.
>>
>> In view of this, how could there be any justification for the suggestion=
 that Wolfram incorporates what is actually an impressive but amateurish pa=
ckage into what is supposed to be a sophisticated mathematical program?
>> Sometimes certain capabilities are missing from Mathematica simply becau=
se implementing "bleeding edge" algorithms in a way that is satisfactory fo=
ra program that has the kind of aspirations that Mathematica obviously does=
 takes time.
>>
>> These sort of "helpful suggesting", particularly when coming from non-ex=
p==
> erts, have no chance whatever of being accepted and even can produce the =
im==
> pression of an ulterior motive being involved.
>>
>


  • Prev by Date: Re: FindRoots?
  • Next by Date: Re: FindRoots?
  • Previous by thread: Re: FindRoots?
  • Next by thread: Re: FindRoots?