如何用sympy求解矩阵方程?
在sympy这个库里,假设我们有一个矩阵方程:
M * x + N * y = 0
(或者更复杂的情况……)
我们想要怎么求出x呢?(这里M和N是矩阵,x和y是向量)
我试着用普通的符号来做这个,但显然失败了。使用MatrixSymbol也不行。请问有没有什么办法可以做到,还是说sympy做不到这一点?
1 个回答
8
正如MRocklin提到的,MatrixExpressions(矩阵表达式)目前还不支持这个功能,但非交换符号是可以的:
In [13]: M, N, x, y = symbols('M N x y', commutative=False)
In [15]: solve(M*x + N*y, x)
Out[15]:
⎡ -1⎤
⎣-N⋅y⋅M ⎦
和MatrixExpressions不同,非交换符号没有形状的概念,所以你需要自己去管理这个形状。不过这也说明,基本的实现方式在MatrixExpression中已经存在了。实现起来可能会很简单。