numpy.linalg.solve

linalg.solve(a, b)[源代码]

解线性矩阵方程或线性标量方程组。

计算“精确”解, x ,即全阶线性矩阵方程 ax = b .

参数
a(…,m,m)数组类

系数矩阵。

b(…,m,),(…,m,k),数组类似

坐标或“因变量”值。

返回
x(…,m,),(…,m,k)ndarray

系统A x=B的解决方案。返回的形状与 b .

加薪
LinAlgError

如果 a 是单数还是非正方形。

参见

scipy.linalg.solve

在SciPy中有类似的功能。

笔记

1.8.0 新版功能.

广播规则适用,见 numpy.linalg 有关详细信息的文档。

解是用LAPACK程序计算的 _gesv .

a 必须是方形且具有满秩,即所有行(或相等的列)必须是线性独立的;如果其中一个不是真的,则使用 lstsq 对于最小二乘法,系统/方程的最佳“解”。

工具书类

1

斯特朗 线性代数及其应用 ,第2版,奥兰多,佛罗里达州,学术出版社,1980年,第22页。

实例

解方程组 x0 + 2 * x1 = 13 * x0 + 5 * x1 = 2

>>> a = np.array([[1, 2], [3, 5]])
>>> b = np.array([1, 2])
>>> x = np.linalg.solve(a, b)
>>> x
array([-1.,  1.])

检查解决方案是否正确:

>>> np.allclose(np.dot(a, x), b)
True