Я не могу найти коэффициент переменной, когда доминирует в выражении - PullRequest
0 голосов
/ 04 апреля 2020

Я пытался найти коэффициенты некоторых длинных выражений, и хотя они не равны нулю, результат, который я получаю, равен 0.

Я думаю, проблема в том, что я не на этом mwe получим (s1+s2)/s4 результат:

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))

1 Ответ

1 голос
/ 04 апреля 2020

coeff довольно буквально, поэтому, если нет термина с xx в качестве фактора, он вернет 0. Как ваше выражение, оно выглядит как дробь, отдельный термин, и нет фактора xx в этом сроке. (Но в числителе есть.) Сначала попробуйте расширить выражение:

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

и коснитесь его factor_terms или collect, чтобы упростить:

>>> factor_terms(_)
(s1 + s2)/s4
...