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でデータをフィッティングしてパラメータを求めることができる。

bannerAds