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
数学
我不完全确定你要的是什么,但这里有一些你可以从拟合结果 out
或 func
中提取的东西(这是一个奇怪的名字给出拟合结果,但还可以):
模型结果有:
params
:最适合参数的有序字典。键是参数名称,值是 lmfit.Parameter
具有 value
、stderr
、max
、min
、correl
等属性的对象.
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
方法的作用。
我写了一个简短的代码来拟合来自光发射光谱的光谱.. 因此,我在 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 数学
我不完全确定你要的是什么,但这里有一些你可以从拟合结果 out
或 func
中提取的东西(这是一个奇怪的名字给出拟合结果,但还可以):
模型结果有:
params
:最适合参数的有序字典。键是参数名称,值是lmfit.Parameter
具有value
、stderr
、max
、min
、correl
等属性的对象.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
方法的作用。