Re: FindRoots?

*To*: mathgroup at smc.vnet.net*Subject*: [mg112185] Re: FindRoots?*From*: Matthias Bode <lvsaba at hotmail.com>*Date*: Sat, 4 Sep 2010 03:58:57 -0400 (EDT)

Hola Gianluca: In[1]:== Reduce[2*x + Log[-((-1 + 2*x)/(-1 + 2*x^2))] ==== 0 && -2 < x < -Sqrt[2]^(-1), x, Reals] Out[1]== x ==== Root[{Log[-((-1 + 2*#1)/(-1 + 2*#1^2))] + 2*#1 & , -0.86193624643066461859672257230652325788`20.308604836334762}] In[2]:== 2*x + Log[-((-1 + 2*x)/(-1 + 2*x^2))] /. x -> -0.86193624643066461859672257230652325788`20.308604836334762 Out[2]== 0``19.380562970987107 == 0. * 10^ -20 Whereas (see your original equation below), Reduce[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))] ====== == 0 && -2 < x < -1/Sqrt[2], x, Reals] Syntax::sntxf:"2x+Log[-((-1+2x)/(-1+2x^2))]======" cannot be followed by "= ==0&&-2<x<-1/Sqrt[2]". Syntax::tsntxi:"==0&&-2<x<-1/Sqrt[2]" is incomplete; more input is needed. Syntax::sntxi:Incomplete expression; more input is needed. Best regards, MATTHIAS BODE COCHABAMBA/BOLIVIA > Date: Fri, 3 Sep 2010 06:10:23 -0400 > From: gianluca.gorni at uniud.it > Subject: [mg112177] Re: FindRoots? > To: mathgroup at smc.vnet.net > > > 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 an= d > >> incorporate it as part of regular Mathematica. Finding all the roots o= f a > >> real function on a 1-dimensional domain is the most common case of roo= t > >> 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 funct= ions, which covers most important practical cases) since version 7. I have = posted examples of this several times, but somehow nobody seems to notice a= nd 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, f= rom the mathematical point of view, the methods used in the RootSearch pack= age are rather primitive, relatively to the current state of knowledge in t= his field, of course. Not only does Reduce solve most transcendental equati= ons much faster but it also does not require setting the values of any opti= ons 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, m= uch more general methods of solving transcendental equations exist (in gene= ral the functions need not be analytic and can involve systems of n-real eq= uations in n-varia! > b > > l! > > es with non-vanishing Jacobian). An example of such a method can be fou= nd in one of my demonstrations on the demonstrations site (the algorithm ca= n easily be converted to a practical method for real life probl ems. > > > > In view of this, how could there be any justification for the suggestio= n that Wolfram incorporates what is actually an impressive but amateurish p= ackage into what is supposed to be a sophisticated mathematical program? > > Sometimes certain capabilities are missing from Mathematica simply beca= use implementing "bleeding edge" algorithms in a way that is satisfactory f= ora program that has the kind of aspirations that Mathematica obviously doe= s takes time. > > > > These sort of "helpful suggesting", particularly when coming from non-e= xp== > erts, have no chance whatever of being accepted and even can produce the = im== > pression of an ulterior motive being involved. > > > --_637439e7-ac01-4858-84ae-ee894c0a0aa9_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Sun-Content-Length: 6413 <html> <head> <style><!-- .hmmessage P { margin:0px; padding:0px } body.hmmessage { font-size: 10pt; font-family:Tahoma } --></style> </head> <body class='hmmessage'> Hola Gianluca:<br><br>In[1]:= Reduce[2*x + Log[-((-1 + 2*x)/(-1 + 2*x^2))= ] == 0 && <br> -2 < x = < -Sqrt[2]^(-1), x, Reals]<br><br>Out[1]= x == Root[{Log[-((= -1 + 2*#1)/(-1 + 2*#1^2))] + 2*#1 & , <br> &= nbsp; -0.86193624643066461859672257230652325788`20.308604= 836334762}]<br><br>In[2]:= 2*x + Log[-((-1 + 2*x)/(-1 + 2*x^2))] /. <br>&= nbsp; x -> -0.86193624643066461859672257230652325788`20.3086= 04836334762<br><br>Out[2]= 0``19.380562970987107<br><br>= 0. * 10^ -20<= br><br>Whereas (see your original equation below),<br><br>Reduce[2 x + Lo= g[-((-1 + 2 x)/(-1 + 2 x^2))] === = <br> 0 &&= amp; -2 < x < -1/Sqrt[2], x, Reals]<br><br>Syntax::sntxf:"2= x+Log[-((-1+2x)/(-1+2x^2))]===" cannot be followed by "=0&&am= p;-2<x<-1/Sqrt[2]".<br><br>Syntax::tsntxi:"=0&&-2= <x<-1/Sqrt[2]" is incomplete; more input is needed.<br><br>Synt= ax::sntxi:Incomplete expression; more input is needed.<br><br>Best regard= s,<br><br><div><strong><em></em></strong><style> </style><div><font face="Arial" size="2">MATTHIAS BODE<br>COCHABAMBA/BO= LIVIA</font><br></div></div><br><br>> Date: Fri, 3 Sep 2010 06:10:23= -0400<br>> From: gianluca.gorni at uniud.it<br>> Subject: [mg112177= ] Re: FindRoots?<br>> To: mathgroup at smc.vnet.net<br>> <br>> = <br>> In my opinion Reduce can replace RootSearch in some<br>> ca= ses but not in others.<br>> <br>> First of all, Reduce has bugs= . Here is an analytic function<br>> that clearly has a real root:<br>&= gt; <br>> Plot[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^2))], {x, -2, = -1/Sqrt[2]}]<br>> <br>> Still, Reduce does not see it (as of ve= rsion 7.0.1):<br>> <br>> Reduce[2 x + Log[-((-1 + 2 x)/(-1 + 2 x^= 2))] ==== 0 && -2 <<br>> x < -1/Sqrt[= 2], x, Reals]<br>> False<br>> <br>> (I reported this exa= mple to wolfram last year).<br>> <br>> Next, Reduce has problem= s with inexact input, and with<br>> InterpolatingFunction, so that= it won't work with<br>> the output of NDSolve:<br>> <br>> s= ol == x /.<br>> First@NDSolve[{x'[t] ==== x[t] + 2, x[= 0] ==== -1}, x, {t, 0, 2}];<br>> Reduce[sol[t] == === 0 && 0 < t < 2, t]<br>> <br>> o= r, say, with functions obtained by interpolating between Locators.<br>&= gt; RootSearch works fine in these cases.<br>> <br>> I have mad= e some interactive panels where I can change the Locators<br>> with th= e mouse and I get in real time the roots of the interpolating<br>> fun= ction as big Points in the plot: I can do this with RootSearch,<br>>= but not with Reduce.<br>> Unfortunately, I can't give these panels = to other users, because<br>> I can't assume that they have RootSearc= h installed.<br>> <br>> I endorse the wish that the functionality= of RootSearch were available<br>> in the kernel.<br>> <br>>= Best regards,<br>> Gianluca Gorni<br>> <br>> <br>> <= br>> On 01/set/2010, at 12.28, Andrzej Kozlowski wrote:<br>> = <br>> ><br>> > On 30 Aug 2010, at 12:19, David Park= wrote:<br>> ><br>> >> I don't know why Wolfram do= esn't acquire the rights to this package and<br>> >> incorpo= rate it as part of regular Mathematica. Finding all the roots of a<br>>= ; >> real function on a 1-dimensional domain is the most common= case of root<br>> >> finding, and it is the one thing reg= ular Mathematica is very poor at. Ted's<br>> >> package is q= uite robust and returns all the roots in order.<br>> ><br>> = ><br>> > Mathematica's Reduce can do this (in the case of co= mplex analytic functions, which covers most important practical cases) si= nce 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 achieve= ment, but quite frankly, from the mathematical point of view, the met= hods used in the RootSearch package are rather primitive, relatively to t= he current state of knowledge in this field, of course. Not only does Red= uce solve most transcendental equations much faster but it also does not re= quire setting the values of any options by hand, and, what I think is m= ost important, the results thus obtained are provably correct, which is= not the case with Ted's package. In fact, much more general methods of s= olving transcendental equations exist (in general the functions need not be= analytic and can involve systems of n-real equations in n-varia!<br>>= b<br>> > l!<br>> > es with non-vanishing Jacobian). An= example of such a method can be found in one of my demonstrations on the d= emonstrations site (the algorithm can easily be converted to a practical me= thod for real life probl ems.<br>> ><br>> > In view of = this, how could there be any justification for the suggestion that Wolfra= m incorporates what is actually an impressive but amateurish package into w= hat is supposed to be a sophisticated mathematical program?<br>> >= ; Sometimes certain capabilities are missing from Mathematica simply beca= use implementing "bleeding edge" algorithms in a way that is satisfactory f= ora program that has the kind of aspirations that Mathematica obviously doe= s takes time.<br>> ><br>> > These sort of "helpful sugg= esting", particularly when coming from non-exp=<br>> erts, have = no chance whatever of being accepted and even can produce the im=<br>>= ; pression of an ulterior motive being involved.<br>> ><br>>= ; <br> </body> </html>= --_637439e7-ac01-4858-84ae-ee894c0a0aa9_--