在 Python 中進行指數和對數曲線擬合
曲線擬合是一種非常有效的工具,廣泛用於分析。曲線擬合方法研究自變數(也稱為預測變數)和因變數(稱為響應變數)之間的關係。該方法旨在提供最合適的模型來擬合一定數量的資料點。
曲線擬合有兩種型別:
- 對數曲線擬合
- 指數曲線擬合
在本教程中,我們將向你展示如何在 Python 中進行對數曲線擬合和指數曲線擬合的方法。
Python 中用於對數和指數曲線擬合的庫和模組
讓我們討論可用於執行程式的可能的庫和模組。
NumPy 庫
我們將使用 NumPy
庫中的函式如下。
array()
- 此函式用於建立一個NumPy
陣列,該陣列是一組相同型別的值,並具有元組形式的索引值。log()
- 這個函式更像是一種數學運算,可以幫助計算一個數字的自然對數。該數字是輸入陣列元素的一部分。exp()
- 該函式也是一個數學運算,用於計算輸入NumPy
陣列中存在的元素的指數。polyfit()
- 此函式有助於在多項式函式中擬合任何資料。它對多項式擬合進行最小二乘。
Matplotlib 庫
Matplotlib
庫主要用於 Python 繪圖。這個庫通常用於在 Python 中建立視覺化。本教程中使用了該庫中的一個模組,稱為 pyplot
模組。
Matplotlib
庫的 pyplot
模組是一個開源模組,有助於使 Matplotlib
庫像 MATLAB 一樣工作。該模組有很多功能可以幫助我們進行建立繪圖區域、在繪圖上建立標籤等操作。
對數曲線擬合
顧名思義,這裡繪製了對數方程。讓我們直接跳到將在 Python 中進行對數曲線擬合的程式碼。
import numpy as np
x = np.array([5, 10, 15, 20, 25])
y = np.array([3, 6, 9, 12, 15])
log_x = np.log(x)
log_y = np.log(y)
coefficients = np.polyfit(log_x, y, 1)
print(coefficients)
輸出:
[ 7.2647162 -9.64806344]
對於繪圖,請遵循此程式。
import matplotlib.pyplot as plt
c = 7.26 * log_x - 9.64
plt.plot(log_x, y, "o")
plt.plot(log_x, c)
輸出:
在上面的程式中,我們首先匯入必要的庫。之後,我們建立兩個 NumPy
陣列作為我們的主要資料。然後,我們計算兩個陣列中元素的對數值。我們將 polyfit()
函式用於 x
和 y
陣列的對數值。使用 polyfit()
函式,返回對數方程的係數。
- 獲得係數後,我們在對數方程中使用這些係數來繪製曲線。
- 最後,我們使用
Matplotlib
庫的pyplot
模組的plot()
函式繪製圖形。
指數曲線擬合
顧名思義,這裡繪製了指數方程。讓我們直接跳到將在 Python 中進行指數曲線擬合的程式碼。
import numpy as np
a = np.array([6, 12, 18, 24, 30])
b = np.array([4, 8, 12, 16, 20])
log_a = np.log(a)
log_b = np.log(b)
coefficients = np.polyfit(a, log_b, 1)
print(coefficients)
輸出:
[0.06520038 1.17018581]
對於繪圖,這是你可以遵循的程式碼片段。
c = np.exp(1.17) * np.exp(0.06 * a)
plt.plot(a, b, "o")
plt.plot(a, c)
輸出:
遵循與我們在對數曲線擬合中所做的相同的過程。但在這裡,使用指數函式而不是對數函式。因此,polyfit()
函式返回的係數在指數函式方程中傳遞。
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn