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