You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用双高斯函数拟合双峰值数据以获得理想拟合曲线

双高斯拟合问题
  • 蓝色曲线:原始数据
  • 绿色曲线:仅针对第二个峰值的高斯拟合曲线
  • 黄色曲线:双高斯组合拟合曲线

背景说明:

  • yraw:原始数据列表
  • xpixel:X轴数据,取值范围为500-1250

以下是实现的高斯拟合代码:

def Gauss(x, amp, mu, sigma): 
    return amp*np.exp(-((x-mu)/(np.sqrt(2)*sigma))**2)

def bimode(x, amp1, mu1, sigma1, amp2, mu2, sigma2):
    return Gauss(x, amp1, mu1, sigma1) + Gauss(x, amp2, mu2, sigma2)


ypg1 = np.asarray(yraw) # 将原始数据列表转为numpy数组

parameters, covarience = curve_fit(bimode, xpixel, ypg1, p0 = (78, 805, 15, 8, 950, 15)) # 对双高斯函数进行曲线拟合,传入初始参数猜测(振幅、均值、标准差)
# 返回的parameters依次为:amp1, mu1, sigma1, amp2, mu2, sigma2
print(parameters)

ygauss = bimode(xpixel, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5])

期望通过双高斯函数得到能够包裹两个峰值的理想拟合曲线,当前拟合结果如下:
拟合曲线示意图

内容的提问来源于stack exchange,提问作者rowan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:00:01