数值计算之 插值法(3)多项式插值法的解,范德蒙矩阵,龙格现象
数值计算之 插值法(3)多项式插值法的解,范德蒙矩阵,龙格现象
数值计算之 插值法(3)多项式插值法的解,范德蒙矩阵,龙格现象
- 前言
- 多项式插值法的解与范德蒙矩阵
- 龙格现象
前言
上两篇分别是拉格朗日插值法和牛顿插值法。
拉格朗日插值的思想是将一个多项式拆分为多个多项式,每个多项式完成一个节点插值。
牛顿插值法的思想是一种递推法,当出现新的抽样点时,增量更新一次插值函数。
从形式上来看,两种插值法得到的多项式不同,牛顿插值因为使用增量更新,因此计算量相对较小。
多项式插值法的解与范德蒙矩阵
未知表达式的函数f(x)f(x)f(x)满足y0=f(x0),y1=f(x1),y2=f(x2),…,yn=f(xn)y_0=f(x_0),y_1=f(x_1),y_2=f(x_2),\dots,y_n=f(x_n)y0=f(x0),y1=f(x1),y2=f(x2),…,yn=f(xn),插值多项式的形式表示为:
P(x)=a0+a1x+a2x2+⋯+anxnP(x)=a_0+a_1x+a_2x^2+\dots+a_nx^n P(x)=a0+a1x+a2x2+⋯+anxn
如果直接使用方程组求解,则有以下方程组:
P(x0)=a0+a1x0+a2x02+⋯+anx0n=y0P(x1)=a0+a1x1+a2x12+⋯+anx1n=y1P(x2)=a0+a1x2+a2x22+⋯+anx2n=y2…P(xn)=a0+a1xn+a2xn2+⋯+anxnn=ynP(x_0)=a_0+a_1x_0+a_2x_0^2+\dots+a_nx_0^n=y_0 \\ P(x_1)=a_0+a_1x_1+a_2x_1^2+\dots+a_nx_1^n=y_1 \\ P(x_2)=a_0+a_1x_2+a_2x_2^2+\dots+a_nx_2^n=y_2 \\ \dots \\ P(x_n)=a_0+a_1x_n+a_2x_n^2+\dots+a_nx_n^n=y_n \\ P(x0)=a0+a1x0+a2x02+⋯+anx0n=y0P(x1)=a0+a1x1+a2x12+⋯+anx1n=y1P(x2)=a0+a1x2+a2x22+⋯+anx2n=y2…P(xn)=a0+a1xn+a2xn2+⋯+anxnn=yn
用矩阵方程表示:
Xα=γ[1x0x02…x0n1x1x12…x1n1x2x22…x2n……………1xnxn2…xnn][a0a1a2…an]=[y0y1y2…yn]X\alpha = \gamma \\ \quad \\ \begin{bmatrix} 1 & x_0 & x_0^2 & \dots & x_0^n \\ 1 & x_1 & x_1^2 & \dots & x_1^n \\ 1 & x_2 & x_2^2 & \dots & x_2^n \\ \dots & \dots & \dots & \dots & \dots \\ 1 & x_n & x_n^2 & \dots & x_n^n \\ \end{bmatrix}\begin{bmatrix} a_0 \\ a_1 \\ a_2 \\ \dots \\ a_n \\ \end{bmatrix} =\begin{bmatrix} y_0 \\ y_1 \\ y_2 \\ \dots \\ y_n \\ \end{bmatrix} Xα=γ⎣⎢⎢⎢⎢⎡111…1x0x1x2…xnx02x12x22…xn2……………x0nx1nx2n…xnn⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡a0a1a2…an⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡y0y1y2…yn⎦⎥⎥⎥⎥⎤
其中,矩阵XXX是范德蒙矩阵,其行列式∣X∣=∏0≤j<i≤n(xi−xj)|X|=\prod_{0\le j<i\le n}(x_i-x_j)∣X∣=∏0≤j<i≤n(xi−xj)。由于采样点横坐标都不相同,因此∣X∣≠0|X|\ne 0∣X∣=0,XXX可逆,则α\alphaα必然是有唯一解的。这说明,同阶多项式插值的解实际上是唯一的,拉格朗日插值和牛顿插值的结果只是形式表达上不相同。
龙格现象
在我们的直觉上,使用多项式插值法时,多项式阶数越高,插值效果越好。但是,当多项式的阶数较大时,可能会出现龙格现象,即在插值区间的边缘,插值结果与真实函数差值巨大。这个现象表明在使用多项式插值时,尽量避免使用阶数过高的多项式。
除了不使用高阶多项式插值外,也可以通过插值节点的选择来避免龙格现象。当均匀取节点时更有可能出现龙格现象,而选择切比雪夫或者高斯节点就可能避免龙格现象。