概要
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