加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何实现线性插值?

发布时间:2020-12-20 10:34:59 所属栏目:Python 来源:网络整理
导读:说我给出的数据如下: x = [1,2.5,3.4,5.8,6]y = [2,4,4.3,4] 我想设计一个函数,它将使用Python在1和2.5之间,2.5到3.4之间线性插值,依此类推. 我已经尝试过查看this Python tutorial,但我仍然无法理解它. 解决方法 正如我理解你的问题,你想写一些函数y = int
说我给出的数据如下:

x = [1,2.5,3.4,5.8,6]
y = [2,4,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的间隔,你还需要决定会发生什么,要么是错误,要么你可以“向后”插值,假设斜率与第一个/最后一个间隔相同.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读