插值简述
①代数插值(Algebraic interpolation)
代数插值即多项式插值,所求插值函数为:
\[p_n(x)=a_0+a_1x+a_2x^2+.......+a_nx^n
\]
显然,用待定系数法即可推出\(\text{n+1}\)项
②泰勒差值(Taylor interpolation)
泰勒展开式:
\[p_n(x)≈f(x_0)+f'(x_0)(x-x_0)+ \frac{f''(x_0)}{2!}(x-x_0)^2+......+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n
\]
余项为:
\[R(n)=\frac{f^{(n+1)}( \epsilon )}{(n+1)!}(x-x_0)^{n+1}
\]
显然,泰勒插值即为\(\text{0-k}\)阶的导数
但是并非所有多项式均可\(n\)阶可导,局限性很大
③拉格朗日差值(Lagrange interpolation )
\(\text{Q:}\)找出一个\(\text{n}\)次多项式\(p_n(x)\),使得\(p_n(x_i)=y_i(i=1,2,...,n)\)
基函数
先从二阶多项式研究。
已知\(x_0,x_1,y_0,y_1\),求\(p_n(x)=a_0+a_1x\),使得\(p_n(x)\)过这两个点
显然可求得:
\[p_n(x)=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0)=\frac{x-x_1}{x_0-x_1}y_0+\frac{x-x_0}{x_1-x_0}y_1
\]
\(\frac{x-x_1}{x_0-x_1}\)和\(\frac{x-x_0}{x_1-x_0}\)即为\(\text{p(x)}\)的两个基函数
推广至\(n\)阶
\(p_n(x)\)均可化简为以下形式:
\[p_n(x)=l_0(x)y_0+l_1(x)y_1+......+l_n(x)y_n
\]
要使得\(p_n(x_0)=y_0\)
则:
\[l_0(x_0)=1,l_1(x_i)=0(2\leq i \leq n)
\]
故可得基函数表:
| \(x\) | \(x_0\) | \(x_1\) | \(...\) | \(x_n\) |
|---|---|---|---|---|
| \(l_0(x)\) | 1 | 0 | \(...\) | 0 |
| \(l_1(x)\) | 0 | 1 | \(...\) | 0 |
| \(M\) | \(M\) | \(M\) | \(M\) | \(M\) |
| \(l_n(x)\) | 0 | 0 | \(...\) | 1 |
从而,基函数一般形式为:
\[l_0(x)=\frac{(x-x_1)(x-x_2)...(x-x_n)}{(x_0-x_1)(x_0-x_2)...(x_0-x_n)}=\prod_{1\leq j \leq n}\frac{x-x_j}{x_0-x_j}
\]
\[l_1(x)=\frac{(x-x_0)(x-x_2)...(x-x_n)}{(x_1-x_0)(x_1-x_2)...(x_1-x_n)}=\prod_{0\leq j \leq n ,j≠1}\frac{x-x_j}{x_1-x_j}
\]
...
\[l_n(x)=\frac{(x-x_1)(x-x_2)...(x-x_{n-1})}{(x_n-x_0)(x_n-x_2)...(x_n-x_{n-1})}=\prod_{1\leq j \leq {n-1}}\frac{x-x_j}{x_n-x_j}
\]
即:
\[l_k(x)=\prod_{j=0,j≠k}^{n}\frac{x-x_j}{x_k-x_j}
\]
\[p_n(x)=\sum_{k=0}^{n}l_k(x)y_k
\]
余项为:
\[R_n(x)=\frac{f^{(n+1)}( \epsilon )}{(n+1)!}\prod_{i=0}^{n}(x-x_i)
\]
code:
function y=lagr1(x0,y0,x)
n=length(x0); m=length(x);
for i=1:m
z=x(i);
s=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
end

浙公网安备 33010602011771号