Python でデータをフィッティングしてパラメータを取得する方法
Pythonのscipyライブラリのcurve_fit関数は、任意の非線形関数のカーブフィッティングに使用できます。
はじめに必要なライブラリをインポートする必要がある:
import numpy as np
from scipy.optimize import curve_fit
次に、指数関数のようにフィッティングする非線形関数を定義します:
def func(x, a, b, c):
return a * np.exp(-b * x) + c
次にデータを用意します。xデータとyデータの組があるとします。
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([1, 2.2, 3.8, 6.5, 10.4, 16.5])
curve_fit関数でフィッティングする:
params, params_covariance = curve_fit(func, x, y)
うち、params はフィッティングにより得られたパラメータ、params_covariance はパラメータの共分散行列です。
最後に、フィッティングしたパラメータを出力する:
print(params)
そうすればPythonでデータをフィッティングしてパラメータを求めることができる。