MathGroup Archive 2010

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

Search the Archive

Re: FindRoots?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112177] Re: FindRoots?
  • From: Gianluca Gorni <gianluca.gorni at uniud.it>
  • Date: Fri, 3 Sep 2010 06:10:23 -0400 (EDT)

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. Ted's
>> package is quite robust and returns all the roots in order.
>
>
> Mathematica's Reduce can do this (in the case of complex analytic functions, which covers most important practical cases) since version 7. I have posted examples of this several times, but somehow nobody seems to notice and 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, from the mathematical point of view, the methods used in the RootSearch package are rather primitive, relatively to the current state of knowledge in this field, of course. Not only does Reduce solve most transcendental equations much faster but it also does not require setting the values of any options 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, much more general methods of solving transcendental equations exist (in general the functions need not be analytic and can involve systems of n-real equations in n-vari
 a!
b
> l!
> es with non-vanishing Jacobian). An example of such a method can be found 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 package into what is supposed to be a sophisticated mathematical program?
> Sometimes certain capabilities are missing from Mathematica simply because implementing "bleeding edge" algorithms in a way that is satisfactory fora program that has the kind of aspirations that Mathematica obviously does takes time.
>
> These sort of "helpful suggesting", particularly when coming from non-exp=
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: Another question on ParallelDo
  • Next by Date: Re: 2 dimensional engineering problem
  • Previous by thread: Re: FindRoots?
  • Next by thread: Re: FindRoots?