[sci.math.stat] all purpose minimizer

sho@tybalt.caltech.edu.UUCP (01/29/87)

	I've been trying to write an extremum finder in C for a
while now, with no success.  The routine accepts initial values
for an array of coefficients and a pointer to a function, and
searches for the nearest local minimum using a gradient search
on the coefficients.  Seems simple, right?  Well, no.  I've been
having all sorts of problems, and I don't know what to do.  If
any of you have written something similar, please let me know.
(Esp. if you have an extremeum finder that finds the *absolute*
minimum/maximum!)  

					-Sho
Hurm.

braner@batcomputer.UUCP (02/11/87)

[]

GLOBAL minimization is a very hard problem.  How do you avoid missing
a very narrow trench?  Check all points on a very fine grid? In 20
dimensions?

Pessimism aside, I use the routine called 'Powell', in the book 'Numerical
Recipes' (by Press et al, Cambridge U. Press, 1986).  It does not use
derivatives, and seems reasonably robust for the  very nonlinear  functions
of many (from 3 to 20) variables I try to minimize.  (I use it for
maximum-likelihood estimation of parameters.)   (I had to modify it a bit,
though: changed the parametrization in 'Linmin' so that the best guess of
the minimum is at 1, not 0.  If it happens to be at 0, 'Brent' iterates
for a long time since it measures _relative_ error.  Also note that the
order of the parameters in the initial direction set is VERY critical for
successful use of the algorithm, and the best order depends on your
specific function!)

- Moshe Braner