本文简要介绍 python 语言中 scipy.linalg.solve
的用法。
用法:
scipy.linalg.solve(a, b, lower=False, overwrite_a=False, overwrite_b=False, check_finite=True, assume_a='gen', transposed=False)#
求解线性方程组
a @ x == b
对于未知的x
对于正方形a矩阵。如果已知数据矩阵是特定类型,则将相应的字符串提供给
assume_a
键选择专用求解器。可用的选项是通用矩阵
‘gen’
symmetric
‘sym’
hermitian
‘her’
正定
‘pos’
如果省略,
'gen'
是默认结构。无论值如何,数组的数据类型都定义了调用哪个求解器。换句话说,即使复数数组条目的虚部正好为零,也会根据数组的数据类型调用复数求解器。
- a: (N, N) 数组
平方输入数据
- b: (N,NRHS)数组
右侧输入数据。
- lower: 布尔值,默认值:假
忽略如果
assume_a == 'gen'
(默认)。如果为 True,则计算仅使用下三角中的数据a;对角线上方的条目将被忽略。如果为 False(默认值),则计算仅使用上三角中的数据a;对角线以下的条目将被忽略。- overwrite_a: 布尔值,默认值:假
允许覆盖 a 中的数据(可能会提高性能)。
- overwrite_b: 布尔值,默认值:假
允许覆盖 b 中的数据(可能会提高性能)。
- check_finite: 布尔值,默认值:真
是否检查输入矩阵是否仅包含有限数。禁用可能会提高性能,但如果输入确实包含无穷大或 NaN,则可能会导致问题(崩溃、非终止)。
- assume_a: 字符串,{‘gen’, ‘sym’, ‘her’, ‘pos’}
上面解释了有效条目。
- transposed: 布尔值,默认值:假
如果为真,则求解
a.T @ x == b
。提高NotImplementedError对于复杂的a.
- x: (N, NRHS) ndarray
解决方案数组。
- ValueError
如果检测到大小不匹配或输入 a 不是正方形。
- LinAlgError
如果矩阵是奇异的。
- LinAlgWarning
如果检测到 ill-conditioned 输入 a。
- NotImplementedError
如果转置为 True 并且输入 a 是复矩阵。
参数 ::
返回 ::
抛出 ::
注意:
如果输入 b 矩阵是具有 N 个元素的一维数组,则当与 NxN 输入 a 一起提供时,尽管表面大小不匹配,但仍会假定它是有效的列向量。这与 numpy.dot() 行为兼容,并且返回的结果仍然是一维数组。
通过分别调用LAPACK 的?GESV、?SYSV、?HESV 和?POSV 例程获得通用的、对称的、Hermitian 和正定的解。
例子:
给定 a 和 b,求解 x:
>>> import numpy as np >>> a = np.array([[3, 2, 0], [1, -1, 0], [0, 5, 1]]) >>> b = np.array([2, 4, -1]) >>> from scipy import linalg >>> x = linalg.solve(a, b) >>> x array([ 2., -2., 9.]) >>> np.dot(a, x) == b array([ True, True, True], dtype=bool)
相关用法
- Python SciPy linalg.solve_circulant用法及代码示例
- Python SciPy linalg.solve_banded用法及代码示例
- Python SciPy linalg.solve_discrete_lyapunov用法及代码示例
- Python SciPy linalg.solveh_banded用法及代码示例
- Python SciPy linalg.solve_sylvester用法及代码示例
- Python SciPy linalg.solve_toeplitz用法及代码示例
- Python SciPy linalg.solve_continuous_lyapunov用法及代码示例
- Python SciPy linalg.solve_continuous_are用法及代码示例
- Python SciPy linalg.solve_discrete_are用法及代码示例
- Python SciPy linalg.solve_triangular用法及代码示例
- Python SciPy linalg.svd用法及代码示例
- Python SciPy linalg.spsolve用法及代码示例
- Python SciPy linalg.spsolve_triangular用法及代码示例
- Python SciPy linalg.splu用法及代码示例
- Python SciPy linalg.spilu用法及代码示例
- Python SciPy linalg.svdvals用法及代码示例
- Python SciPy linalg.sqrtm用法及代码示例
- Python SciPy linalg.svds用法及代码示例
- Python SciPy linalg.sinm用法及代码示例
- Python SciPy linalg.schur用法及代码示例
- Python SciPy linalg.sinhm用法及代码示例
- Python SciPy linalg.signm用法及代码示例
- Python SciPy linalg.subspace_angles用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.linalg.solve。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。