billy:
J'ai essayé de trouver les coefficients de quelques longues expressions, et même si elles sont non nul, le résultat que je prends est égal à 0
.
Je pense que le problème est que je ne comprends pas que le résultat soit (s1+s2)/s4
sur ce 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))
smichr:
coeff
est assez littérale , donc s'il n'y a pas de terme avec xx
comme facteur il retourne 0. En tant que votre expression est, il apparaît comme une fraction, un seul terme, et il n'y a aucun élément de xx
à ce terme. (Mais il y a dans le numérateur.) Essayez d' élargir votre expression première:
>>> print(TestExp2.expand().coeff(xx))
s1/s4 + s2/s4
Et le toucher avec factor_terms
ou par collect
souci de simplicité
>>> factor_terms(_)
(s1 + s2)/s4