【发布时间】:2022-11-11 11:05:36
【问题描述】:
我在拟合这些数据时遇到了很多麻烦,尤其是让拟合参数与预期参数相匹配。
from scipy.optimize import curve_fit
import numpy as np
def gaussian_model(x, a, b, c, d): # add constant d
return a*np.exp(-(x-b)**2/(2*c**2))+d
x = np.linspace(0, 20, 100)
mu, cov = curve_fit(gaussian_model, xdata, ydata)
fit_A = mu[0]
fit_B = mu[1]
fit_C = mu[2]
fit_D = mu[3]
fit_y = gaussian_model(xdata, fit_A, fit_B, fit_C, fit_D)
print(mu)
plt.plot(x, fit_y)
plt.scatter(xdata, ydata)
plt.show()
当我打印参数时,我得到的值为 -17 的振幅,2.6 的平均值,-2.5 的标准偏差和 110 的基数。这与我对散点图的期望相去甚远。任何想法为什么?
另外,我对编码很陌生,所以任何建议都是有帮助的!感谢大家 :)
编辑:弄清楚出了什么问题!只需要添加一些猜测。
【问题讨论】:
-
恭喜您解决了问题。现在您已经找到了自己的解决方案,可以为自己的帖子写一个答案并将其标记为正确,以防其他人有同样的问题,因此这个问题被标记为已解决,而不是用答案编辑问题。谢谢
标签: python curve-fitting gaussian