root(method=’broyden1’)#
- scipy.optimize.root(fun, x0, args=(), method='hybr', jac=None, tol=None, callback=None, options=None)
另请参阅
有关其余参数的文档,请参阅
scipy.optimize.root
- 选项:
- ——-
- nitint, 可选
迭代次数。如果省略(默认),则根据需要进行迭代以满足容差要求。
- dispbool, 可选
在每次迭代时将状态打印到标准输出。
- maxiterint, 可选
最大迭代次数。
- ftolfloat, 可选
残差的相对容差。如果省略,则不使用。
- fatolfloat, 可选
残差的绝对容差(在最大范数下)。如果省略,默认值为 6e-6。
- xtolfloat, 可选
相对最小步长。如果省略,则不使用。
- xatolfloat, 可选
根据雅可比近似确定的绝对最小步长。如果步长小于此值,则优化成功终止。如果省略,则不使用。
- tol_norm函数(向量) -> 标量, 可选
收敛检查中使用的范数。默认是最大范数。
- line_search{无, ‘armijo’ (默认), ‘wolfe’}, 可选
用于确定雅可比近似给定方向步长的线搜索类型。默认为 ‘armijo’。
- jac_optionsdict, 可选
相应雅可比近似的选项。
- alphafloat, 可选
雅可比的初始猜测值为 (-1/alpha)。
- reduction_methodstr 或 tuple, 可选
用于确保 Broyden 矩阵秩保持较低的方法。可以是给出方法名称的字符串,也可以是形式为
(method, param1, param2, ...)
的元组,该元组给出方法名称和附加参数的值。可用方法
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.])