当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy optimize.brent用法及代码示例


本文简要介绍 python 语言中 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 < xcfunc(xb) < func(xa) and  func(xb) < func(xc) 的三元组 (xa, xb, xc) 或一对 (xa, xb) 用作下坡括号搜索的初始点(请参阅 scipy.optimize.bracket )。最小化器 x 不一定满足 xa <= x <= xb

tol 浮点数,可选

解决方案 xopt 中的相对误差对于收敛是可以接受的。

full_output 布尔型,可选

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

maxiter 整数,可选

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

返回

xmin ndarray

最佳点。

fval 浮点数

(可选输出)最优函数值。

iter int

(可选输出)迭代次数。

funcalls int

(可选输出)进行的目标函数评估次数。

注意

尽可能使用反抛物线插值来加速黄金分割法的收敛。

不确保最小值位于指定的范围内布拉克.看scipy.optimize.fminbound.

例子

我们说明函数的行为布拉克大小分别为 2 和 3。在这种情况下布拉克是这样的形式(xa, xb),我们可以看到对于给定的值,输出不一定位于范围内(xa, xb).

>>> def f(x):
...     return (x-1)**2
>>> from scipy import optimize
>>> minimizer = optimize.brent(f, brack=(1, 2))
>>> minimizer
1
>>> res = optimize.brent(f, brack=(-1, 0.5, 2), full_output=True)
>>> xmin, fval, iter, funcalls = res
>>> f(xmin), fval
(0.0, 0.0)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.optimize.brent。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。