2017-12-12 23 views
0

lmfitの指数関数モデルは、(負の)指数関数を近似するときにどのように機能しますか?LMFITで負の指数関数モデルを適合させる

以下はhttps://lmfit.github.io/lmfit-py/model.htmlに従うことを試みたが、右の結果を提供するために失敗しました:

mod = lmfit.models.ExponentialModel() 
pars = mod.guess([1, 0.5], x=[0, 1]) 
out = mod.fit([1, 0.5], pars, x=[0, 1]) 
out.eval(x=0) # result is 0.74999998273811308, should be 1 
out.eval(x=1) # result is 0.75000001066995159, should be 0.5 

答えて

1

あなたがデータに2パラメータ指数モデルに合うように二つ以上のデータポイントが必要になります。 Lmフィットモデルは、データフィッティングを行うように設計されています。このような何かが動作します:

import numpy as np 
import lmfit 

xdat = np.linspace(0, 2.0, 11) 
ydat = 2.1 * np.exp(-xdat /0.88) + np.random.normal(size=len(xdat), scale=0.06) 

mod = lmfit.models.ExponentialModel() 
pars = mod.guess(ydat, x=xdat) 
out = mod.fit(ydat, pars, x=xdat) 

print(out.fit_report()) 

を代わりに、あなたはamplitude = 0.75decay > 1e6を取得しています。

+0

ありがとうございました。データはMVCEであることが意図されていましたが、単純すぎます。 lmfitのように思えるだけで私の実際のデータによく合いませんでした。 –

関連する問題