我已经找了相当多的资料,还没有找到一个明确的解决我的问题的办法。我现在可以将高斯拟合到沿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])
我想做的是这样的功能是:
def gaus(x,a,x0,sigma,y0):
return y0+a*exp(-(x-x0)**2/(2*sigma**2))
但在这之后,我该如何改变参数猜测之类的呢?类似于振幅,我会在p0中输入我的猜测吗?你知道吗
编辑:我可以设置我的y0到一个常数值,我可以猜测和适合工程非常好。但这需要我对每个数据集每次都给出一个很好的猜测。这是一个工作,但痛苦!你知道吗
任何帮助都会很好谢谢!你知道吗
p0是参数的初始猜测向量。所以只要再加上一个数字。你知道吗
popt,pcov = curve_fit(gaus,xcut,ycut,p0=[45,mean,sigma,initial_y0_guess]
关于您对新y0参数的初始猜测的问题编辑,最小x值应该有效。尝试通过min(x)。你知道吗
相关问题 更多 >
编程相关推荐