4. 分段低次插值

当采样点数量较多、采样间隔不均匀,或者曲线存在局部突变时,直接使用高次多项式做全局插值往往会出现龙格振荡:端点附近剧烈摆动,中间反而偏离真实曲线。分段低次插值正是为规避这一问题而提出的思路——把整条曲线按采样点切成若干小区间,在每个区间内只用低次多项式(一次或二次)去拟合,从而把误差限制在局部,避免全局振荡扩散。本节围绕分段线性与分段二次两种最常用的形式,讲清它们的构造方式、误差量级,以及在实时曲线重建中各自适用的边界。

一、分段线性插值:构造与误差

设采样点为 \((x_0,y_0),(x_1,y_1),\dots,(x_n,y_n)\),且 \(x_0

L_i(x) = y_i + (y_{i+1} - y_i) / (x_{i+1} - x_i) * (x - x_i),  x ∈ [x_i, x_{i+1}]

整条插值曲线 \(L(x)\) 是连续的分段折线,在每个节点处连续,但一阶导数在节点处一般不连续,因此曲线在节点处会出现“折角”。这正是分段线性最直观的特征:它保证不振荡、不过冲,但光滑性差。

误差方面,若被插函数 \(f\) 在区间上二阶连续可导,则在子区间 \([x_i,x_{i+1}]\) 上有

|f(x) - L_i(x)| ≤ (h_i² / 8) * max|f''(x)|,  h_i = x_{i+1} - x_i

也就是说,分段线性的误差与区间长度 \(h_i\) 的平方成正比,与函数二阶导数(曲率)成正比。这个结论给出两个工程含义:其一,采样越密,误差按平方速度下降;其二,曲率越大的区段误差越大,因此对弯曲剧烈的区段应加密采样,而不是全局统一加密。

二、分段二次插值:构造与误差

分段二次插值在每个子区间上用二次多项式拟合。常见做法是取相邻三个节点 \((x_{i-1},y_{i-1}),(x_i,y_i),(x_{i+1},y_{i+1})\) 构造拉格朗日二次插值,再在中间区间 \([x_i,x_{i+1}]\) 上使用。其形式为

Q(x) = y_{i-1} * l_{i-1}(x) + y_i * l_i(x) + y_{i+1} * l_{i+1}(x)
l_k(x) = ∏_{j≠k} (x - x_j) / (x_k - x_j)

与分段线性相比,分段二次在节点处的一阶导数可以做到连续(若采用统一的二次样条构造),曲线更平滑,能更好地贴合具有明显曲率的区段。其误差估计为

|f(x) - Q(x)| ≤ (h³ / (9√3)) * max|f'''(x)|,  h 为区间长度量级

误差与 \(h\) 的三次方成正比,收敛阶高于分段线性。但代价是:二次插值需要至少三个节点才能构造,边界区间需要特殊处理(如改用线性或外推),且对噪声更敏感——三阶导数大的区段(即数据抖动剧烈处)反而可能放大误差。

工程判断:分段线性是“保形优先”,分段二次是“光滑优先”。当曲线重建的目标是忠实反映采样点、不允许过冲时,优先分段线性;当目标是得到视觉平滑、可求导的曲线且数据质量较好时,可考虑分段二次。

三、实时曲线重建中的适用边界

实时曲线重建的典型场景是:传感器以固定或近似固定周期上报数据,前端或嵌入式端需要在每个新采样点到达后尽快刷新曲线。此时插值算法的选择不仅看精度,还要看计算量、内存占用与增量更新能力。

分段线性在实时场景中优势明显:每个新区间只需一次除法与一次乘法,计算量恒定;新点到达时只需追加一段折线,无需重算历史区间,天然支持流式增量更新;且不会因个别异常点导致整条曲线抖动。其适用边界是:采样率足够高(使 \(h\) 较小)、曲线曲率不大、或对光滑性要求不高的监控类曲线,如温度、压力、液位等缓变信号的实时显示。

分段二次适用于:采样点较稀疏但曲线有明显弯曲、需要平滑显示或后续求导分析的场景,例如电机转速曲线、流量变化曲线的离线回放或准实时重建。其边界在于:需要缓存前后各一个节点,增量更新时要重算当前区间;对噪声敏感,若原始数据含高频抖动,二次插值可能产生虚假的局部极值,此时应先做滤波再插值,或退回分段线性。

分段线性 vs 分段二次:构造、光滑性与误差量级 分段线性插值 x y 折角:一阶导不连续 误差 ∝ h² · max|f''| 保形、无过冲、增量更新 O(1) 分段二次插值 x y 节点处一阶导连续,曲线平滑 误差 ∝ h³ · max|f'''| 需三节点、对噪声敏感、边界需特殊处理

四、选型决策与实现要点

在实际工程中,可以按以下顺序判断:先看数据质量——若原始采样含明显噪声或异常点,分段线性更稳健,因为折线不会把单点误差扩散到相邻区间;再看光滑性需求——若下游需要求导、做速度/加速度分析,分段二次或更高阶样条更合适;最后看实时性约束——若必须在每个采样周期内完成刷新且资源受限,分段线性的 O(1) 增量更新几乎是最优解。

实现分段线性时,注意维护一个“上一个节点”的缓存,新点到达后直接用两点构造直线段并追加到路径末尾,避免每次重绘整条曲线。实现分段二次时,需要缓存最近三个节点,新点到达后重算当前区间,并注意首尾区间的降阶处理:第一个区间没有左邻点,可退化为线性;最后一个区间没有右邻点,同样退化为线性或采用外推,但外推段应明确标记为不可靠区域。

常见误区:认为分段二次一定比分段线性“更准”。实际上,当采样间隔较大且曲线曲率变化剧烈时,二次插值可能在三节点之间产生超出采样点范围的过冲,反而比折线更偏离真实值。精度比较必须在相同采样密度、相同数据质量下进行,不能只看收敛阶。

综上,分段线性与分段二次并非简单的“低阶与高阶”替代关系,而是分别对应“保形稳健”与“光滑贴合”两类工程诉求。理解误差与区间长度、导数阶次的关系,结合实时更新方式与数据质量做取舍,才能在曲线重建中选到真正合适的插值形式。