要使用SciPy庫進行數據擬合,首先需要導入必要的模塊:
import numpy as np
from scipy.optimize import curve_fit
然后,準備你的數據。假設你有兩個數組,分別是x和y,表示自變量和因變量:
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.1, 3.9, 6.1, 8.2, 10.2])
接下來,定義一個擬合函數。這個函數需要接受輸入的自變量x和一些參數,并返回預測的因變量值。例如,假設你想用二次函數擬合數據:
def quadratic_func(x, a, b, c):
return a*x**2 + b*x + c
接下來,使用curve_fit
函數進行擬合。這個函數需要傳入擬合函數、自變量x、因變量y和初始參數估計值。它會返回一個包含最優參數和協方差的元組:
popt, pcov = curve_fit(quadratic_func, x, y, p0=[1, 1, 1])
最后,可以用得到的最優參數來預測新的數據點或繪制擬合曲線:
import matplotlib.pyplot as plt
plt.scatter(x, y)
plt.plot(x, quadratic_func(x, *popt), color='red')
plt.show()
這樣你就完成了對數據的擬合。根據你的數據和擬合函數的復雜度,你可能需要嘗試不同的擬合函數和初始參數估計值來得到最好的擬合結果。