python二维数组插值,python 插值法

  python二维数组插值,python 插值法

  插值主要用在物理和数学中。逼近某个值的方法就是通过已知的离散数据求未知数据的方法。本文将利用Python实现一维插值方法,可供参考。

  00-1010情况1:线性插值情况2:情况应用插值主要用于物理和数学中逼近某一值。

  (1)插值是通过已知的离散数据寻找未知数据的方法。

  (2)与拟合不同,插值要求曲线通过所有已知数据。插值是逼近离散函数的一种重要方法。利用它,我们可以通过函数在有限点的值来估计函数在其他点的近似值。

  (3)如果自变量x(离散值)对应的函数f(x)已知,则求解一个适当的特定函数p(x)使得p(x)在x处的函数值等于f(x)在x处的已知值,因此,p(x)用于估计这些x值之间f(x)的个数对应的函数值。

  Scipy.interpolate.interp1d()一维插值法

  参数

  # - #

  键入x或list,已知点的x坐标。

  键入y或list,已知点的y坐标。

  种类差异的类型。零,最近步长插值,0阶B样条曲线

  Slinear,线性默认线性插值,用直线、一阶B样条曲线连接所有采样点

  二次、三次二阶、三阶曲线采样,更高阶的曲线可以直接用整数值确定。

  Axis指定沿y轴的插值,默认插值是沿y轴的最后一个轴。

  # - #

  

目录

  x是[0,1,2,9],而坐标Y的计算公式为:插值方法是找到能完美通过已知10个点的函数表达式F,得到表达式后再输入一个新的X坐标点,就可以得到对应的新的Y坐标点。

  将numpy作为np导入

  将matplotlib.pyplot作为plt导入

  从scipy.interpolate导入interp1d

  #创建已知点的(x,y)坐标

  x=np.arange(0,10)

  y=np.exp(-x/3.0)

  #绘制离散点

  # plt.plot(x,y, o )

  #插值法就是寻找一个完全通过这些点的函数,从而预测其他相关信息。

  #创建一个插值函数,传递已知点的坐标,并使用线性插值

  F=interp1d (x,y,kind= linear ,axis=-1) #创建的结果是一个函数表达式

  #传入新点的X坐标,预测Y坐标。

  x_new=np.arange(0,9,0.2)

  #生成预测点数

  y_new=f(x_new)

  #比较旧点和新点的坐标

  plt.plot(x,y, o ,x_new,y_new, * )

  plt.show()

  可以看出插值后的新坐标点可以通过旧坐标点。

  

案例一:线性插值

  问:

  在一个实验中,从1到12的11个小时内,每隔一个小时测量一次温度,测量的温度依次为5、8、9、15、25、29、31、30、22、25、27、24。尝试每1/10小时估算一次温度值。

  答:

  根据12小时的测量结果,通过插值计算每0.1小时的测量结果。如上,找一个能完美通过这12个坐标点的函数,用这个函数预测新的坐标。

  使用以下两种差分类型:线性插值和二次曲线插值。线性插值用直线段连接每两个坐标点,二次曲线插值用二次曲线连接每两个坐标点。

  将numpy作为np导入

  将matplotlib.pyplot作为plt导入

  从scipy.interpolate导入interp1d

  # x是时间序列,y是每个小时的测量温度。

  x=np.arange(1,13)

  y=[5,8,9,15,25,29,31,30,22,25,27,24]

  # Interpolation使用二阶插值得到包含所有坐标点的函数表达式。

  f1=interp1d(x,y,kind=quadratic ,axis=-1)

  #使用线性插值

  f2=interp1d(x,y,kind=linear ,axis=-1)

  #生成新的时间序列点

  x_new=np.arange(1,12,0.1)

  #二阶插值计算每个时间点对应的新测量结果。

  y_new1=f1(x_new)

  #测量结果的二阶插值计算

  y_new2=f2(x_new)

  #比较两种插值方法的坐标

  plt.figure(figsize=(10,5))

  plt.subplot(121)

  plt.title(二次)

  plt.plot(x,y, o ,x_new,y_new1, * )

  plt.subplot(122)

  plt.title(线性)

  plt.plot(x,y, o ,x_new,y_new2, * )

  plt.show()

  可以看出,二阶插值法比线性插值法更平滑,满足设计要求。

  以上是Python的一维插值方法的样例代码的详细内容。关于Python一维插值方法的更多信息,请关注盛行的IT软件开发工作室的其他相关文章。

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

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