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)$$