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. >