2015-10-28 16 views
5

Differenziert Ich möchte die folgende Gleichung nur auf der linken Seiteeine Gleichung

from sympy import * 
init_printing() 

x, t, r, phi = symbols('x, t, r, phi') 

# this is how I want to do it 
eq = Eq(x(t), r*phi(t)) 
eq.diff(t) 

enter image description here

Das Ergebnis differenziert unterscheiden ist. Ich möchte, dass es auf beiden Seiten bewertet wird. Ist das auf einfache Weise möglich?

Derzeit ich wie folgt vor:

Eq(eq.lhs.diff(t), eq.rhs.diff(t)) 
+1

Es ist nicht tatsächlich auf der linken Seite angewendet. Das ist nur ein Druckproblem. Es gilt für die gesamte Gleichheit. – asmeurer

Antwort

1

einige der Logik von Sympy: working with equalities manually Leihen, können Sie etwas tun:

eq.func(*map(lambda x: diff(x, t), eq.args)) 

Ein bisschen hässlich, aber es funktioniert. Alternativ können Sie auch einfach die .do() Methode abheben und sie verwenden, wenn Sie dies einige Male tun möchten.