bundles / scipy latest / scipy / optimize / _optimize / brent
function
scipy.optimize._optimize:brent
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, optionalAdditional arguments (if present).
brack: tuple, optionalEither a triple
(xa, xb, xc)satisfyingxa < xb < xcandfunc(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 minimizerxwill not necessarily satisfyxa <= x <= xb.tol: float, optionalRelative error in solution
xoptacceptable for convergence.full_output: bool, optionalIf True, return all output args (xmin, fval, iter, funcalls).
maxiter: int, optionalMaximum number of iterations in solution.
Returns
xmin: ndarrayOptimum 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'
methodin particular.
Aliases
-
scipy.optimize.brent