SymPy ODE 中的 Derivative() 或 diff()?

Jör*_*olz 1 sympy derivative ode dsolve

在 Sympy 中 ODE 的定义(和解决方案)中是否有充分的理由使用Derivative而不是?似乎做得很好:diffdiff

简单 ODE 的解

Dav*_*_sd 5

diff是一个“包装”方法,它将实例化该类Derivative。所以,这样做:

from sympy import *
expr = x**2
expr.diff(x)

# out: 2*x
Run Code Online (Sandbox Code Playgroud)

相当于:

Derivative(expr, x).doit()

# out: 2*x
Run Code Online (Sandbox Code Playgroud)

然而,该类Derivative可能有助于延迟导数的评估。例如:

Derivative(expr, x)

# out: Derivative(x**2, x)
Run Code Online (Sandbox Code Playgroud)

但同样的事情也可以通过以下方式实现:

expr.diff(x, evaluate=False)

# out: Derivative(x**2, x)
Run Code Online (Sandbox Code Playgroud)

diff因此,为了回答您的问题,在您提供的示例中,使用vs绝对没有区别Derivative

如果expr.diff(variable)可以计算,它将返回一个实例Expr(符号、数字、乘法、加法、幂运算,取决于expr)。否则,它将返回一个类型的对象Derivative