我写了一个简短的代码来适应来自光学发射规范的光谱。 因此,我将VoigtModel安装到Peak中,将LinearModel安装到backgrund中。 像这样:
mod=VoigtModel()
pars = mod.guess(y, x=x)
out = mod.fit(y, pars, x=x)`
和
mod=LinearModel()
pars = mod.guess(y, x=x)
func=mod.fit(y,pars,x=x)`
现在我想计算线性函数和voigt峰值函数之间的面积。有谁知道该怎么做。 我的想法是重建功能并执行集成。但是我不知道如何从 fit_report((中提取变量(斜率、截距、伽马、西格玛,...(? 感谢 BR 数学
我不完全确定你要什么,但这里有一些你可以从拟合结果中提取的东西out
或func
(这是一个奇怪的名称来给出拟合结果,但没关系(:
模型结果具有:
-
params
:最佳拟合参数的有序字典。 键是参数名称,值是具有value
、stderr
、max
、min
、correl
等属性的lmfit.Parameter
对象。 -
best_values
:一个简单的字典,参数名称作为键,最佳拟合值作为值。 -
best_fit
:最佳拟合模型的数组。
有关结果的更多属性,请参阅 http://lmfit.github.io/lmfit-py/model.html#modelresult-attributes
所以,可能你想要的是这样的:
for parname, param in out.params.items():
print("%s = %f +/- %f " % (parname, param.value, param.stderr))
这基本上就是fit_report
方法的作用。