1,插值的概念:
插值是一种在离散数据点的基础上,通过一定的数学方法构造出一个连续函数(或近似连续函数),从而对数据点之间的值进行估计的技术。
简单来说,假如我们有一些已知的数据点,比如在某个实验中,我们测量了不同时刻物体的温度,这些时刻是离散的。插值就是找到一种方式,去推测在这些测量时刻之间的温度大概是多少。
例如,我们已知函数 在
这些点上的值分别为
,插值就是要构造一个函数
,使得
,并且可以用
来估算在
和
之间的
对应的函数值。
2,插值的方式以及对应的用途:
2.1,线性插值算:
2.1.1:算法介绍:
线性插值是一种简单的插值方法。它假设在两个已知数据点之间,函数呈线性变化。给定两个数据点和
,线性插值的目的是估计在
和
之间的某个对应的值。
2.1.2:计算公式:
设要估计的满足
,则线性插值得到的值计算公式为:
这个公式的原理是先计算两点之间的变化率
,然后根据
与
的距离来计算
值相对于
的增量,最后得到估计的
值。
2.1.3:计算例子:
假设我们知道在温度时,某种物质的体积
立方厘米,在温度
时,体积
立方厘米。现在我们要估计温度
为时该物质的体积?
根据线性插值公式:
首先计算变化率
然后计算
所以估计温度为时该物质的体积为22.5立方厘米。
2.1.4,代码实现:
def linear_interpolation(x0, y0, x1, y1, x):
if x0 <= x <= x1:
slope = (y1 - y0) / (x1 - x0)
y = y0 + slope * (x - x0)
return y
else:
raise ValueError("x should be between x0 and x1")
# 示例用法
x0, y0 = 10, 20
x1, y1 = 20, 25
x = 15
print(linear_interpolation(x0, y0, x1, y1, x))
2.2,多项式插值-拉格朗日插值多项式:
2.2.1:算法介绍:
拉格朗日插值法是一种多项式插值方法。其核心思想是通过已知的个数据点
,构造一个次数不超过n的多项式
,使得这个多项式在给定的数据点处的函数值与已知数据点的y值