为了账号安全,请及时绑定邮箱和手机立即绑定

考虑不确定性的高斯拟合

考虑不确定性的高斯拟合

慕婉清6462132 2021-08-05 17:59:08
我无法理解以下代码有什么问题:import numpy as npimport matplotlib.pyplot as pltfrom scipy.odr import *def gauss(p,x):    return p[0]*np.exp(-(x-p[1])**2/(2*p[2]**2)+p[4]) + p[3]# Create a model for fitting.gg = Model(gauss)x = np.arange(0, 350)# Create a RealData object using our initiated data from above.data = RealData(x, y_data, sx=0, sy=y_data_err)# Set up ODR with the model and data.odr = ODR(data, gg, beta0=[0.1, 1., 1.0, 1.0, 1.0])# Run the regression.out = odr.run()# Use the in-built pprint method to give us results.out.pprint()x_fit = np.linspace(x[0], x[-1], 1000)y_fit = gauss(out.beta, x_fit)plt.figure()plt.errorbar(x, xy_data xerr=0, yerr=y_data_err, linestyle='None', marker='x')plt.plot(x_fit, y_fit)plt.show()这是从这里直接复制的,只更改了模型。我得到的错误是scipy.odr.odrpack.odr_error: number of observations do not match但据我所知beta0有五个参数,这gauss与工作需要一样多。如果有人能指出错误来源或我的误解,那就太好了。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信