Skip to main content

Module optimize

Module optimize 

Source
Expand description

Local minimisation of a function of several variables without derivatives.

§Algorithm

The Nelder–Mead simplex method: a simplex of n + 1 points is reflected, expanded, contracted or shrunk towards its best vertex until its values (and its extent) fall below the tolerances. The coefficients adapt to the dimension (Gao & Han 2012 — reflection 1, expansion 1 + 2/n, contraction 0.75 − 1/(2n), shrink 1 − 1/n), which keeps the method from stalling in more than a few dimensions; in one or two they are the classical 1, 2, ½, ½. The initial simplex steps 5 % of each non-zero coordinate (0.00025 for a zero one), as SciPy’s minimize(method="Nelder-Mead") does.

A value that is not finite (NaN, ±∞) is treated as +∞, so an objective can refuse a point by returning NaN.

§References

Nelder, J.A. & Mead, R. (1965). “A simplex method for function minimization”, The Computer Journal 7(4), 308-313. Lagarias, J.C., Reeds, J.A., Wright, M.H. & Wright, P.E. (1998). “Convergence properties of the Nelder–Mead simplex method in low dimensions”, SIAM Journal on Optimization 9(1), 112-147. Gao, F. & Han, L. (2012). “Implementing the Nelder-Mead simplex algorithm with adaptive parameters”, Computational Optimization and Applications 51(1), 259-277.

Structs§

Minimum
The best point nelder_mead found.
NelderMeadOptions
Stopping rules of nelder_mead. The tolerances are relative, so the stopping point does not depend on the units of the variables or the values.

Functions§

nelder_mead
Minimises f from x0 by the Nelder–Mead simplex method.