📌  相关文章
📜  如何使用Python – Matplotlib 计算和绘制函数的导数?

📅  最后修改于: 2022-05-13 01:54:38.552000             🧑  作者: Mango

如何使用Python – Matplotlib 计算和绘制函数的导数?

在本文中,我们将使用 matplotlib 和Python绘制函数的导数。为此,我们在Python中使用了一些模块,如下所示:

  • Matplotlib: Matplotlib 是用于数据可视化的最流行的Python包之一。它是一个跨平台库,用于从数组中的数据制作二维图。
  • NumPy: 它是一个用于处理数组的Python库,它还支持大型多维数组和矩阵,它还具有多个数学函数。
  • 科学派: Python有一个名为 SciPy 的库,用于数学、科学和工程计算。该库依赖于 NumPy,并提供各种数值运算。

要首先绘制函数的导数,我们必须计算它。 scipy.misc 库有一个derivative()函数,它接受一个参数作为函数,另一个是我们将区分函数的变量wrt。因此,我们将创建一个名为函数() 的方法,它将返回原始函数,另一个名为 deriv() 的方法将返回该函数的导数。

在计算输入函数的导数之后,我们将使用 NumPy linspace()函数来设置 x 轴的范围。积()函数将被用来绘制函数,并且也衍生该函数的。

方法:

  • 导入所需的模块。
  • 定义函数及其导数的方法
  • 使用 NumPy linspace函数制作 x 轴间距。
  • 绘制函数及其导数
  • 使用 gca()函数更改轴的限制
  • 使用 text()函数绘制文本

例1:(立方的导数)



在这个例子中,我们将函数f(x)=2x 3 +x+3 作为输入,然后计算导数并绘制函数及其导数。

Python3
# importing the library
import matplotlib.pyplot as plt
from scipy.misc import derivative
import numpy as np
  
# defining the function
def function(x):
    return 2*x*x*x+x+3
  
# calculating its derivative
def deriv(x):
    return derivative(function, x)
  
# defininf x-axis intervals
y = np.linspace(-6, 6)
  
# plotting the function
plt.plot(y, function(y), color='purple', label='Function')
  
# plotting its derivative
plt.plot(y, deriv(y), color='green', label='Derivative')
  
# formatting
plt.legend(loc='upper left')
plt.grid(True)


Python3
# importing the library
import matplotlib.pyplot as plt
from scipy.misc import derivative
import numpy as np
  
# defining the function
def function(x):
    return x*x*x*x+x*x+5
  
# calculating its derivative
def deriv(x):
    return derivative(function, x)
  
  
# defininf x-axis intervals
y = np.linspace(-15, 15)
  
# plotting the function
plt.plot(y, function(y), color='red', label='Function')
  
# plotting its derivative
plt.plot(y, deriv(y), color='green', label='Derivative')
  
# formatting
plt.legend(loc='upper left')
plt.grid(True)


Python3
# importing modules
import matplotlib.pyplot as plt
from scipy.misc import derivative
import numpy as np
  
# method to return function
def function(x):
    return 4*x**2+x+1
  
# method to return its derivative
def deriv(x):
    return derivative(function, x)
  
#range in x-axis
y = np.linspace(-6, 6)
  
# plotting function
plt.plot(y, function(y), color='brown', label='Function')
  
# plotting its derivative
plt.plot(y, deriv(y), color='blue', label='Derivative')
  
# changing limits of y-axis
plt.gca().spines['left'].set_position('zero',)
  
# changing limits of x-axis
plt.gca().spines['bottom'].set_position('zero',)
plt.legend(loc='upper left')
  
# plotting text in the graph
plt.text(5.0, 1.0, r"$f'(x)=8x+1$", horizontalalignment='center',
         fontsize=18, color='blue')
  
plt.text(-4.4, 25.0, r'$f(x)=4x^2+x+1$', horizontalalignment='center',
         fontsize=18, color='brown')
plt.grid(True)


输出:

例2:(多项式的导数)

在这个例子中,我们将给出函数f(x)=x 4 +x 2 +5 作为输入,然后计算导数并绘制函数及其导数。

蟒蛇3

# importing the library
import matplotlib.pyplot as plt
from scipy.misc import derivative
import numpy as np
  
# defining the function
def function(x):
    return x*x*x*x+x*x+5
  
# calculating its derivative
def deriv(x):
    return derivative(function, x)
  
  
# defininf x-axis intervals
y = np.linspace(-15, 15)
  
# plotting the function
plt.plot(y, function(y), color='red', label='Function')
  
# plotting its derivative
plt.plot(y, deriv(y), color='green', label='Derivative')
  
# formatting
plt.legend(loc='upper left')
plt.grid(True)

输出:



示例 3:(按文本格式化的二次导数)

在这个例子中,我们将绘制 f(x)=4x 2 +x+1 的导数。此外,我们将使用gca()函数使用一些格式,该函数将更改轴的限制,以便 x、y 轴都在原点相交。来自 matplotlib 库的text()函数在图形上绘制文本并将参数作为 (x, y) 坐标。我们还将进行一些格式化。

蟒蛇3

# importing modules
import matplotlib.pyplot as plt
from scipy.misc import derivative
import numpy as np
  
# method to return function
def function(x):
    return 4*x**2+x+1
  
# method to return its derivative
def deriv(x):
    return derivative(function, x)
  
#range in x-axis
y = np.linspace(-6, 6)
  
# plotting function
plt.plot(y, function(y), color='brown', label='Function')
  
# plotting its derivative
plt.plot(y, deriv(y), color='blue', label='Derivative')
  
# changing limits of y-axis
plt.gca().spines['left'].set_position('zero',)
  
# changing limits of x-axis
plt.gca().spines['bottom'].set_position('zero',)
plt.legend(loc='upper left')
  
# plotting text in the graph
plt.text(5.0, 1.0, r"$f'(x)=8x+1$", horizontalalignment='center',
         fontsize=18, color='blue')
  
plt.text(-4.4, 25.0, r'$f(x)=4x^2+x+1$', horizontalalignment='center',
         fontsize=18, color='brown')
plt.grid(True)

输出: