python如何拟合曲线,python拟合曲线误差分析

  python如何拟合曲线,python拟合曲线误差分析

  本文主要介绍使用scipy进行Python曲线拟合的相关信息。Scipy优化和拟合使用优化模块,该模块为函数最小值(标量或多维)、曲线拟合和寻找方程的根提供了有用的算法。有需要的可以参考一下。

  00-1010简介曲线拟合总结

  

目录

  曲线拟合的应用在生活中随处可见。不知道大家还记不记得物理实验中自由落体运动中下落高度与时间关系的研究。我们想探究初速度为0时下落高度与时间的关系。

  当时我们采用的方法是通过设置不同的下降时间来记录下降高度。在测量记录了几组数据后,我们利用二维坐标系将记录的点绘制到坐标系中,然后保证绘制的曲线到这些点的距离之和最小,最后的曲线就是H和t的关系。

  画出h和t的关系后,我就可以知道t初速度为0时下降高度h对应的值。此外,曲线拟合还有很多应用,如房价预测、经济预测、股票价格预测等。

  我不知道。你有没有想过,为什么我们可以通过测量值来画出T和H之间的曲线?这里面用的是什么逻辑?实际上,曲线拟合通常有两种解决方案:

  我们已经知道自变量(X)和因变量(Y)之间的关系,但是不知道参数。通过计算来自观测值的参数,我们可以计算自变量和因变量之间的关系。采用通用函数逼近器的神经网络对曲线进行拟合。通过定义代价函数,利用已有观测值的输入值计算预测值,进而计算预测值与观测值输出值的差距。为了通过反向传播计算神经网络的参数,我们主要讨论它。

  

导读

  曲线拟合也可以分为两种情况,第一种是无约束的曲线拟合,第二种是有约束的曲线拟合。Scipy提供curve_fit函数使用非线性最小二乘法拟合无约束曲线,提供最小二乘法函数拟合有约束曲线。

  无约束曲线拟合

  带约束的曲线拟合在求解曲线参数时,有时会对参数的边界做一些限制。下面是在限制参数的边界时如何解决问题。我们使用jac矩阵结合最小二乘法来计算曲线的参数。

  将numpy作为np导入

  来自scipy.optimize导入最小二乘法

  将matplotlib.pyplot作为plt导入

  def型号(x,u):

  定义拟合曲线。

  :param x:输入值参数

  :param u:输入值函数的参数

  :返回:返回值因变量

  return x[0]*(u * * 2 x[1]* u)/(u * * 2 x[2]* u x[3])

  定义fun(x,u,y):

  返回模型(x,u) - y

  定义jac(x,u,y):

  J=np.empty((u.size,x.size))

  den=u ** 2 x[2] * u x[3]

  num=u ** 2 x[1] * u

  J[:0]=数字/密度

  J[:1]=x[0] * u/den

  J[:2]=-x[0] * num * u/den ** 2

  J[:3]=-x[0] * num/den ** 2

  返回J

  #输入值参数

  u=np.array([4.0,2.0,1.0,5.0e-1,2.5e-1,1.67e-1,1.25e-1,1.0e-1,

  8.33e-2、7.14e-2、6.25e-2])

  #输入因变量的值

  y=np.array([1.957e-1,1.947e-1,1.735e-1,1.6e-1,8.44e-2,6.27e-2,

  4.56e-2,3.42e-2,3.23e-2,2.35e-2,2.46e-2])

  #函数的参数

  x0=np.array([2.5,3.9,4.15,3.9])

  #利用jac矩阵结合最小二乘法计算曲线的参数,并将参数值设置在(0,100)之间

  res=最小平方(fun,x0,jac=jac,bounds=(0,100),args=(u,y),verbose=1)

  #需要预期值输入值

  u_test=np.linspace(0,5)

  #使用计算的曲线参数计算预测值。

  y_test=model(res.x,u_test)

  plt.plot(u,y, o ,markersize=4,label=data )

  plt.plot(u_test,y_test,label=拟合模型)

  plt.xlabel(u )

  plt.ylabel(y )

  plt.legend(loc=右下角)

  plt.show()

  

曲线拟合

  关于Python用scipy进行曲线拟合的这篇文章到此为止。关于Pythonscipy曲线拟合的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

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

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