LMFIT - 从 Fitfunction 中提取变量

LMFIT - Extrackt variables form Fitfunction

我写了一个简短的代码来拟合来自光发射光谱的光谱.. 因此,我在 Peak 中安装了 VoigtModel,在背景中安装了 LinearModel。 像这样:

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 数学

我不完全确定你要的是什么,但这里有一些你可以从拟合结果 outfunc 中提取的东西(这是一个奇怪的名字给出拟合结果,但还可以):

模型结果有:

  • params:最适合参数的有序字典。键是参数名称,值是 lmfit.Parameter 具有 valuestderrmaxmincorrel 等属性的对象.

  • best_values:一个简单的字典,参数名称作为键,最适合的值作为值。

  • best_fit:最佳拟合模型的ndarray。

结果的更多属性在 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 方法的作用。