python插值方法,python 插值函数库

  python插值方法,python 插值函数库

  大家好,本文主要讲用Python实现插值算法。有兴趣的同学过来看看,如果对你有帮助记得收藏。

  在数学模型竞赛中,往往需要对数据进行处理和分析,但有时数据并不多,需要用一些方法“模拟”出一些可靠的数值来满足需求,这就是插值的作用。本文不再详细介绍各种插值算法的内部原理,直接通过分组交换实现。

  现在,我们穿上三件套,看看原始数据的大致情况:

  将numpy作为np导入

  进口熊猫作为pd

  将matplotlib.pyplot作为plt导入

  data=pd.read_excel(data.xlsx )

  拉格朗日插值算法

  原始数据我们采取sin(x)的形式。看一看原始数据点:

  导入副本

  从scipy.interpolate导入拉格朗日

  X=np.linspace(0,10,6) #0~10等差插入11个数,要预测的值。

  y=np.sin(x)

  X_new=np.linspace(0,10,200) #用于绘制图形。

  y_new=np.sin(x_new)

  plt.plot(x,y, ro )

  plt.plot(x_new,y_new, b )

  f1=拉格朗日(x,y)

  plt.plot(x,y, ro )

  plt.plot(x_new,y_new, b )

  plt.plot(x_new,f1(x_new), g )

  看一下试衣效果:

  分段线性插值

  F4=scipy . interpolate . interp1d(x,y,kind=linear )

  plt.plot(x,y, ro )

  plt.plot(x_new,y_new, b )

  plt.plot(x_new,f4(x_new), g )

  分段二次(三次)插值

  F5=scipy . interpolate . interp1d(x,y,kind= quadratic) #三次是立方。

  plt.plot(x,y, ro )

  plt.plot(x_new,y_new, b )

  plt.plot(x_new,f5(x_new), g )

  牛顿插值法:暂未找到相应的库

  分段三次埃尔米特插值

  F5=scipy . interpolate . interp1d(x,y,kind= quadratic) #三次是立方。

  plt.plot(x,y, ro )

  plt.plot(x_new,y_new, b )

  plt.plot(x_new,f5(x_new), g )

  三次样条插值

  F3=scipy . interpolate . cubic spline(x,y)

  plt.plot(x,y, ro )

  plt.plot(x_new,y_new, b )

  plt.plot(x_new,f3(x_new), g )

  接下来,我们来看一个具体例子的对比:

  y=np.array(data)[:1]

  x=np.linspace(2009,2018,10)

  x_new=np.array([2019,2020,2021])

  F2=scipy . interpolate . pchipinterpolator(x,y)

  F3=scipy . interpolate . cubic spline(x,y)

  #编码:utf-8

  PLT . RC params[ font . sans-serif ]=[ sim hei ]#用于正常显示中文标签。

  PLT . RC params[ axes . unicode _ MINUS ]=false #用于正常显示负号。

  Plt.plot (x,y,color=黑色,marker= o ,label=样本点)

  Plt。Plot (x _ new,F2 (x _ new), b-,marker= x ,label= segmented emilt three times )

  Plt.plot (x _ new,F3 (x _ new), r-,marker= x ,label=三次样条插值)

  PLT。X刻度(范围(2009,2022,1)) #调整X轴间距

  plt .图例()

  plt.show()

  温馨提示:最常用的方法是Hermite三次插值和三次样条插值。

  拉格朗日插值虽然在训练集中表现不错,但是在测试集中确实很尴尬,尤其是拟合高阶函数的时候,不要轻易用这个预测。

  这就是这篇关于用Python实现插值算法的文章。关于Python插值算法的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

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

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