如何使用 Python 和 Matplotlib 計算並繪製函式的導數?
函式的導數是微積分中使用的關鍵概念之一。它是衡量當我們改變輸出時函式變化多少的指標。
Matplotlib 是 Python 的繪相簿,因為它沒有提供直接計算函式導數的方法,因此您需要使用 NumPy,它也是 Python 庫之一,您可以使用它來計算函式的導數,並使用 Matplotlib 來視覺化結果。
在本文中,我們將使用 NumPy 庫計算函式的導數,並藉助 Python 中的 Matplotlib 對其進行視覺化。
什麼是函式的導數?
導數是函式相對於其輸入變化的速率。它給出函式在任意一點的切線的斜率,還可以用於查詢最大值、最小值、臨界點和拐點。函式 f(x) 的導數定義為差商在 x 的變化接近於零時的極限。解釋它的數學表示式如下:
f`(x) = lim (h -> 0) [(f(x + h) – f(x)) / h]
這裡,極限表示函式在 x 處的瞬時變化率。
Python 中的 Matplotlib 是什麼?
Matplotlib 是 Python 最流行的視覺化庫之一。它廣泛用於科學計算領域。它支援各種繪圖型別並提供許多自定義選項,它還可以與 NumPy 和其他科學計算庫整合。
使用 Matplotlib 計算函式的導數
由於 Matplotlib 中沒有直接計算函式導數的方法,我們需要使用公式來計算導數,並使用圖形繪製結果。請按照以下步驟操作 -
步驟 1 – 首先匯入所需的模組,即 matplotlib 和 numpy。
import numpy as np import matplotlib.pyplot as plt
步驟 2 – 匯入模組後,定義您想要微分的函式。讓我們以 f(x) = x2 為例
Def f(x):
return x**2
步驟 2 – 現在,定義要繪製函式和導數的 x 值範圍。讓我們取一個 [-4, 4] 的範圍
x = np.linspace(-4, 4, 1000)
步驟 3 – 然後,使用 numpy 的 gradient() 函式,我們可以計算函式的導數。此函式的作用是計算值陣列的數值梯度,它是導數的近似值。
dfdx = np.gradient(f(x), x)
步驟 4 – 為了繪製原始函式及其導數,我們將使用 matplotlib。作為輸出,將建立一個繪圖。
plt.plot(x, f(x), label = ‘f(x)’) plt.plot(x, dfdx, label = ‘df/dx’) plt.legend() plt.show()
示例
在完成所有步驟後,程式碼和輸出將如下所示
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return x**2
x = np.linspace(-2, 2, 100)
dfdx = np.gradient(f(x), x)
plt.plot(x, f(x), label='f(x)')
plt.plot(x, dfdx, label='df/dx')
plt.legend()
plt.show()
輸出

示例
在這裡,我們將首先將函式定義為 f(x) = sin(x),然後使用 NumPy 的 gradient 函式計算其導數。然後,我們將嘗試使用 Matplotlib 的 plot() 函式繪製原始函式 f(x) 和導數 df/dx。
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return np.sin(x)
x = np.linspace(-np.pi, np.pi, 1000)
dfdx = np.gradient(f(x), x)
fig, ax = plt.subplots()
ax.plot(x, f(x), label='f(x)')
ax.plot(x, dfdx, label="df/dx")
ax.legend()
plt.show()
輸出

示例
第一步是使用 numpy 的冪函式定義我們要微分的函式。然後,為了計算一組點上函式的導數,我們將使用 gradient() 函式。
此函式的作用是獲取一個值陣列,然後返回一個具有相同形狀的陣列,其中包含給定值的數值導數。
import matplotlib.pyplot as plt
import numpy as np
def f(x):
return np.power(x, 2)
x = np.linspace(0, 4, 100)
y = f(x)
dy = np.gradient(y, x)
plt.plot(x, y, label='f(x)')
plt.plot(x, dy, label="f'(x)")
plt.legend()
plt.show()
輸出

在這裡,在每種情況下,我們首先定義了我們要計算其導數的函式。我們使用 numpy 中的 linspace() 函式建立了 x 軸值,並使用它們來計算導數值。最後,我們使用 plot 函式繪製函式及其導數,並使用 legend 函式向圖形新增圖例。
結論
在本文中,我們使用 python - Matplotlib 計算了函式的導數。我們使用了不同的函式,例如 gradient() 來計算導數,linspace() 來計算值的範圍,以及 plot() 分別來繪製函式及其導數。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP