我开始使用 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
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)
collect
是您想要的函数。您可以将多个符号作为集合变量传递以收集它们。正如您注意到的那样,collect
不会先展开您的表达式,因此如果您想要展开,请使用 expand
自行完成。
In [15]: collect(e.expand(), [a, b, c])
Out[15]: a⋅(p + q) + b⋅p + c⋅q