SymPy:表达式简化

3

我开始使用 sympy Python 库。

假如我有这个表达式

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

3

collect 是您想要的函数。您可以将多个符号作为集合变量传递以收集它们。正如您注意到的那样,collect 不会先展开您的表达式,因此如果您想要展开,请使用 expand 自行完成。

In [15]: collect(e.expand(), [a, b, c])
Out[15]: a⋅(p + q) + b⋅p + c⋅q

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接