如何在python中实现线性插值?

时间:2020-05-02 04:38:26

标签: python

我想实现一个函数interpolate(x,y,X_new),该函数在一个新点x_new上计算未知函数f的线性插值。样本以两个序列x和y的形式给出。这两个序列具有相同的长度,并且它们的元素是数字。 x序列包含已采样函数的点,y序列包含相应点的函数值。 (不使用import语句)。

1 个答案:

答案 0 :(得分:0)

据我所知,您想编写一些函数y = interpolate(x_values, y_values, x),它将为您提供y处的x值吗?然后,基本思路如下:

  1. x_values中查找值的索引,这些索引定义了包含x的间隔。例如,对于带有示例列表的x=3,包含间隔为[x1,x2]=[2.5,3.4],索引为i1=1i2=2
  2. 通过(y_values[i2]-y_values[i1])/(x_values[i2]-x_values[i1])(即dy/dx)计算该间隔的斜率。
  3. x的值现在是x1的值加上斜率乘以与x1的距离。

如果xx_values的间隔之外,您还需要决定会发生什么情况,这是一个错误,或者您可以向内插“向后”,假设斜率与第一个相同。 /最后间隔。

有此帮助吗?还是您需要更具体的建议?

相关问题