插值法的基本思想
基本思想: 给出函数 y = f ( x ) y=f(x) y=f(x)的一组观测点(函数表)
x x x | x 0 x_0 x0 | x 1 x_1 x1 | … \ldots … | x n x_n xn |
---|---|---|---|---|
y y y | y 0 y_0 y0 | y 1 y_1 y1 | … \ldots … | y n y_n yn |
去寻找一个解析形式的函数 ϕ ( x ) \phi(x) ϕ(x),它在各个插值节点处的函数值正好等于表中的函数值,而在其它点上的函数值近似于 f ( x ) f(x) f(x)。如果选取的函数是次数不超过 n n n的多项式,则称插值为代数插值。
插值法主要有:
- n次多项式插值;
- 分段线性插值
- Hermit插值
- 三次样条函数插值
- B样条函数插值
每种插值方法在MATLAB中都有相应的函数(包括自己编写的),下面先讨论n次多项式插值。
n次Lagrange插值
1. 基本思想
给出函数 f ( x ) f(x) f(x)的 n + 1 n+1 n+1组观测点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , … , ( x n , y n ) (x_0,y_0),(x_1,y_1),\ldots,(x_n,y_n) (x0,y0),(x1,y1),…,(xn,yn),令 φ ( x ) \varphi(x) φ(x)是次数不超过n的多项式
φ ( x ) = a 0 + a 1 x + a 2 x 2 + … + a n x n \varphi(x)=a_0+a_1x+a_2x^2+\ldots+a_nx^n φ(x)=a0+a1x+a2x2+…+anxn
并且有 φ ( x i ) = y i , i = 0 , 1 , … , n \varphi(x_i)=y_i,i=0,1,\ldots,n φ(xi)=yi,i=0,1,…,n。将各个节点代入多项式得到系数 ( a 0 , … , a n ) (a_0,\ldots,a_n) (a0,…,an)满足的线性方程组
{ a 0 + a 1 x 0 + … + a n x 0 n = y 0 a 0 + a 1 x 1 + … + a n x 1 n = y 1 … a 0 + a 1 x n + … + a n x n n = y n \left\{ \begin{array}{c} a_0+a_1x_0+\ldots+a_nx^n_0=y_0\\ a_0+a_1x_1+\ldots+a_nx^n_1=y_1\\ \ldots \\ a_0+a_1x_n+\ldots+a_nx^n_n=y_n \end{array} \right. ⎩⎪⎪⎨⎪⎪⎧a0+a1x0+…+anx0n=y0a0+a1x1+…+anx1n=y1…a0+a1xn+…+anxnn=yn
易知此线性方程组的系数矩阵为Vandermonde矩阵
A = ( 1 x 0 … x 0 n 1 x 1 … x 1 n ⋮ ⋮ ⋱ ⋮ 1 x n … x n n ) \mathbf{A} = \left( \begin{array}{cccc} 1 & x_0 & \ldots & x_0^n \\ 1 & x_1 & \ldots & x_1^n \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_n & \ldots & x_n^n \end{array} \right) A=⎝⎜⎜⎜⎛11⋮1x0x1⋮xn……⋱…x0nx1n⋮