好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

说我给出的数据如下:

x = [1, 2.5, 3.4, 5.8, 6]
y = [2, 4, 5.8, 4.3, 4]

我想设计一个函数,它将使用Python在1和2.5之间,2.5到3.4之间线性插值,依此类推.

我已经尝试过查看this Python tutorial,但我仍然无法理解它.

正如我理解你的问题,你想写一些函数y = interpolate(x_values,y_values,x),它会给你一些x的y值?然后基本思路遵循以下步骤:

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

如果x超出x_values的间隔,你还需要决定会发生什么,要么是错误,要么你可以“向后”插值,假设斜率与第一个/最后一个间隔相同.

这有帮助,还是需要更具体的建议?

查看更多关于在Python中如何实现线性插值?的详细内容...

  阅读:21次