【发布时间】:2020-10-11 08:24:22
【问题描述】:
我想用 lmfit 从简单模型创建更精细/复杂的模型。
我有两个功能,例如一个高斯(规范。峰值统一)和洛伦兹(规范。峰值统一)并希望适合例如它们的线性组合。仍然增加了团结。所以我可以写一个像
这样的新函数def voigt(*all the parameters*, alpha)
return alpha*gaussian(...) + (1-alpha)*lorentzian(...)
但这不是很适应。 所以我现在改为:
mod = ConstantModel(prefix = 'a1_') + Model(gauss) + ConstantModel(prefix='a2_') * Model(lorentz)
pars = Parameters()
pars.add('a1_c', value = 1, min = 0, max = 1)
pars.add('a2_c', expr = '1-a1_c')
还是觉得有点笨拙。有没有更优雅的方式?
【问题讨论】:
标签: python model-fitting lmfit