[SciPy-dev] genetic algorithm, number theory, filter design,zero finding

Chuck Harris Chuck.Harris at sdl.usu.edu
Tue Apr 9 20:51:26 CDT 2002


> -----Original Message-----
> From: pearu at scipy.org [mailto:pearu at scipy.org]
> Sent: Tuesday, April 09, 2002 3:24 AM
> To: scipy-dev at scipy.org
> Subject: Re: [SciPy-dev] genetic algorithm, number theory, filter
> design,zero finding
> [snip]
> > Zero finders: General use and fun. Bisection best for some special
> > cases, Ridder is middle of the pack, Brent is generally 
> best, with the
> > two versions basically a wash, although the hyperbolic version is
> > simpler. Whether or not there is any virtue to these as opposed to
> > solve, I don't know.
> > 
> > 	Bisection
> > 	Illinois version of regula falsa
> > 	Ridder
> > 	Brent method with hyperbolic interpolation
> > 	Brent method with inverse quadatic interpolation
> Can you compare these zero finders with ones in 
> scipy? Performance? Robustness to initial conditions? Etc. 
> Are they any
> better?

fsolve turns out to be a combination of Newton's method and the method of steepest decent. The book by Ralston & Rabinowitz on numerical analysis seems to be good reference, as the basic algorithm is due to Rabinowitz and dates from around 1970. It seems to work well for smooth functions given a good initial estimate of the root (and where does that come from), which is to say it fails miserably on all but one of my tests --- never converges at all, even with repeated calls using the previous estimate. It really wants a nonzero derivative (nonsingular Jacobian) at all points. I think more robust routines are definitely needed in the special one dimensional case.


More information about the Scipy-dev mailing list