繁体   English   中英

Python SymPy 两个表达式相加

[英]Python SymPy addition of two expressions

我在Python SymPy中有两个简单的表达式(M1 和 M2)。 但是,当我尝试添加这两个表达式时,出现以下错误:

“TypeError:无法添加 <class 'sympy.matrices.dense.MutableDenseMatrix'> 和 <class 'sympy.core.mul.Mul'>”

如何添加表达式 M1 和 M2 而不会遇到此错误?

MWE:

from sympy import *
t, alpha, b1, b2, x1, x2 = symbols('t alpha beta1 beta2 X1 X2')

beta = Matrix([[b1, b2]]).T
X = Matrix([[x1, x2]]).T

M1 = t*alpha**2
M2 = X.T * (t*beta*beta.T) * X

M1 + M2 # Here I get the corresponding error

M2的形状为 (1, 1),但它仍被视为矩阵,并且似乎不支持矩阵和标量之间的加法。 来自 10 年前的github 问题

我们已经在 issue 5369 中讨论了标量加法,我们决定不支持它,所以这也不会发生,除非我们恢复那个决定。

链接到引用的问题。

但是,你可以做

M1 + M2[0]      # this will be a scalar

或者,如果您想要矩阵形式的所有内容,即按元素添加标量

M1 * ones(M2.rows, M2.cols) + M2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM