- To: mathgroup at smc.vnet.net
- Subject: [mg112389] Re: FindRoots?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 12 Sep 2010 03:12:14 -0400 (EDT)
On 11 Sep 2010, at 18:39, Andrzej Kozlowski wrote: > > The conditions are that it has to be C2 (have a continuos second derivative) and have a non-vanishing Jacobian on the bounded set. I misstated the Jacobian condition. The simplest way to state it is that the function should not have multiple roots in the domain of definition. Andrzej Kozlowski On 11 Sep 2010, at 18:39, Andrzej Kozlowski wrote: > On 11 Sep 2010, at 11:42, Ted Ersek wrote: > >> >> >> In  Andrzej Kozlowski said, "there are ways to do essentially the same >> things that >> RootSearch attempts to do and obtain the complete set of roots (provably >> complete)." >> Are these methods practical in every conceivable case? I wonder if it's even >> possible in every case. >> In  Roger Germundsson of Wolfram Research said there are theorems about >> undecidability >> of finding roots of a general numeric function. > > The above is a misstatement of what I wrote. I wrote that one can do so in the case of a function (on a closed bounded set) which satisfies certain "mild" condition. The conditions are that it has to be C2 (have a continuos second derivative) and have a non-vanishing Jacobian on the bounded set. >> >> >> (***** FindRoot Is Not Used In RootSearch *****) >> Contrary to what Andrzej Kozlowski said my RootSearch package doesn't >> use Mathematica's FindRoot. I had to write my own implementations of >> Secant-Method and Brent's-Method to give RootSearch some of it's nice >> features. >> > > I did write once that SearchRoot used FindRoot, probably because I myself used FindRoot in my demonstration but I corrected this myself in a subsequent rely to David Park. > > I still do not see any reason for not using FindRoot in RootSearch or anyway in which RootSearch is superior to FindRoot for finding a single root (which is the only task FindRoot attempts). The Secant method of finding roots is about 3000 years old. Brent's method originated in early 1970s. Both are hardly "state of the art". > > I should also add that there is are a lot of published papers on related topics, and a lot of research that has been done in recent years. I implemented Semenev's method in my demonstrations because it is so simple, but a more general (though more complicated) techniques had earlier been developed in papers by Michael Dellinitz of the University of Paderborn in Germany and various collaborators. See for example: > > Dellnitz, M, Schutze, O, Sertl, S. "Finding zeros by multilevel subdivision techniques" in IMA Journal of Numerical Analysis, volume 22 Issue 2, pp. 167-185 > > or > > Dellnitz, M, Sch=FCtze, O, Zheng, Q."Locating all the zeros of an analytic function in one complex variable." > Journal of Computational and Applied Mathematics (2002) vol. 138 (2) pp. 325-333 > > There has actually been a great deal of progress in this are in this century. > > Andrzej Kozlowski