程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

lmfit:限制多个高斯分布的 sigma 相同

发布于2024-11-30 18:03     阅读(394)     评论(0)     点赞(29)     收藏(5)


我正在将多个高斯峰拟合到光谱中。我想将高斯峰约束为具有相同的 sigma 值。我正在使用 lmfit 并编写了以下示例代码来说明我的问题:

#generating fake spectrum
x = linspace(-20, 20, 101)
g1 = gaussian(x, 2.33, 0.21, 1.51)
g2 = gaussian(x, 2.33, 10, 5)
g3 = gaussian(x, 2.33, -8, 0.5)
y=g1+g2+g3

#model
gauss_1=GaussianModel(prefix='g1_')
pars= gauss_1.make_params(amplitude=2,center=0.21,sigma=1)

gauss_2=GaussianModel(prefix='g2_')
pars.update(gauss_2.make_params(amplitude=2,center=10,sigma=1))

gauss_3=GaussianModel(prefix='g3_')
pars.update(gauss_3.make_params(amplitude=2,center=-8,sigma=1))

pars['g1_sigma'].set(expr='g2_sigma')
pars['g2_sigma'].set(expr='g3_sigma')

mod=gauss_1+gauss_2+gauss_3

是否可以合并:

pars['g1_sigma'].set(expr='g2_sigma')
pars['g1_sigma'].set(expr='g3_sigma') 

写成一行?实际上,我有多个高斯峰 (~15),多次写出来会非常重复。

或者是否有更好的方法来约束所有高斯峰具有相同的 sigma?


解决方案


暂无回答



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/2046404/3c35fb49da1d202cff37/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)