scipy.optimize.

fminbound#

scipy.optimize.fminbound(func, x1, x2, args=(), xtol=1e-05, maxfun=500, full_output=0, disp=1)[原始碼]#

純量函數的有界限最小值。

參數:
func可呼叫物件 f(x,*args)

要最小化的目標函數(必須接受並傳回純量)。

x1, x2浮點數或陣列純量

有限的最佳化邊界。

argstuple,選用

傳遞給函數的額外參數。

xtolfloat,選用

收斂容忍度。

maxfunint,選用

允許的最大函數評估次數。

full_outputbool,選用

若為 True,則傳回選用輸出。

disp: int, 選用

若為非零值,則印出訊息。

0 : 不印出訊息。

1 : 僅印出未收斂通知訊息。

2 : 也印出收斂訊息。

3 : 印出迭代結果。

傳回值:
xoptndarray

在給定區間內最小化目標函數的參數。

fvalnumber

(選用輸出)在最小值評估的函數值。

ierrint

(選用輸出)錯誤旗標(若收斂則為 0,若達到最大函數呼叫次數則為 1)。

numfuncint

(選用輸出)進行的函數呼叫次數。

參見

minimize_scalar

純量單變數函數最小化演算法的介面。請參閱特別是 ‘Bounded’ 方法

註解

使用 Brent 方法在區間 x1 < xopt < x2 中尋找純量函數 func 的局部最小值。(有關自動括號,請參閱 brent。)

參考文獻

[1]

Forsythe, G.E., M. A. Malcolm, and C. B. Moler. “Computer Methods for Mathematical Computations.” Prentice-Hall Series in Automatic Computation 259 (1977).

[2]

Brent, Richard P. Algorithms for Minimization Without Derivatives. Courier Corporation, 2013.

範例

fminbound 在給定範圍內尋找函數的最小值。以下範例說明了這一點。

>>> from scipy import optimize
>>> def f(x):
...     return (x-1)**2
>>> minimizer = optimize.fminbound(f, -4, 4)
>>> minimizer
1.0
>>> minimum = f(minimizer)
>>> minimum
0.0
>>> res = optimize.fminbound(f, 3, 4, full_output=True)
>>> minimizer, fval, ierr, numfunc = res
>>> minimizer
3.000005960860986
>>> minimum = f(minimizer)
>>> minimum, fval
(4.000023843479476, 4.000023843479476)