copipe Python | ガウス関数でフィッティングする。

概要

lmfitをインストール(pip install lmfit)すると、lmfitのmodelsが持つGaussianModel()とConstantModel()によってガウス関数と定数を定義し、model.fit(x=xデータ, data=yデータ)によって、ガウス関数でフィッティングすることができる。

コード

from lmfit import models
xData = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
yData = [0, 1, 3, 7, 5, 12, 10, 11, 5, 4, 1]
model = models.GaussianModel()+models.ConstantModel()
output = model.fit(x=xData, data=yData)
print("定数 =", output.best_values["c"])
print("振幅 =", output.best_values["amplitude"])
print("中心 =", output.best_values["center"])
print("偏差 =", output.best_values["sigma"])

結果

定数 = -0.28396332298974464
振幅 = 63.27818680242087
中心 = 0.7109734048108302
偏差 = 2.2423113216532977