上一主题

numpy.trace

下一主题

numpy.linalg.tensorsolve

numpy.linalg.solve

numpy.linalg.solve(a, b)[source]

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

计算良好确定的,即满秩线性矩阵方程ax = b的“精确”解,x

参数:

a:(...,M,M)array_like

系数矩阵。

b:{(...,M,),(...,M,K)},array_like

纵坐标或“因变量”值。

返回:

x:{(...,M,),(...,M,K)} ndarray

解决方案a系统a x = b。返回形状与b相同。

上升:

LinAlgError

如果a是奇异或不是正方形。

笔记

版本1.8.0中的新功能。

广播规则适用,有关详细信息,请参阅numpy.linalg文档。

使用LAPACK程序_gesv计算解

a必须是正方形且满秩,即所有行(或等效地,列)必须是线性无关的;如果任一个不为真,则使用lstsq计算系统/方程的最小二乘最佳“解”。

参考文献

[R43]G. Strang, Linear Algebra and Its Applications, 2nd Ed., Orlando, FL, Academic Press, Inc., 1980, pg. 22.

例子

求解方程系统3 * x0 + x1 = 9x0 + 2 x1 = 8

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

检查解决方案是否正确:

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