scipy.optimize.bracket

scipy.optimize.bracket(func, xa=0.0, xb=1.0, args=(), grow_limit=110.0, maxiter=1000)[源代码]

将函数的最小值括起来。

给定一个函数和不同的初始点,沿下坡方向(由初始点定义)进行搜索,并返回包含函数f(Xa)>f(XB)<f(Xc)最小值的新点xa、xb、xc。这并不总是意味着所得到的解将满足xa<=x<=xB。

参数
func可调用f(x,*args)

目标函数极小化。

XA、XB浮动,可选

括号间隔。默认值 xa 设置为0.0,并且 xb 设置为1.0。

args元组,可选

其他参数(如果存在),传递给 func

grow_limit浮动,可选

最大增长限制。默认为110.0

maxiter整型,可选

要执行的最大迭代次数。默认为1000。

退货
XA、XB、XC浮动

托架。

FA、FB、FC浮动

括号内的目标函数值。

funcalls集成

进行的功能评估次数。

示例

此函数可以找到函数的向下凸域:

>>> 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
>>> 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")
>>> plt.show()
../../_images/scipy-optimize-bracket-1.png