样条方法
概述
样条方法(Spline methods)用分段低次多项式逐段拼接来逼近函数,是对龙格现象的直接回应。与整体高次多项式不同,每段只需低次多项式(通常三次),在拼接点保持连续性和光滑性($C^2$ 连续),从而规避了全局多项式在端点附近振荡失控的问题。样条方法由 Isaac Schoenberg 在 1946 年系统发展,是 20 世纪数值分析最重要的发展之一,也是计算机辅助设计(CAD)和计算机图形学的基础。
关键内容
核心思想:分段代替整体
整体高次多项式(龙格的问题):$n+1$ 个节点 → $n$ 次全局多项式 → 端点振荡失控。
样条:将区间 $[a,b]$ 划分为子区间,在每段用低次多项式,在分割点(节点)处施加光滑性约束。
三次样条(Cubic Spline)
最常用形式。在每个子区间 $[x_i, x_{i+1}]$ 上用三次多项式,整体满足 $C^2$ 连续(函数值、一阶导、二阶导处处连续)。
自由度计算:$n$ 段,每段 4 个系数 = $4n$ 个自由度;$C^2$ 连续条件 = $3(n-1)$ 个约束;插值条件 = $n+1$ 个;还需 2 个边界条件(自然样条:端点二阶导为零;夹紧样条:端点一阶导给定)。
数值稳定性:三次样条系数由三对角线性方程组确定,条件数良好,远优于高次全局插值。
B 样条(B-Spline)
B 样条(Basis Spline)是样条的更灵活表示,以"基函数 + 控制点"形式表达。
- 局部支撑性(Local support):每个基函数只影响有限个子区间,改变一个控制点只影响局部形状
- 数值稳定性极好(非负基函数,单位分解)
- 推广至 NURBS(非均匀有理 B 样条),是 CAD/CAM/CAE 的标准曲线/曲面表示
样条 vs 切比雪夫节点:两条解决路线
| 方案 | 核心思想 | 优势 | 局限 |
|---|---|---|---|
| 切比雪夫节点 | 优化全局多项式的节点分布 | 高阶精度,近似最优 | 要求光滑函数,端点固定 |
| 样条方法 | 分段低次,分而治之 | 不要求高光滑性,局部修改 | 精度受限于分段次数 |
两者在现代实践中各有用途:谱方法用切比雪夫,CAD/工程插值用样条。
历史发展
| 年份 | 贡献 |
|---|---|
| 1946 | Isaac Schoenberg 系统建立样条函数理论(受龙格现象启发) |
| 1962 | J. C. Ferguson 将三次样条用于 Boeing 飞机曲面设计 |
| 1972 | Gordon & Riesenfeld 将 B 样条推广为 B 样条曲面 |
| 1975 | Versprille 博士论文提出 NURBS,CAD 工业标准基础 |
应用
- CAD/CAM:NURBS 是曲线/曲面的工业标准
- 计算机图形学:贝塞尔曲线(Bézier curve)是 B 样条的特例
- 有限元方法:等几何分析(IGA)将 B 样条/NURBS 作为有限元形函数
- 数据拟合:避免龙格现象的鲁棒插值工具
- 图像处理:双三次样条插值(双线性插值的光滑升级)
来源
- raw/books/数值分析/09_runge_phenomenon.md