root(method=’broyden1’)#
- scipy.optimize.root(fun, x0, args=(), method='hybr', jac=None, tol=None, callback=None, options=None)
另請參閱
有關其餘參數的文件,請參閱
scipy.optimize.root
- 選項:
- ——-
- nitint, 選用
要進行的迭代次數。 如果省略(預設),則會進行達到容差所需的次數。
- dispbool, 選用
在每次迭代時將狀態列印到 stdout。
- maxiterint, 選用
要進行的最大迭代次數。
- ftolfloat, 選用
殘差的相對容差。 如果省略,則不使用。
- fatolfloat, 選用
殘差的絕對容差(以最大範數表示)。 如果省略,預設值為 6e-6。
- xtolfloat, 選用
相對最小步長。 如果省略,則不使用。
- xatolfloat, 選用
絕對最小步長,由 Jacobian 近似值決定。 如果步長小於此值,則最佳化將終止並視為成功。 如果省略,則不使用。
- tol_normfunction(vector) -> scalar, 選用
用於收斂檢查的範數。 預設值為最大範數。
- line_search{None, ‘armijo’ (預設), ‘wolfe’}, 選用
要使用哪種類型的線搜索來確定 Jacobian 近似值給定方向上的步長。 預設為 ‘armijo’。
- jac_optionsdict, 選用
各 Jacobian 近似值的選項。
- alphafloat, 選用
Jacobian 的初始猜測值為 (-1/alpha)。
- reduction_methodstr 或 tuple, 選用
用於確保 Broyden 矩陣的秩保持較低的方法。 可以是給出方法名稱的字串,或形式為
(method, param1, param2, ...)
的 tuple,其中給出方法名稱和額外參數的值。可用方法
restart
:捨棄所有矩陣列。 沒有額外參數。simple
:捨棄最舊的矩陣列。 沒有額外參數。svd
:僅保留最重要的 SVD 組件。 採用額外參數to_retain
,該參數決定在執行秩縮減時要保留的 SVD 組件數。 預設值為max_rank - 2
。
- max_rankint, 選用
Broyden 矩陣的最大秩。 預設值為無限大(即,不進行秩縮減)。
範例
>>> def func(x): ... return np.cos(x) + x[::-1] - [1, 2, 3, 4] ... >>> from scipy import optimize >>> res = optimize.root(func, [1, 1, 1, 1], method='broyden1', tol=1e-14) >>> x = res.x >>> x array([4.04674914, 3.91158389, 2.71791677, 1.61756251]) >>> np.cos(x) + x[::-1] array([1., 2., 3., 4.])