宝贝们好呀~今天 YuKi 想聊聊数值分析里一个特别实用的话题——插值法 🧮✨
假设我们手上只有几个离散的测量点,比如 (x0,y0),(x1,y1),…,(xn,yn),却想知道这些点「中间」的函数值是多少。这时候插值法就派上用场啦——用一条光滑的简单函数,精准穿过每一个已知点。
拉格朗日插值:优雅的拼图#
拉格朗日(Lagrange)想了一个很聪明的办法:为每个数据点构造一个只在它那里是 1、其他点全是 0 的「开关函数」。把这些开关乘以对应 y 值再全部加起来,就得到插值多项式:
Pn(x)=k=0∑nyk⋅Lk(x)其中 Lk(x) 就是著名的拉格朗日基函数:
Lk(x)=j=0,j=k∏nxk−xjx−xj它的设计很漂亮:当 x=xk 时,每个因子都等于 xk−xjxk−xj=1,所以 Lk(xk)=1;当 x=xj(j=k) 时,分子会出现 xj−xj=0,所以 Lk(xj)=0。完美符合我们「只在自家点是 1」的需求!
拉格朗日插值的优点在于形式简洁、推导直观,编程也很方便。但它有个小毛病:每次新增一个数据点,所有基函数都要重新算一遍——就像一个娇气的蛋糕配方,多加一颗糖就得重新称所有材料 😅
牛顿插值:累积式的智慧#
牛顿提出了一种更灵活的形式——牛顿插值多项式:
Pn(x)=f[x0]+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯这里的 f[x0],f[x0,x1],f[x0,x1,x2],… 是差商,递推定义:
f[xi]=f(xi),f[xi,xj]=xj−xif[xj]−f[xi]f[xi,xj,xk]=xk−xif[xj,xk]−f[xi,xj]牛顿形式的最大好处是——新增数据点不用重头开始!只需要在尾巴上多算一项差商就好。你可以把它想象成一个乐高塔:每加一个新块,不用拆掉下面重搭,直接往上叠就行 🧱
龙格现象:多项式不是万能的#
不过宝贝们注意啦——节点越多、多项式次数越高,反而可能越糟糕!这就是著名的龙格现象(Runge’s Phenomenon):用高次多项式插值等距节点时,端点附近会出现剧烈的振荡,曲线「疯掉」了。
比如对函数 f(x)=1+25x21 在区间 [−1,1] 上用等距节点做高次插值,两端的误差能大到离谱——插值多项式在端点附近疯狂蹦迪 🎢
样条插值:分段治之#
既然高次多项式靠不住,那不如「分而治之」——把区间切成几段,每段用一个低次多项式插值,还要在接头处保证光滑(比如一阶导连续甚至二阶导连续)。这就是样条插值的核心思想。
最常用的是三次样条:每段是一个三次多项式,要求函数值连续、一阶导连续、二阶导连续,再配上合理的边界条件(自然边界:两端二阶导为 0;或夹持边界:指定两端一阶导)。解一个三对角线性方程组就能得到所有系数,既稳定又光滑~
样条的名字来源于绘图师用的弹性木条——固定在几个钉子上,木条自然弯曲的形状正好就是三次样条!数学和手艺在这里完美交汇 🎨
| 方法 | 优点 | 缺点 |
|---|
| 拉格朗日 | 形式优美,编程直观 | 加节点需重算全部 |
| 牛顿 | 可累加,差商表高效 | 高次仍有龙格现象 |
| 三次样条 | 光滑稳定,无龙格 | 需解方程组 |
在工程实践中,三次样条是图像缩放、曲线拟合、CAD 设计的首选。而理解拉格朗日和牛顿,是深入数值分析大门的必修课~
好啦~今天的数学小课堂就到这里!下次想听 YuKi 聊数值积分呢,还是矩阵分解呢?在评论区告诉窝呀 💕✨
参考资料:《数值分析》(Timothy Sauer, 第2版)第3章