如何用sympy求解矩阵方程?

Dir*_*irk 6 python symbolic-math sympy

同情,给出一个矩阵方程

M*x + N*y = 0(或更复杂..)

如何为x解决这个问题?(M,N =矩阵,x,y =向量)

我用普通符号尝试了这个,但显然失败了.使用MatrixSymbol也不行.有没有办法做到这一点,或者是否有能力做到这一点?

asm*_*rer 6

正如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  ?
Run Code Online (Sandbox Code Playgroud)

与MatrixExpressions不同,非交换符号没有形状概念,因此您需要自己跟踪它.但这也表明为MatrixExpression实现这一点的基本内容已经存在.它可能很容易实现.

  • 打开了一个新问题,“solve(M*x + N*y, x) 对于非交换符号失败”:https://github.com/sympy/sympy/issues/12258 (2认同)