SymPy - 导数
函数的导数是其相对于其中一个变量的瞬时变化率。 这相当于求函数在一点的切线的斜率。我们可以使用 SymPy 包中的 diff() 函数以变量的形式求出数学表达式的微分。
diff(expr, variable) >>> from sympy import diff, sin, exp >>> from sympy.abc import x,y >>> expr=x*sin(x*x)+1 >>> expr
上面的代码片段给出了等同于下面表达式的输出 −
$x\sin(x^2) + 1$
>>> diff(expr,x)
上面的代码片段给出了等同于下面表达式的输出 −
$2x^2\cos(x^2) + \sin(x^2)$
>>> diff(exp(x**2),x)
上面的代码片段给出了等同于下面表达式的输出 −
2xex2
要进行多次导数,请根据需要多次传递变量以求微分,或者在变量后传递一个数字。
>>> diff(x**4,x,3)
上面的代码片段给出了等同于下面表达式的输出 −
$24x$
>>> for i in range(1,4): print (diff(x**4,x,i))
上面的代码片段给出了下面的表达式 −
4*x**3
12*x**2
24*x
也可以调用表达式的 diff() 方法。 它的工作原理与 diff() 函数类似。
>>> expr=x*sin(x*x)+1 >>> expr.diff(x)
上面的代码片段给出了等同于下面表达式的输出 −
$2x^2\cos(x^2) + \sin(x^2)$
未计算的导数是使用 Derivative 类创建的。 它具有与 diff() 函数相同的语法。 要计算未计算的导数,请使用 doit 方法。
>>> from sympy import Derivative >>> d=Derivative(expr) >>> d
上面的代码片段给出了等同于下面表达式的输出 −
$\frac{d}{dx}(x\sin(x^2)+1)$
>>> d.doit()
上面的代码片段给出了等同于下面表达式的输出 −
$2x^2\cos(x^2) + \sin(x^2)$