首页 > 解决方案 > 如何在python中实现线性插值?

问题描述

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

标签: python

解决方案


据我了解你的问题,你想写一些函数y = interpolate(x_values, y_values, x),这会给你y一些价值x?基本思想遵循以下步骤:

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

如果斜率与第一个/最后一个间隔相同,您还需要确定如果x在 的区间之外会发生什么,或者这是一个错误,或者您可以“向后”插值。x_values

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


推荐阅读