{ } Raw JSON

bundles / scipy latest / scipy / optimize / _optimize / brent

function

scipy.optimize._optimize:brent

source: /scipy/optimize/_optimize.py :2620

Signature

def   brent ( func args = () brack = None tol = 1.48e-08 full_output = 0 maxiter = 500 )

Summary

Given a function of one variable and a possible bracket, return a local minimizer of the function isolated to a fractional precision of tol.

Parameters

func : callable f(x,*args)

Objective function.

args : tuple, optional

Additional arguments (if present).

brack : tuple, optional

Either a triple (xa, xb, xc) satisfying xa < xb < xc and func(xb) < func(xa) and func(xb) < func(xc), or a pair (xa, xb) to be used as initial points for a downhill bracket search (see scipy.optimize.bracket). The minimizer x will not necessarily satisfy xa <= x <= xb.

tol : float, optional

Relative error in solution xopt acceptable for convergence.

full_output : bool, optional

If True, return all output args (xmin, fval, iter, funcalls).

maxiter : int, optional

Maximum number of iterations in solution.

Returns

xmin : ndarray

Optimum point.

fval : float

(Optional output) Optimum function value.

iter : int

(Optional output) Number of iterations.

funcalls : int

(Optional output) Number of objective function evaluations made.

Notes

Uses inverse parabolic interpolation when possible to speed up convergence of golden section method.

Does not ensure that the minimum lies in the range specified by brack. See scipy.optimize.fminbound.

Examples

We illustrate the behaviour of the function when `brack` is of size 2 and 3 respectively. In the case where `brack` is of the form ``(xa, xb)``, we can see for the given values, the output does not necessarily lie in the range ``(xa, xb)``.
def f(x):
    return (x-1)**2
from scipy import optimize
minimizer = optimize.brent(f, brack=(1, 2))
minimizer
res = optimize.brent(f, brack=(-1, 0.5, 2), full_output=True)
xmin, fval, iter, funcalls = res
f(xmin), fval

See also

minimize_scalar

Interface to minimization algorithms for scalar univariate functions. See the 'Brent' method in particular.

Aliases

  • scipy.optimize.brent

Referenced by