Python 创建和使用Symphy中的精确微分

Python 创建和使用Symphy中的精确微分,python,sympy,symbolic-math,calculus,differentiation,Python,Sympy,Symbolic Math,Calculus,Differentiation,我试图找出如何在Symphy中创建和操作(莱布尼兹符号的代数处理)。明确地说,众所周知 from sympy import * init_printing() x, y=symbols('x, y') f=Function('f')(x, y) Derivative(f, x) 屈服 在上述情况下,精确的微分为 对于物理学家来说,考虑到我们对链式规则的滥用,这一点尤其需要,但对于像V=a\ell和dV=dA d\ell这样的简单事情,在处理积分或热力学中经常发生的经典物理时,这一点也很简单

我试图找出如何在Symphy中创建和操作(莱布尼兹符号的代数处理)。明确地说,众所周知

from sympy import *
init_printing()
x, y=symbols('x, y')
f=Function('f')(x, y)
Derivative(f, x)
屈服

在上述情况下,精确的微分为


对于物理学家来说,考虑到我们对链式规则的滥用,这一点尤其需要,但对于像
V=a\ell
dV=dA d\ell
这样的简单事情,在处理积分或热力学中经常发生的经典物理时,这一点也很简单

>>> from sympy import *
>>> x  = Symbol(' x')
>>> dx = Symbol('dx')
>>> def f (x):
...     return x**3
>>> def g (x):
...     return sin(x)
让我们使用微分
dx
中的泰勒展开式来计算
f
g
的微分:

>>> f(x+dx).series(dx,0,2) - f(x)
3*dx*x**2 + O(dx**2)
>>> g(x+dx).series(dx,0,2) - g(x)
dx*cos(x) + O(dx**2)
其中,根据定义,
O(dx**2)
为零。当然,我们也可以使用差异化(
diff
):

>>> diff(x**3,x) * dx
3*dx*x**2
>>> diff(sin(x),x) * dx
dx*cos(x)