0

我一直在尝试找到一些冗长表达式的系数,即使它们不为零,我得到的结果也等于0.

我认为问题在于我没有得到(s1+s2)/s4这个 mwe 的结果:

Sym1,Sym2,Sym3,Sym4 = sy.symbols('s1, s2, s3, s4')
xx                  = sy.Symbol('x')
TestExp             = Sym1*xx + Sym2*xx + Sym3
print(TestExp.coeff(xx))
TestExp2            = (Sym1*xx + Sym2*xx + Sym3)/Sym4
print(TestExp2.coeff(xx))
4

1 回答 1

1

coeff是非常字面的,所以如果没有xx作为因素的术语,那么它将返回 0。正如你的表达式,它显示为分数,单个术语,并且xx在该术语中没有因素。(但分子中有。)首先尝试扩展您的表达式:

>>> print(TestExp2.expand().coeff(xx))
s1/s4 + s2/s4

并用factor_termscollect来简化它:

>>> factor_terms(_)
(s1 + s2)/s4
于 2020-04-04T13:57:46.277 回答