# fminunc

Find the unconstrained minimum of a real function.

## Syntax

x = fminunc(@func,x0)

x = fminunc(@func,x0,options)

[x,fval,info,output] = fminunc(...)

## Inputs

func
The function to minimize. See the optimset option GradObj for details.
x0
An estimate of the location of the minimum.
options
A struct containing option settings.
See optimset for details.

## Outputs

x
The location of the function minimum.
fval
The minimum of the function.
info
The convergence status flag.
info = 4
Relative step size converged to within tolX.
info = 3
Relative function value converged to within tolFun.
info = 2
Step size converged to within tolX.
info = 1
Function value converged to within tolFun.
info = 0
Reached maximum number of iterations or function calls, or the algorithm aborted because it was not converging.
info = -3
Trust region became too small to continue.
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

Minimize the Rosenbrock function.
function obj = Rosenbrock(x)
obj = (1 - x(1))^2 + 100 * (x(2) - x(1)^2)^2;
end

x0 = [-1.2, 1.0];
[x,fval] = fminunc(@Rosenbrock, x0)
x = [Matrix] 1 x 2
1.00000  1.00000
fval = 1.29122e-15
Modify the previous example to pass an extra parameter to the user function using a function handle.
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] = fminunc(handle, x0)
x = [Matrix] 1 x 2
0.99999  0.99999
fval = 2

fminunc uses a quasi-Netwon algorithm with damped BFGS updates and a trust region method.

Options for convergence tolerance controls and analytical derivatives are specified with optimset.

To pass additional parameters to a function argument, use an anonymous function.

The optimset options and defaults are as follows:
• MaxIter: 400
• MaxFunEvals: 1,000,000
• TolFun: 1.0e-7
• TolX: 1.0e-7