1056 字
5 分钟
数值分析入门:用简单函数「模仿」复杂函数的艺术

宝贝们好呀~今天 YuKi 想聊聊数值分析里一个特别实用的话题——插值法 🧮✨

假设我们手上只有几个离散的测量点,比如 (x0,y0),(x1,y1),,(xn,yn)(x_0, y_0), (x_1, y_1), \dots, (x_n, y_n),却想知道这些点「中间」的函数值是多少。这时候插值法就派上用场啦——用一条光滑的简单函数,精准穿过每一个已知点

拉格朗日插值:优雅的拼图#

拉格朗日(Lagrange)想了一个很聪明的办法:为每个数据点构造一个只在它那里是 11、其他点全是 00 的「开关函数」。把这些开关乘以对应 yy 值再全部加起来,就得到插值多项式:

Pn(x)=k=0nykLk(x)P_n(x) = \sum_{k=0}^{n} y_k \cdot L_k(x)

其中 Lk(x)L_k(x) 就是著名的拉格朗日基函数:

Lk(x)=j=0,jknxxjxkxjL_k(x) = \prod_{j=0, j \neq k}^{n} \frac{x - x_j}{x_k - x_j}

它的设计很漂亮:当 x=xkx = x_k 时,每个因子都等于 xkxjxkxj=1\frac{x_k - x_j}{x_k - x_j} = 1,所以 Lk(xk)=1L_k(x_k) = 1;当 x=xj(jk)x = x_j (j \neq k) 时,分子会出现 xjxj=0x_j - x_j = 0,所以 Lk(xj)=0L_k(x_j) = 0。完美符合我们「只在自家点是 1」的需求!

拉格朗日插值的优点在于形式简洁、推导直观,编程也很方便。但它有个小毛病:每次新增一个数据点,所有基函数都要重新算一遍——就像一个娇气的蛋糕配方,多加一颗糖就得重新称所有材料 😅

牛顿插值:累积式的智慧#

牛顿提出了一种更灵活的形式——牛顿插值多项式

Pn(x)=f[x0]+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+P_n(x) = f[x_0] + f[x_0, x_1](x - x_0) + f[x_0, x_1, x_2](x - x_0)(x - x_1) + \cdots

这里的 f[x0],f[x0,x1],f[x0,x1,x2],f[x_0], f[x_0, x_1], f[x_0, x_1, x_2], \dots差商,递推定义:

f[xi]=f(xi),f[xi,xj]=f[xj]f[xi]xjxif[x_i] = f(x_i), \quad f[x_i, x_j] = \frac{f[x_j] - f[x_i]}{x_j - x_i}f[xi,xj,xk]=f[xj,xk]f[xi,xj]xkxif[x_i, x_j, x_k] = \frac{f[x_j, x_k] - f[x_i, x_j]}{x_k - x_i}

牛顿形式的最大好处是——新增数据点不用重头开始!只需要在尾巴上多算一项差商就好。你可以把它想象成一个乐高塔:每加一个新块,不用拆掉下面重搭,直接往上叠就行 🧱

龙格现象:多项式不是万能的#

不过宝贝们注意啦——节点越多、多项式次数越高,反而可能越糟糕!这就是著名的龙格现象(Runge’s Phenomenon):用高次多项式插值等距节点时,端点附近会出现剧烈的振荡,曲线「疯掉」了。

比如对函数 f(x)=11+25x2f(x) = \frac{1}{1 + 25x^2} 在区间 [1,1][-1, 1] 上用等距节点做高次插值,两端的误差能大到离谱——插值多项式在端点附近疯狂蹦迪 🎢

样条插值:分段治之#

既然高次多项式靠不住,那不如「分而治之」——把区间切成几段,每段用一个低次多项式插值,还要在接头处保证光滑(比如一阶导连续甚至二阶导连续)。这就是样条插值的核心思想。

最常用的是三次样条:每段是一个三次多项式,要求函数值连续、一阶导连续、二阶导连续,再配上合理的边界条件(自然边界:两端二阶导为 00;或夹持边界:指定两端一阶导)。解一个三对角线性方程组就能得到所有系数,既稳定又光滑~

样条的名字来源于绘图师用的弹性木条——固定在几个钉子上,木条自然弯曲的形状正好就是三次样条!数学和手艺在这里完美交汇 🎨

小结#

方法优点缺点
拉格朗日形式优美,编程直观加节点需重算全部
牛顿可累加,差商表高效高次仍有龙格现象
三次样条光滑稳定,无龙格需解方程组

在工程实践中,三次样条是图像缩放、曲线拟合、CAD 设计的首选。而理解拉格朗日和牛顿,是深入数值分析大门的必修课~

好啦~今天的数学小课堂就到这里!下次想听 YuKi 聊数值积分呢,还是矩阵分解呢?在评论区告诉窝呀 💕✨

参考资料:《数值分析》(Timothy Sauer, 第2版)第3章

数值分析入门:用简单函数「模仿」复杂函数的艺术
https://fuwari.vercel.app/posts/2026-06-01-0735/
作者
YuKi ✨
发布于
2026-06-01
许可协议
CC BY-NC-SA 4.0