3

我从 sympy python lib 开始。

如果,我有这个表情

from sympy.abc import a,b,c,p,q
e = p * ( a + b ) + q * ( a + c )

我如何使用a,b,c作为因素?喜欢

a(p+q) + b*p + c*q
4

2 回答 2

5
from sympy.abc import a,b,c,p,q
from sympy import collect, expand
e = p * ( a + b ) + q * ( a + c )

print e
print expand(e)
print collect(expand(e),a)
于 2013-06-02T02:06:59.783 回答
3

collect确实是你想要的功能。您可以将多个符号作为集合变量传递以将它们全部收集。正如您所注意到的,collect不会先扩展您的表达式,因此如果您想要这样做,您必须自己使用expand.

In [15]: collect(e.expand(), [a, b, c])
Out[15]: a⋅(p + q) + b⋅p + c⋅q
于 2013-06-02T19:34:17.467 回答