在sympy中,给定一个矩阵方程 M * x + N * y = 0(或更复杂的情况),如何解出x?(其中M、N是矩阵,x、y是向量)我尝试使用普通符号来解决这个问题,但显然失败了。使用MatrixSymbol也不起作用。有没有什么方法可以解决这个问题,或者sympy无法解决它?
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所需的基本事项已经存在。这可能很容易实现。
solve
将矩阵表达式与非交换符号视为相同即可。 - asmeurersolve(M*x + N*y, x)
的结果应该是$-M^{-1} N y$。 - ken
M,N
的元素是符号还是仅仅是数字? - Hookedsolve
,但如果有足够多的人要求,它是可以支持的。也许你可以在GitHub上提出一个问题?http://github.com/sympy/sympy/issues/ - MRocklin