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