2013-03-18 2 views
3

Если у меня есть выражение, такое как c1/(c2*s + c3) Я бы хотел, чтобы sympy преобразовал выражение в шаблон, похожий на C1/(s + C2) такой, что C1 = c1/c2 и C2 = c3/c2.Sympy переписать выражение в шаблон

Есть ли простой способ сделать это?

+0

Обычно для этого нужно использовать 'Wild' и' match', но они не кажутся достаточно мощными, чтобы распознавать, что одно выражение действительно в форме другого. – asmeurer

+0

Да, результат должен иметь ту же форму, что и «подстановочная» структура. Это может быть хорошая возможность включить. – aagaard

ответ

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

Надеется, что это помогает.

Смежные вопросы