python拟合曲线并得出方程式,python拟合曲线误差分析

  python拟合曲线并得出方程式,python拟合曲线误差分析

  关于规模问题,我同意奥拉夫的意见。最佳参数相差几个数量级。但是,缩放用于生成玩具数据的参数似乎无法解决实际的应用问题。使用^{}^{}。在数值上近似于雅可比矩阵。数值问题是由尺度的差异引起的。 (请尝试在曲线拟合中使用全输出关键字。在

  根据我的经验,最好用^{}。不依赖于近似导数,只使用函数的值。你现在必须写下你自己最mldjc乘方函数。那个会被优化。在

  初始值依然很重要。在你的例子中,通过取a的最大振幅和与b和c对应的x的值可以充分推测。在

  在代码中,您将看到以下内容:来自scipy.optimizeimportcurve _ fit,fmin

  导入编号

  导入实验室

  #创建高斯函数

  定义高斯(x,a,b,c):

  val=a * numpy。exp(-(x-b)* 2/)2 * c * * 2))

  返回值

  #生成假货数据。

  zMinEntry=80.0*1E-06

  zMaxEntry=180.0*1E-06

  zStepEntry=0.2*1E-06

  x=numpy.arange(zminentry,

  四川峨眉山随行酒店条目,

  zStepEntry,

  dtype=numpy.float64)

  n=len(x)

  meany=zmin条目(zmax条目-zmin条目)/2

  sigmaY=10.0E-06

  a=1.0/(sigmay * numpy)。sqrt)2 * numpy。pi))

  y=高斯(x,a,meanY,sigmaY)a* 0.1 * numpy。随机的。normal(0,1,size=len(x ) x)))))

  打印一,卑鄙,西格玛伊

  # estimatestartingvaluesfromthedata

  a=y.max()

  b=x[numpy.argmax(a ) ]

  c=b

  # definealastsquaresfunctiontoooptimize

  EFminfunc(Params):

  returnsum((y-Gaussian ) x、params[0]、params[1]、params[2] ) * (2))))))

  #适合

  popt=fmin(minfunc,[a,b,c])

  #打印结果

  print(scale=%.3f ) % ) popt[0])

  print(offset=%.3f ) % ) popt[1])

  print(sigma=%.3f ) % ) popt[2])

  pylab.plot(x,y, ro )。

  pylab.plot(x,gaussian(x ) x,popt[0],popt[1],popt[2],lw=2))))))

  pylab.xlim(x.min)、x.max))

  pylab.grid(true))。

  pylab.show(

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: