2013-03-18 71 views
3

如果我有一个表达式,如c1/(c2*s + c3)我希望sympy将表达式转换为看起来像C1/(s + C2)的模板,例如C1 = c1/c2C2 = c3/c2Sympy重写表达式为模板

有没有简单的方法来做到这一点?

+0

通常情况下,人们会使用'Wild'和'match'来做到这一点,但他们似乎没有足够强大的力量去认识到一个表达真的是另一个表达的形式。 – asmeurer 2013-03-19 16:50:23

+0

是的,结果必须与“通配符”结构完全相同。这可能是一个很好的功能。 – aagaard 2013-03-20 10:08:36

回答

-1

好吧,我不知道这是否会一直工作,但仍

from sympy import Symbol, simplify 

c1 = Symbol('c1') 
c2 = Symbol('c2') 
c3 = Symbol('c3') 
s = Symbol('s') 
C1 = Symbol('C1') 
C2 = Symbol('C2') 

c1 = C1*c2 
c3 = c2*C2 

exp = c1/(c2*s + c3) 
exp = simplify(exp) 

希望这有助于。