## Documentation Center |

Find minimum of single-variable function on fixed interval

`x = fminbnd(fun,x1,x2)x = fminbnd(fun,x1,x2,options)[x,fval] = fminbnd(...)[x,fval,exitflag] = fminbnd(...)[x,fval,exitflag,output] = fminbnd(...)`

`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`. `fun` is a `function_handle`.

Parameterizing Functions in the MATLAB^{®} Mathematics
documentation, explains how to pass additional parameters to your
objective function `fun`.

`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:

| Level of display. |

Check whether objective function values are valid. | |

| Maximum number of function evaluations allowed. |

| Maximum number of iterations allowed. |

User-defined function that is called at each iteration. See Output Functions in MATLAB Mathematics for more information. | |

Plots various measures of progress while the algorithm
executes, select from predefined plots or write your own. Pass a function
handle or a cell array of function handles. The default is none ( `@optimplotx`plots the current point`@optimplotfval`plots the function value`@optimplotfunccount`plots the function count
See Plot Functions in MATLAB Mathematics for more information. | |

| Termination tolerance on |

`[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`:

| |

Maximum number of function evaluations or iterations was reached. | |

Algorithm was terminated by the output function. | |

Bounds are inconsistent ( |

`[x,fval,exitflag,output] = fminbnd(...)` returns
a structure `output` that contains information about
the optimization in the following fields:

Algorithm used | |

Number of function evaluations | |

Number of iterations | |

Exit message |

`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 for a function file

x = fminbnd(@myfun,x1,x2);

where `myfun.m` is a function file such as

function f = myfun(x) f = ... % Compute function value at x.

or as a function handle for an anonymous function:

x = fminbnd(@(x) sin(x*x),x1,x2);

Other arguments are described in the syntax descriptions above.

`x = fminbnd(@cos,3,4)` computes *π* to
a few decimal places and gives a message on termination.

[x,fval,exitflag] = ... fminbnd(@cos,3,4,optimset('TolX',1e-12,'Display','off'))

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 a function handle
for an anonymous function. For example, to find the minimum of the
function *f*(*x*) = *x*^{3} – 2*x* – 5 on the interval `(0,2)`,
create an anonymous function `f`

f = @(x)x.^3-2*x-5;

Then invoke `fminbnd` with

x = fminbnd(f, 0, 2)

The result is

x = 0.8165

The value of the function at the minimum is

y = f(x) y = -6.0887

If `fun` is parameterized, you can use anonymous
functions to capture the problem-dependent parameters. For example,
suppose you want to minimize the objective function `myfun` defined
by the following function file:

function f = myfun(x,a) f = (x - a)^2;

Note that `myfun` has an extra parameter `a`,
so you cannot pass it directly to `fminbind`. To
optimize for a specific value of `a`, such as `a
= 1.5`.

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.

[1] Forsythe, G. E., M. A. Malcolm, and C.
B. Moler, *Computer Methods for Mathematical Computations*,
Prentice-Hall, 1976.

[2] Brent, Richard. P., *Algorithms
for Minimization without Derivatives*, Prentice-Hall,
Englewood Cliffs, New Jersey, 1973

Was this topic helpful?