插值法比较
返回
Interpolation

插值法/样条插值比较

在同一图表中比较拉格朗日、牛顿、三次样条、PCHIP、线性插值。直观体验龙格现象。

数据点与设置
预设
数据点(最多10点)
x y
插值方法选择
查询 x 值

拉格朗日基函数

$$L(x)=\sum_{i=0}^n y_i \prod_{j\neq i}\frac{x-x_j}{x_i-x_j}$$

每个区间 $[x_i, x_{i+1}]$ 使用三次多项式 $S_i(x)$,连续条件:

$$S_i(x_{i+1})=S_{i+1}(x_{i+1}),\quad S_i'(x_{i+1})=S_{i+1}'(x_{i+1}),\quad S_i''(x_{i+1})=S_{i+1}''(x_{i+1})$$

自然边界:$S''(x_0)=S''(x_n)=0$

龙格现象:等间距节点高次多项式插值($n\geq7$左右)在区间端点附近产生大幅振荡。

计算结果
线性插值结果
拉格朗日插值结果
样条插值结果
条件数(概算)
Interp
插值结果(查询 x = 0.5

什么是插值法比较

🙋
“插值”是什么?就是把几个点连起来画线吗?
🎓
简单来说,插值就是根据已知的几个数据点,猜出中间其他点的值,并画出一条连续的曲线。但“怎么连”大有讲究。比如在汽车碰撞试验中,我们只能测量几个关键位置的冲击力,插值就是用来估算整个车体受力分布的工具。你可以在模拟器里输入几个点,试试看不同方法画出的曲线有多大的差别。
🙋
诶,真的吗?那为什么会有好几种方法?拉格朗日和样条有什么不同?
🎓
拉格朗日插值会用一个高次多项式穿过所有点,数学上很漂亮,但点一多就容易“发疯”——这就是龙格现象,曲线在两端剧烈振荡,完全不符合物理实际。而三次样条是把整个区间切成小段,每段用一个温和的三次多项式,然后在连接处“平滑地”拼接起来。你试着在模拟器里用等距点模拟函数 $f(x)=1/(1+25x^2)$,增加点数,就能亲眼看到拉格朗日插值是如何“失控”的。
🙋
原来是这样!那PCHIP又是什么?听起来和样条很像啊。
🎓
PCHIP也是分段插值,但它首要目标是保持数据的单调性。比如工程现场常见的材料拉伸试验数据,应力随应变单调增加,用三次样条可能会产生不合理的“过冲”或振荡,而PCHIP能保证曲线也是单调的,更符合物理事实。在模拟器里,你可以输入一组单调递增的数据点,然后比较自然三次样条和PCHIP的结果,PCHIP的曲线通常更“保守”和“忠实”。

物理模型与关键公式

拉格朗日插值多项式:构造一个唯一的n次多项式,使其精确通过所有n+1个数据点。其核心是构造一组“基函数”,每个基函数在对应的数据点处值为1,在其他点处为0。

$$L(x)=\sum_{i=0}^n y_i \prod_{j\neq i}\frac{x-x_j}{x_i-x_j}$$

其中,$n$是数据点个数减一,$(x_i, y_i)$是已知数据点。$L(x)$就是最终的多项式。当$n$较大(点较多)且节点等距时,计算出的多项式系数对误差极其敏感,导致龙格现象。

自然三次样条(C²连续):在每两个相邻数据点构成的小区间$[x_i, x_{i+1}]$上,使用一个三次多项式$S_i(x)$。要求所有相邻段在连接点处不仅函数值相等,一阶导数和二阶导数也连续,从而保证整体曲线的光滑性。“自然”边界条件指曲线两端的二阶导数为零。

$$S_i(x_{i+1})=S_{i+1}(x_{i+1}),\quad S_i'(x_{i+1})=S_{i+1}'(x_{i+1}),\quad S_i''(x_{i+1})=S_{i+1}''(x_{i+1})$$

这形成了一个三对角线性方程组,通过求解得到每个小区间上三次多项式的系数。它避免了高次多项式的剧烈振荡,是工程中常用的平滑插值方法。

现实世界中的应用

CAE材料试验数据处理:在有限元软件(如LS-DYNA)中定义材料模型时,需要输入应力-应变曲线。实验数据点有限,必须通过插值生成连续的曲线供求解器调用。对于这类通常单调的数据,PCHIP插值被广泛推荐,因为它能避免样条插值可能产生的非物理振荡。

计算机图形学与几何建模:NURBS(非均匀有理B样条)是B样条的有理扩展,是CAD软件中描述复杂曲线曲面的核心数学工具。其基础就是样条插值思想,通过控制点来光滑地插值或逼近形状,广泛应用于汽车、飞机的外形设计。

科学计算与数据可视化:在有限元分析后处理中,求解器只计算节点上的物理量(如位移、应力)。为了生成平滑的云图或沿任意路径提取数据,需要在节点之间进行插值。三次样条插值能提供视觉上光滑的过渡效果。

信号处理与路径规划:在机器人或数控机床的轨迹规划中,给定一系列路径点,需要生成一条平滑的连续运动轨迹。三次样条插值能保证位置、速度甚至加速度的连续性,使运动平稳无冲击,这是高次多项式插值难以实现的。

常见误解与注意事项

首先,“插值次数越高越好”是一个常见的误解。拉格朗日插值中提高次数会导致龙格现象就是典型例子,例如等间距取10个点时,两端插值曲线会严重偏离实际数据并产生剧烈震荡。这不仅影响视觉效果,甚至可能降低中间点的预测精度。在实际工程中,选择方法时应遵循的基本原则是:比起数据点的数量,更应关注“数据背后隐含的物理行为”。

其次,虽然“样条插值常被视为能平滑处理任何问题的万能工具”,但它也存在陷阱。其中之一是“单调性保持”问题。当用样条插值处理像材料塑性变形区这类单调递增数据时,可能会产生微小的下降段(过冲),导致物理上不合理的结果。您可以使用本工具设置(1,1)、(2,4)、(3,9)等单调递增点,对比样条插值与PCHIP的效果,就能明显看出PCHIP曲线能严格保持单调性。

此外,轻率地将“可在插值点外侧使用”的特性用于外推(预测)是危险的。插值函数的设计初衷是填补给定点之间的空白,在其外侧区域往往会发散为完全无意义的数值。在CAE中设置初始条件或边界条件时,尤其需要注意这一点。