需要帮助Python将Gaussian拟合到y=0时不沿xaxis的数据吗

2024-10-01 09:15:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经找了相当多的资料,还没有找到一个明确的解决我的问题的办法。我现在可以将高斯拟合到沿x轴的任何数据,这是您在查看高斯拟合教程时看到的典型数据集。现在我有数据,是提高了一定数量以上的x轴,所以我不能让我的高斯拟合击中x轴。我的解决方案是定义一个高斯函数,外加一个+y0常数。我只是不知道该怎么写!目前我有以下几点。你知道吗

n = len(xcut)                            
mean = center                           
sigma = sum(ycut*(xcut-mean)**2)/n        

def gaus(x,a,x0,sigma):
     return a*exp(-(x-x0)**2/(2*sigma**2))

popt,pcov = curve_fit(gaus,xcut,ycut,p0=[45,mean,sigma])

Gauss Fit

我想做的是这样的功能是:

def gaus(x,a,x0,sigma,y0):
     return y0+a*exp(-(x-x0)**2/(2*sigma**2))

但在这之后,我该如何改变参数猜测之类的呢?类似于振幅,我会在p0中输入我的猜测吗?你知道吗

编辑:我可以设置我的y0到一个常数值,我可以猜测和适合工程非常好。但这需要我对每个数据集每次都给出一个很好的猜测。这是一个工作,但痛苦!你知道吗

任何帮助都会很好谢谢!你知道吗


Tags: 数据returndef教程meansigma典型资料
2条回答

p0是参数的初始猜测向量。所以只要再加上一个数字。你知道吗

popt,pcov = curve_fit(gaus,xcut,ycut,p0=[45,mean,sigma,initial_y0_guess]

关于您对新y0参数的初始猜测的问题编辑,最小x值应该有效。尝试通过min(x)。你知道吗

相关问题 更多 >