Re: RootSearch Performance

*To*: mathgroup at smc.vnet.net*Subject*: [mg72382] Re: RootSearch Performance*From*: akozlowski at gmail.com*Date*: Sat, 23 Dec 2006 06:14:43 -0500 (EST)*References*: <emggf1$2jk$1@smc.vnet.net>

On Dec 22, 8:44 pm, "Ted Ersek" <ted.er... at tqci.net> wrote: > About a week ago we had the thread: > "FindRoot anomoly (example from Mathematica" > -------------------------------------------------------------- > In that thread galordloo wrote: > > Ersek's RootSearch function finds only seven roots to the equation > between x == 1 and x == 100: > > sol == RootSearch[3*Cos[x] ==== Log[x], {x, 1, 100}] > > <snip> (* Rules for seven roots, all between 1 and 20 were returned. *) > > --------------------------------- > Then Carl Woll (of Wolfram Research) replied: > > An alternative method is possible using IntervalBisection: > < snip > > > The nice thing about IntervalBisection is that we were able to use an > initial range of {0,Infinity} instead of {1,100}. The other nice thing > about IntervalBisection is that we are guaranteed that all roots lie in > the interval given in the result, something that is not true with > RootSearch. > > The price you pay is that the only transcendental functions allowed in > the input are trigonometric/exponential functions and their inverses, > i.e., only functions which support Interval arguments. > > =========================================================================== = > I wrote the RootSearch package, and it's designed to never look > for a root outside the range specified in the input. While > RootSearch has many lines of code, the ideas I use to limit the > range being searched are straight forward. I doubt you can find > an example where it returns a root outside the specified range. > However, if you can find an example that shows otherwise, > I would like to know about it. > > Ted Ersek > Reply to: Ted.Er... at navy.mil I think the problem here is a simple linguistic ambiguity. What Carl meant is that IntervalBisection returns a list of sub-intervals of the original interval that contain all the roots that lie in the original interval. In other words: no roots are ever missed, unlike the case with RootSearch that may sometimes miss some roots. This is quite different form saying that all rots that are found lie in the originally specified interval, which of course is true for RootSearch. Andrzej Kozlowski

**Follow-Ups**:**Re: Re: RootSearch Performance***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>