Python 高斯拟合不考虑峰值的负部分
正如你们在下图中看到的,我正在对光谱进行高斯拟合,其中一些光谱位于y轴的负部分: 我就是这样做的:Python 高斯拟合不考虑峰值的负部分,python,curve-fitting,gaussian,spectrum,Python,Curve Fitting,Gaussian,Spectrum,正如你们在下图中看到的,我正在对光谱进行高斯拟合,其中一些光谱位于y轴的负部分: 我就是这样做的: 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_p
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)
我的主要目标是找到光谱的峰值,但这显然是对峰值的高估。是否有一些条件可以应用于高斯拟合函数?由于您可以定义所需的任何函数,请尝试向您的
高斯
函数添加偏移:
def Gauss(velo_peak, a, mu0, sigma, offs):
res = a * np.exp(-(velo_peak - mu0)**2 / (2 * sigma**2)) + offs
return res