本文简要介绍 python 语言中 scipy.optimize.fsolve
的用法。
用法:
scipy.optimize.fsolve(func, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-08, maxfev=0, band=None, epsfcn=None, factor=100, diag=None)#
求函数的根。
返回由
func(x) = 0
定义的(非线性)方程的根,给出初始估计值。- func: 可调用
f(x, *args)
一个函数,它至少接受一个(可能是向量)参数,并返回一个相同长度的值。
- x0: ndarray
func(x) = 0
的根的起始估计值。- args: 元组,可选
func 的任何额外参数。
- fprime: 可调用
f(x, *args)
,可选 用于计算 func 的雅可比行列式的函数,该函数具有跨行的导数。默认情况下,将估计雅可比行列式。
- full_output: 布尔型,可选
如果为真,则返回可选输出。
- col_deriv: 布尔型,可选
指定 Jacobian 函数是否沿列计算导数(更快,因为没有转置操作)。
- xtol: 浮点数,可选
如果两个连续迭代之间的相对误差最多为 xtol,则计算将终止。
- maxfev: 整数,可选
函数调用的最大次数。如果为零,那么
100*(N+1)
是最大值,其中 N 是元素的数量x0.- band: 元组,可选
如果设置为 two-sequence 包含 Jacobi 矩阵带内的 sub- 和 super-diagonals 的数量,则 Jacobi 矩阵被认为是带状的(仅适用于
fprime=None
)。- epsfcn: 浮点数,可选
雅可比行列式的 forward-difference 近似的合适步长(对于
fprime=None
)。如果epsfcn小于机器精度,则假设函数中的相对误差为机器精度的量级。- factor: 浮点数,可选
确定初始步长界限的参数(
factor * || diag * x||
)。应该在区间(0.1, 100)
中。- diag: 顺序,可选
N 个正条目,用作变量的比例因子。
- func: 可调用
- x: ndarray
解决方案(或不成功调用的最后一次迭代的结果)。
- infodict: dict
带有键的可选输出字典:
nfev
函数调用次数
njev
雅可比调用次数
fvec
在输出处评估的函数
fjac
正交矩阵 q,由最终近似雅可比矩阵的 QR 因式分解产生,按列存储
r
同一矩阵的 QR 因式分解产生的上三角矩阵
qtf
矢量
(transpose(q) * fvec)
- ier: int
一个整数标志。如果找到解决方案,则设置为 1,否则请参阅消息以获取更多信息。
- mesg: str
如果没有找到解决方案,mesg 会详细说明失败的原因。
参数 ::
返回 ::
注意:
fsolve
是对 MINPACK 的 hybrd 和 hybrj 算法的封装。例子:
找到方程组的解:
x0*cos(x1) = 4, x1*x0 - x1 = 5
。>>> import numpy as np >>> from scipy.optimize import fsolve >>> def func(x): ... return [x[0] * np.cos(x[1]) - 4, ... x[1] * x[0] - x[1] - 5] >>> root = fsolve(func, [1, 1]) >>> root array([6.50409711, 0.90841421]) >>> np.isclose(func(root), [0.0, 0.0]) # func(root) should be almost 0.0. array([ True, True])
相关用法
- Python SciPy optimize.fmin用法及代码示例
- Python SciPy optimize.fixed_point用法及代码示例
- Python SciPy optimize.fmin_cobyla用法及代码示例
- Python SciPy optimize.fmin_bfgs用法及代码示例
- Python SciPy optimize.fmin_slsqp用法及代码示例
- Python SciPy optimize.fmin_tnc用法及代码示例
- Python SciPy optimize.fminbound用法及代码示例
- Python SciPy optimize.fmin_cg用法及代码示例
- Python SciPy optimize.fmin_powell用法及代码示例
- Python SciPy optimize.rosen_der用法及代码示例
- Python SciPy optimize.line_search用法及代码示例
- Python SciPy optimize.rosen用法及代码示例
- Python SciPy optimize.shgo用法及代码示例
- Python SciPy optimize.minimize_scalar用法及代码示例
- Python SciPy optimize.root用法及代码示例
- Python SciPy optimize.NonlinearConstraint用法及代码示例
- Python SciPy optimize.KrylovJacobian用法及代码示例
- Python SciPy optimize.toms748用法及代码示例
- Python SciPy optimize.linprog_verbose_callback用法及代码示例
- Python SciPy optimize.bracket用法及代码示例
- Python SciPy optimize.milp用法及代码示例
- Python SciPy optimize.diagbroyden用法及代码示例
- Python SciPy optimize.bisect用法及代码示例
- Python SciPy optimize.isotonic_regression用法及代码示例
- Python SciPy optimize.golden用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.optimize.fsolve。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。