fminsearch
Find the unconstrained minimum of a real function using the Nelder-Mead simplex algorithm.
Syntax
x = fminsearch(@func,x0)
x = fminsearch(@func,x0,options)
[x,fval,info,output] = fminsearch(...)
Inputs
- func
- The function to minimize.
- x0
- An estimate of the location of the minimum.
- options
- A struct containing option settings.
Outputs
- x
- The location of the function minimum.
- fval
- The minimum of the function.
- info
- The convergence status flag.
- info = 1
- Function value converged to within tolX.
- info = 0
- Reached maximum number of iterations or function calls.
- output
- A struct containing iteration details. The members are as follows:
- iterations
- The number of iterations.
- nfev
- The number of function evaluations.
- xiter
- The candidate solution at each iteration.
- fvaliter
- The objective function value at each iteration.
Examples
function obj = Rosenbrock(x)
obj = (1 - x(1))^2 + 100 * (x(2) - x(1)^2)^2;
end
x0 = [-1.2, 1.0];
[x,fval] = fminsearch(@Rosenbrock, x0)
x = [Matrix] 1 x 2
1.00000 1.00000
fval = 5.29978e-14
function obj = Rosenbrock2(x, offset)
obj = (1 - x(1))^2 + 100 * (x(2) - x(1)^2)^2 + offset;
end
handle = @(x) Rosenbrock2(x, 2);
[x,fval] = fminsearch(handle, interval)
x = [Matrix] 1 x 2
1.00000 1.00000
fval = 2
Comments
fminsearch uses the Nelder-Mead simplex algorithm, which does not require the objective function to be differentiable. When the objective function is differentiable, fminunc is generally prefereble.
- MaxIter: 400
- MaxFunEvals: 1,000,000
- TolX: 1.0e-7