Lagrange插值
在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。
定义:

称 为关于节点
的
n次Lagrange插值基函数, 为n次Lagrange插值多项式。
其基函数为

将基函数代入即可求得n次Lagrange插值多项式,从而计算出对应节点的插值结果。
Lagrange插值结构对称美观,可以利用离散数据获取插值函数,易于在计算机上实现。
Lagrange插值余项(研究插值多项式的近似程度):

其中 且与x有关。
优缺点分析:
优点:结构紧凑,便于编程计算
缺点:实际计算过程中,若需要增加节点,构造高次多项式时,必须全部重新计算,没有承袭性
代码实现:
# Lagrange插值法
import numpy as np
def lagrange_interpolation(x, y, x_new):
"""
Lagrange 线性插值
输入:
x - 已知的 x 坐标序列
y - 已知的 y 坐标序列
x_new - 需要计算插值的 x 坐标序列
输出:
y_new - 插值计算得到的 y 坐标序列
"""
n = len(x)
y_new = []
for xn in x_new:
# 计算每个插值点的 Lagrange 基函数
L = [np.prod((xn - x[j]) / (x[i] - x[j])) for i in range(n) for j in range(n) if i != j]
# 计算插值点的 y 坐标
y_n = sum([y[i] * L[i] for i in range(n)])
y_new.append(y_n)
return y_new
# 示例使用
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
x_new = [1.5, 2.7, 3.8, 4.2]
y_new = lagrange_interpolation(x, y, x_new)
print("插值后的 y 坐标序列:", y_new)
Last updated