copipe Python | lmfitでパラメータの初期値を設定する。

概要

params=model.make_params()でパラメータを作り、params.add("パラメータ名", value=初期値)によってパラメータを設定し、model.fit(x=xデータ, data=yデータ, params=params)によって、パラメータの初期値を使ってフィッティングすることができる。

コード

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()
params = model.make_params()
params.add("amplitude", value=10)
params.add("center", value=1.5)
output = model.fit(x=xData, data=yData, params=params)
print(output.best_values)

結果

{'c': -0.2839356685077238, 'amplitude': 63.27784429934269, 'center': 0.7109680348489016, 
'sigma': 2.242302476113797}