MATLAB Function Reference | ![]() ![]() |
Minimize a function of one variable on a fixed interval
Syntax
x = fminbnd(fun,x1,x2) x = fminbnd(fun,x1,x2,options) x = fminbnd(fun,x1,x2,options,P1,P2,...) [x,fval] = fminbnd(...) [x,fval,exitflag] = fminbnd(...) [x,fval,exitflag,output] = fminbnd(...)
Description
fminbnd
finds the minimum of a function of one variable within a fixed interval.
x = fminbnd(fun,x1,x2)
returns a value x
that is a local minimizer of the function that is described in fun
in the interval x1 <= x <= x2
.
x = fminbnd(fun,x1,x2,options)
minimizes with the optimization parameters specified in the structure options
. You can define these parameters using the optimset
function. fminbnd
uses these options
structure fields:
x = fminbnd(fun,x1,x2,options,P1,P2,...)
provides for additional arguments, P1
, P2
, etc., which are passed to the objective function, fun(x,P1,P2,...)
. Use options=[]
as a placeholder if no options are set.
[x,fval] = fminbnd(...)
returns the value of the objective function computed in fun
at x
.
[x,fval,exitflag] = fminbnd(...)
returns a value exitflag
that describes the exit condition of fminbnd
:
>0 |
Indicates that the function converged to a solution x. |
0 |
Indicates that the maximum number of function evaluations was exceeded. |
<0 |
Indicates that the function did not converge to a solution. |
[x,fval,exitflag,output] = fminbnd(...)
returns a structure output
that contains information about the optimization:
output.algorithm |
The algorithm used |
output.funcCount |
The number of function evaluations |
output.iterations |
The number of iterations taken |
Arguments
fun
is the function to be minimized. fun
accepts a scalar x
and returns a scalar f
, the objective function evaluated at x
. The function fun
can be specified as a function handle.
where myfun
is a MATLAB function such as
fun
can also be an inline object.
Other arguments are described in the syntax descriptions above.
Examples
x = fminbnd(@cos,3,4)
computes to a few decimal places and gives a message on termination.
computes to about 12 decimal places, suppresses output, returns the function value at
x
, and returns an exitflag
of 1.
The argument fun
can also be an inline function. To find the minimum of the function on the interval
(0,2)
, create an inline object f
The value of the function at the minimum is
Algorithm
The algorithm is based on Golden Section search and parabolic interpolation. A Fortran program implementing the same algorithm is given in [1].
Limitations
The function to be minimized must be continuous. fminbnd
may only give local solutions.
fminbnd
often exhibits slow convergence when the solution is on a boundary of the interval.
fminbnd
only handles real variables.
See Also
fminsearch
, fzero
, optimset
, function_handle
(@
), inline
References
Forsythe, G. E., M. A. Malcolm, and C. B. Moler, Computer Methods for Mathematical Computations, Prentice-Hall, 1976.
![]() | fmin | fmins | ![]() |