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)
上述代码片断给出的输出等同于以下表达式 −
2xe x 2
要进行多次导数,可以按照你希望进行微分的次数传递变量,或者在变量后面传递一个数字。
>>> 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)