scipy.optimize.brent

scipy.optimize.brent(func, args=(), brack=None, tol=1.48e-08, full_output=0, maxiter=500)[源代码]

给定一个包含一个变量和可能的方括号的函数,将该函数的局部最小值返回到小数精度tol。

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

目标函数。

args元组,可选

其他参数(如果存在)。

brack元组,可选

一个三元组(xa,xb,xc),其中xa<xB<xc和func(Xb)<func(Xa),func(Xc)或用作下坡括号搜索的开始间隔的一对(xa,xB bracket )。提供对(xa,xb)并不总是意味着所获得的解将满足xa<=x<=xB。

tol浮动,可选

解中的相对误差 xopt 可接受的收敛。

full_output布尔值,可选

如果为True,则返回所有输出参数(xmin、fval、iter、funcalls)。

maxiter整型,可选

解决方案中的最大迭代次数。

退货
xminndarray

最佳点。

fval浮动

最佳值。

iter集成

迭代次数。

funcalls集成

目标函数求值次数。

参见

minimize_scalar

与标量单变量函数的最小化算法的接口。看“布伦特原油” method 尤其是。

注意事项

在可能的情况下使用反抛物线插值,以加快黄金分割法的收敛速度。

不确保最小值位于 brack 。看见 fminbound

示例

我们举例说明了函数在以下情况下的行为 brack 尺寸分别为2号和3号。在以下情况下 brack 形式为(xa,xB),我们可以看到,对于给定值,输出不一定在范围(xa,xB)内。

>>> def f(x):
...     return x**2
>>> from scipy import optimize
>>> minimum = optimize.brent(f,brack=(1,2))
>>> minimum
0.0
>>> minimum = optimize.brent(f,brack=(-1,0.5,2))
>>> minimum
-2.7755575615628914e-17