如何解决如何在python中估计双高斯拟合的参数
我正在尝试使用 Python 中的 scipy 和最小二乘法学习高斯拟合。
我还有一个问题与此问题的答案有关 How to fit a double Gaussian distribution in Python?,
从答案的代码中,我如何估计参数c1,mu1,sigma1,c2,mu2,sigma2
在
params = [c1,sigma2]
,因为我想使用 leastsq
?
解决方法
希望这个答案不会太晚.. 有一种简单的方法可以实际估计这些参数。
这就是我在自己的代码中对光谱进行高斯拟合的方法:
#Détermination des paramètres initiaux
mu0,m = xdata[roiDeb],ydata[roiDeb]
for j in range(roiDeb+1,roiFin+1) :
if ydata[j] > m:
mu0 = xdata[j]
m = ydata[j]
h0 = m
fwhmd,fwhmf,sigma0 = ydata[roiDeb],ydata[roiFin+1],0
for j in range(roiDeb,mu0+1) :
if ydata[j] > h0/2 :
fwhmd = j
break
for j in range(mu0,roiFin+1) :
if ydata[j] < h0/2 :
fwhmf = j
break
sigma0 = (fwhmf-fwhmd)/2.355
要确定质心,您只需执行 if 条件并检查您感兴趣区域中的较高 y 值。
然后您可以计算两侧的半高宽 (FWHM)。
完成公式:sigma = FWHM / 2.355 可以简单演示(或者可以在网上找到)
我让你自己发现如何使用这些值进行高斯拟合...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。