当前位置 : 主页 > 编程语言 > python >

python – 如何实现线性插值?

来源:互联网 收集:自由互联 发布时间:2021-06-25
说我给出的数据如下: 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,但我仍然无
说我给出的数据如下:

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的间隔,你还需要决定会发生什么,要么是错误,要么你可以“向后”插值,假设斜率与第一个/最后一个间隔相同.

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

网友评论