问题定义

给定离散的 $(n+1)$ 个点 $(x_0, f(x_0))$,$(x_1, f(x_1))$,…,$(x_n, f(x_n))$,求 $\forall \bar{x}\neq x_i(i=0,1,\cdots,n)$,$f(\bar{x})$ 的近似值。

即:找一个函数 $y(x)$ 去近似 $f(x)$。插值和逼近是两种具体的量化「近似」的方法。

多项式插值

找一个多项式 $y(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n$ 来近似任意函数 $f(x)$。

为了让插值尽量精确,我们让 $y(x)$ 经过所有的 $x_i$(插值节点)。这样就得到:

$$ \left\{\begin{aligned} a_0+a_1x_0+a_2x_0^2+\cdots+a_nx_0^n&=f(x_0)\\ a_0+a_1x_1+a_2x_1^2+\cdots+a_nx_1^n&=f(x_1)\\ &\vdots \\ a_0+a_1x_n+a_2x_n^2+\cdots+a_nx_n^n&=f(x_n)\\ \end{aligned}\right. $$

显然这个方程组的解是唯一的,即:多项式插值具有唯一性。Lagrange 插值、Newton 插值等只是得到这个方程组的解的不同方式,最终得到的结果是一样的。

Lagrange 插值

计算

$$ L(x)=\sum_{j=0}^nf(x_j)l_j(x) $$

其中

$$ \begin{aligned} l_j(x)&=\frac{(x-x_0)(x-x_1)\cdots(x-x_{j-1})(x-x_{j+1})\cdots(x-x_n)}{(x_j-x_0)(x_j-x_1)\cdots(x_j-x_{j-1})(x_j-x_{j+1})\cdots(x_j-x_n)} \\ &= \prod_{i=0, i\neq j}^n\frac{x-x_i}{x_j-x_i} \end{aligned} $$

事实上,$l_j(x)$ 的本质就是 $\left\{\begin{aligned} &0, x\neq x_j\\ &1, x=x_j \end{aligned}\right.$ 这样一个「开关」。

被插函数可以表示为 $f(x)=L(x)+E(x)$,其中 $E(x)$ 即为误差(又叫「插值余项」)。

误差 / 余项

$$ E(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}p_{n+1}(x), p_{n+1}(x)=(x-x_0)(x-x_1)\cdots(x-x_n) $$