bundles / scipy latest / scipy / optimize / _optimize / bracket
function
scipy.optimize._optimize:bracket
source: build-install/usr/lib/python3.14/site-packages/scipy/optimize/_optimize.py:2956
Signature
def bracket(func, xa = 0.0, xb = 1.0, args = (), grow_limit = 110.0, maxiter = 1000)Summary
Bracket the minimum of a function.
Extended Summary
Given a function and distinct initial points, search in the downhill direction (as defined by the initial points) and return three points that bracket the minimum of the function.
Parameters
func: callable f(x,*args)Objective function to minimize.
xa, xb: float, optionalInitial points. Defaults
xato 0.0, andxbto 1.0. A local minimum need not be contained within this interval.args: tuple, optionalAdditional arguments (if present), passed to
func.grow_limit: float, optionalMaximum grow limit. Defaults to 110.0
maxiter: int, optionalMaximum number of iterations to perform. Defaults to 1000.
Returns
xa, xb, xc: floatFinal points of the bracket.
fa, fb, fc: floatObjective function values at the bracket points.
funcalls: intNumber of function evaluations made.
Raises
: BracketErrorIf no valid bracket is found before the algorithm terminates. See notes for conditions of a valid bracket.
Notes
The algorithm attempts to find three strictly ordered points (i.e. or ) satisfying and , where one of the inequalities must be satisfied strictly and all must be finite.
Examples
This function can find a downward convex region of a function:import numpy as np import matplotlib.pyplot as plt from scipy.optimize import bracket def f(x): return 10*x**2 + 3*x + 5 x = np.linspace(-2, 2) y = f(x) init_xa, init_xb = 0.1, 1 xa, xb, xc, fa, fb, fc, funcalls = bracket(f, xa=init_xa, xb=init_xb)✓
plt.axvline(x=init_xa, color="k", linestyle="--") plt.axvline(x=init_xb, color="k", linestyle="--") plt.plot(x, y, "-k") plt.plot(xa, fa, "bx") plt.plot(xb, fb, "rx") plt.plot(xc, fc, "bx")✗
[<matplotlib.lines.Line2D object at 0x7f3f68fd8d70>]
plt.show()
✓
Aliases
scipy.optimize.bracket