SciPy

scipy.optimize.fminbound

scipy.optimize.fminbound(func, x1, x2, args=(), xtol=1e-05, maxfun=500, full_output=0, disp=1)[source]

Bounded minimization for scalar functions.

Parameters:

func : callable f(x,*args)

Objective function to be minimized (must accept and return scalars).

x1, x2 : float or array scalar

The optimization bounds.

args : tuple, optional

Extra arguments passed to function.

xtol : float, optional

The convergence tolerance.

maxfun : int, optional

Maximum number of function evaluations allowed.

full_output : bool, optional

If True, return optional outputs.

disp : int, optional

If non-zero, print messages.

0 : no message printing. 1 : non-convergence notification messages only. 2 : print a message on convergence too. 3 : print iteration results.

Returns:

xopt : ndarray

Parameters (over given interval) which minimize the objective function.

fval : number

The function value at the minimum point.

ierr : int

An error flag (0 if converged, 1 if maximum number of function calls reached).

numfunc : int

The number of function calls made.

See also

minimize_scalar
Interface to minimization algorithms for scalar univariate functions. See the ‘Bounded’ method in particular.

Notes

Finds a local minimizer of the scalar function func in the interval x1 < xopt < x2 using Brent’s method. (See brent for auto-bracketing).

Examples

fminbound finds the minimum of the function in the given range. The following examples illustrate the same

>>> def f(x):
...     return x**2
>>> from scipy import optimize
>>> minimum = optimize.fminbound(f, -1, 2)
>>> minimum
0.0
>>> minimum = optimize.fminbound(f, 1, 2)
>>> minimum
1.0000059608609866