假设我们有矩阵方程A*x = b
,其中A
是方形但奇异的。然后,一般来说,等式要么没有解决方案要么没有多少解决方案。如果它确实有解决方案,我想使用SymPy在自由变量方面找到符号的形式。
我知道如果我们能够找到一个特定的解决方案x
,那么通过将A
的零空间中的向量添加到x
,我们可以找到其余的,所以问题会减少到找到只有一个解决方案在Mathematica中,函数LinearSolve
将为您提供这样的解决方案,但不幸的是,在SymPy中,所有求解器似乎都要求A是非单数的。
有谁知道如何使用SymPy找到这样的解决方案(符号)?我一直在考虑使用自己的算法来完成这项工作,可能首先使用A.rref()
将A
放入缩减的行梯形格式,但我对线性代数的信心不足以知道是否这将稳定运作。另一种可能是计算伪逆,但函数pinv()
抱怨奇异矩阵。
答案 0 :(得分:0)
万一有人遇到这个问题,答案是在具有此功能的SymPy的最新版本中使用linsolve
功能。