當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。