NumPy 提供了线性代数函数库 linalg。
numpy.linalg.solve()
numpy.linalg.solve() 函数给出了矩阵形式的线性方程的解。
考虑以下线性方程:
x + y + z = 6
2y + 5z = -4
2x + 5y - z = 27
可以使用矩阵表示为:
如果矩阵成为A、X和B,方程变为:
AX = B
或
X = A^(-1)B
实例:
import numpy as np
import numpy.linalg as lg
A = np.array([[1, 1, 1], [0, 2, 5], [2, 5, -1]])
print("系数矩阵:\n", A)
#小b列是三行一列的数组,不可粗心大意为一维数组!
b = np.array([[6], [-4], [27]])
print("矩阵b:\n", b)
#求系数矩阵的逆矩阵,不过在用solve()方法时,用的是系数矩阵而非系数矩阵的逆矩阵!
a = lg.inv(A)
print("系数矩阵的逆矩阵:\n", a)
#计算X向量
X = lg.solve(A, b)
print("X=\n", X)
结果:
系数矩阵:
[[ 1 1 1]
[ 0 2 5]
[ 2 5 -1]]
矩阵b:
[[ 6]
[-4]
[27]]
系数矩阵的逆矩阵:
[[ 1.28571429 -0.28571429 -0.14285714]
[-0.47619048 0.14285714 0.23809524]
[ 0.19047619 0.14285714 -0.0952381 ]]
X=
[[ 5.]
[ 3.]
[-2.]]