scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)

Minimization of scalar function of one or more variables using the Nelder-Mead algorithm.

See also

For documentation for the rest of the parameters, see scipy.optimize.minimize


Set to True to print convergence messages.

maxiter, maxfevint

Maximum allowed number of iterations and function evaluations. Will default to N*200, where N is the number of variables, if neither maxiter or maxfev is set. If both maxiter and maxfev are set, minimization will stop at the first reached.

return_allbool, optional

Set to True to return a list of the best solution at each of the iterations.

initial_simplexarray_like of shape (N + 1, N)

Initial simplex. If given, overrides x0. initial_simplex[j,:] should contain the coordinates of the jth vertex of the N+1 vertices in the simplex, where N is the dimension.

xatolfloat, optional

Absolute error in xopt between iterations that is acceptable for convergence.

fatolnumber, optional

Absolute error in func(xopt) between iterations that is acceptable for convergence.

adaptivebool, optional

Adapt algorithm parameters to dimensionality of problem. Useful for high-dimensional minimization [1].

boundssequence or Bounds, optional

Bounds on variables. There are two ways to specify the bounds:

  1. Instance of Bounds class.

  2. Sequence of (min, max) pairs for each element in x. None is used to specify no bound.

Note that this just clips all vertices in simplex based on the bounds.



Gao, F. and Han, L. Implementing the Nelder-Mead simplex algorithm with adaptive parameters. 2012. Computational Optimization and Applications. 51:1, pp. 259-277