golden#
- scipy.optimize.golden(func, args=(), brack=None, tol=np.float64(1.4901161193847656e-08), full_output=0, maxiter=5000)[source]#
Return the minimizer of a function of one variable using the golden section method.
Given a function of one variable and a possible bracketing interval, return a minimizer of the function isolated to a fractional precision of tol.
- Parameters:
- funccallable func(x,*args)
Objective function to minimize.
- argstuple, optional
Additional arguments (if present), passed to func.
- bracktuple, optional
Either a triple
(xa, xb, xc)
wherexa < xb < xc
andfunc(xb) < func(xa) and func(xb) < func(xc)
, or a pair (xa, xb) to be used as initial points for a downhill bracket search (seescipy.optimize.bracket
). The minimizerx
will not necessarily satisfyxa <= x <= xb
.- tolfloat, optional
x tolerance stop criterion
- full_outputbool, optional
If True, return optional outputs.
- maxiterint
Maximum number of iterations to perform.
- Returns:
- xminndarray
Optimum point.
- fvalfloat
(Optional output) Optimum function value.
- funcallsint
(Optional output) Number of objective function evaluations made.
See also
minimize_scalar
Interface to minimization algorithms for scalar univariate functions. See the ‘Golden’ method in particular.
Notes
Uses analog of bisection method to decrease the bracketed interval.
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 need not necessarily lie in the range
(xa, xb)
.>>> def f(x): ... return (x-1)**2
>>> from scipy import optimize
>>> minimizer = optimize.golden(f, brack=(1, 2)) >>> minimizer 1 >>> res = optimize.golden(f, brack=(-1, 0.5, 2), full_output=True) >>> xmin, fval, funcalls = res >>> f(xmin), fval (9.925165290385052e-18, 9.925165290385052e-18)