minimize(method=’BFGS’)#

scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)

使用 BFGS 演算法最小化一個或多個變數的純量函數。

另請參閱

有關其餘參數的文件,請參閱 scipy.optimize.minimize

選項:
——-
dispbool

設定為 True 以印出收斂訊息。

maxiterint

要執行的最大迭代次數。

gtolfloat

如果梯度範數小於 gtol,則成功終止。

normfloat

範數的階數 (Inf 為最大值,-Inf 為最小值)。

epsfloat or ndarray

如果 jac is None,則為使用正向差分法數值逼近 Jacobian 矩陣時使用的絕對步長。

return_allbool, optional

設定為 True 以傳回每次迭代最佳解的列表。

finite_diff_rel_stepNone or array_like, optional

如果 jac in ['2-point', '3-point', 'cs'],則為數值逼近 Jacobian 矩陣時使用的相對步長。絕對步長計算為 h = rel_step * sign(x) * max(1, abs(x)),可能會調整以符合邊界。對於 jac='3-point'h 的符號會被忽略。如果為 None (預設值),則自動選擇步長。

xrtolfloat, default: 0

x 的相對容差。如果步長小於 xk * xrtol (其中 xk 是目前的參數向量),則成功終止。

c1float, default: 1e-4

Armijo 條件規則的參數。

c2float, default: 0.9

曲率條件規則的參數。

hess_inv0None or ndarray, optional

初始反 Hessian 矩陣估計值,形狀為 (n, n)。如果為 None (預設值),則使用單位矩陣。

註解

參數 c1c2 必須滿足 0 < c1 < c2 < 1

如果最小化未成功完成,並出現錯誤訊息「Desired error not necessarily achieved due to precision loss」,則考慮將 gtol 設定為更高的值。當 (有限差分) 數值微分無法提供足夠的精度來滿足 gtol 終止條件時,通常會發生這種精度損失。當在單精度下工作且未提供可呼叫的 jac 時,可能會發生這種情況。對於單精度問題,gtol 為 1e-3 似乎有效。