首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高斯拟合不考虑峰值的负部分

高斯拟合不考虑峰值的负部分
EN

Stack Overflow用户
提问于 2021-06-02 19:17:32
回答 1查看 43关注 0票数 0

正如你们在下图中看到的,我在频谱上做了一个高斯拟合,其中一些在y轴的负值部分:

这就是我做拟合的方法:

代码语言:javascript
复制
def Gauss(velo_peak, a, mu0, sigma):
         res = a * np.exp(-(velo_peak - mu0)**2 / (2 * sigma**2))
         return res
mu0 = sum(velo_peak * spec_peak) / sum(spec_peak)
sigma = np.sqrt(sum(spec_peak * (velo_peak - mu0)**2) / sum(spec_peak))
peak = max(spec_peak) 
p0 = [peak, mu0, sigma]   
popt,pcov = curve_fit(Gauss, velo_peak, spec_peak, p0, maxfev=100000)

我的主要目标是找出频谱峰值的值,但这显然是对峰值的高估。是否有一些条件可以应用于高斯拟合函数?

EN

回答 1

Stack Overflow用户

发布于 2021-06-02 19:50:15

因为您可以定义任何您想要的函数,所以尝试向您的Gauss函数添加一个偏移量:

代码语言:javascript
复制
def Gauss(velo_peak, a, mu0, sigma, offs):
         res = a * np.exp(-(velo_peak - mu0)**2 / (2 * sigma**2)) + offs
         return res
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67804080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档