2016-07-04 25 views
3

Wie können wir eine implizite Gleichung in Python 3 ableiten?
Beispiel x^2+y^2=25 Differenzierung ist: dy/dx=-x/y, wenn diese versuchen:Implizite Differenzierung mit Python 3?

from sympy import * 

init_printing(use_unicode=True) 

x = symbols('x') 
y = Function('y')(x) 

eq = x**2+y**2-25 
sol = diff(eq, x) 
print(sol) 

Aber es zeigt:

2*x + 2*y(x)*Derivative(y(x), x) 

Wie kann -x/y bekommen?

Antwort

4

SymPy hat die Funktion idiff die tut, was Sie wollen

In [2]: idiff(x**2+y**2-25, y, x) 
Out[2]: 
-x 
─── 
y 
1

Sie die Differentialgleichung haben, so können Sie es lösen mit neu ordnen:

solve(sol, diff(y, x, 1)) 
2

Sie können den Satz über implizite Funktionen verwendet werden, die besagt, dass, wenn zwei Variablen x, y, durch die implizite Gleichung verwandt sind f(x, y) = 0, dann ist das Derivat von y in Bezug auf x gleich - (df/dx)/(df/dy) (solange die partiellen Derivate kontinuierlich sind und df/dy != 0).

x, y = symbols('x, y') 
f = x**2 + y**2 - 25 
-diff(f,x)/diff(f,y) 
-x/y