繁体   English   中英

使用Python 3进行隐式区分?

[英]Implicit differentiation with Python 3?

我们如何在Python 3中推导出一个隐式方程?
示例x^2+y^2=25区别是: dy/dx=-x/y ,当试试这个:

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)

但它显示:

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

怎么能得到-x/y

SymPy具有功能idiffidiff您的需求

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

你可以使用隐函数定理,它说明当两个变量xy通过隐式方程f(x, y) = 0 ,则y相对于x的导数等于- (df/dx) / (df/dy) (只要偏导数是连续的并且df/dy != 0 )。

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

你有微分方程,所以你可以使用solve重新排列它:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM