说我给出的数据如下: 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的间隔,你还需要决定会发生什么,要么是错误,要么你可以“向后”插值,假设斜率与第一个/最后一个间隔相同.
这有帮助,还是需要更具体的建议?