用Python解矩阵方程,可以用两个模块——Numpy和Sympy
矩阵方程:Ax=b
A为系数矩阵,b为解集矩阵
令B为A的增广矩阵
1、Ax=b无解的充要条件:r(A)+1=r(B)
2、Ax=b唯一解的充要条件:r(A)=r(B)=n
3、Ax=b无穷多解的充要条件:r(A)=r(B)<n
1、Numpy
2、Sympy
求解的逻辑:
x=A-1b
from sympy import *
p1 = Matrix([[1,2],[3,4]])
y = Matrix([[5],[9]])
print(p1**(-1)*y)
p2 = Matrix([[1,3,4],[2,3,4]])
print(p1**(-1)*p2)
p3 = Matrix([[1,0,3],[2,5,4],[3,4,5]])
p4 = Matrix([[1,3,4],[2,7,4],[6,5,8]])
print(p3**(-1)*p4)
结果:
Matrix([[-1], [3]])
Matrix([[0, -3, -4], [1/2, 3, 4]])
Matrix([[19/4, -3, 3], [-1/2, 1, -2/3], [-5/4, 2, 1/3]])
如果A不是可逆矩阵,那么矩阵方程无法进行求解
将会报错:
sympy.matrices.common.NonSquareMatrixError