scipy.optimize.
linearmixing#
- scipy.optimize.linearmixing(F, xin, iter=None, alpha=None, verbose=False, maxiter=None, f_tol=None, f_rtol=None, x_tol=None, x_rtol=None, tol_norm=None, line_search='armijo', callback=None, **kw)#
使用标量雅可比逼近法找到函数的根。
警告
此算法可能对特定问题有用,但能否奏效可能在很大程度上取决于问题。
- 参数:
- Ffunction(x) -> f
要查找根的函数;应该使用并返回类似数组的对象。
- xinarray_like
解的初始猜测
- alphafloat, 可选
雅可比近似为 (-1/alpha)。
- iterint, 可选
要进行的迭代次数。如果省略 (默认),则执行满足容差所需的次数。
- verbosebool, 可选
在每次迭代中将状态打印到标准输出上。
- maxiterint, 可选
要进行的最大迭代次数。如果需要更多才能满足收敛,
NoConvergence
就会引发。- f_tolfloat, 可选
残差的绝对容差(最大范数)。如果省略,则默认为 6e-6。
- f_rtolfloat, 可选
残差的相对容差。如果省略,则不使用。
- x_tolfloat, 可选
绝对最小步长,按照雅可比近似确定。如果步长小于此值,则优化结束成功。如果省略,则不使用。
- x_rtolfloat, 可选
相对最小步长。如果省略,则不使用。
- tol_normfunction(vector) -> scalar, 可选
在收敛检查中要使用的范数。默认为最大范数。
- line_search{None, ‘armijo’ (默认), ‘wolfe’}, 可选
使用哪种线搜索来确定雅可比近似给出的方向中的步长。默认为 ‘armijo’。
- callbackfunction, 可选
可选回调函数。在每次迭代中以
callback(x, f)
的形式调用,其中 x 是当前解,f 是相应的残差。
- 返回:
- solndarray
一个包含最终解的数组(与 x0 类似的数组类型)。
- 引发:
- NoConvergence
当找不到解时。
另请参见
root
多变量函数求根算法的界面。请特别是参阅
method='linearmixing'
。