# 插值多项式的存在唯一性

n+1n + 1 个互异点的插值节点 x0,x1,...,xnx_0,x_1,...,x_n 上,满足条件式 pn(xi)=yi,i=0,1,2,...,np_n(x_i)=y_i,i=0,1,2,...,n 的次数不高于 nn 的代数多项式 pn(x)=a0+a1x+a2x2+...+anxnp_n(x)=a_0+a_1x+a_2x^2+...+a_nx^n 存在且唯一

证明

{pn(x0)=a0+a1x0+a2x02+...+anx0n=y0pn(x1)=a0+a1x1+a2x12+...+anx1n=y1...pn(xn)=an+a1xn+a2xn2+...+anxnn=yn\left\{\begin{matrix} p_n(x_0)=a_0+a_1x_0+a_2x_0^2+...+a_nx_0^n = y_0\\ p_n(x_1)=a_0+a_1x_1+a_2x_1^2+...+a_nx_1^n = y_1 \\ ...\\ p_n(x_n)=a_n+a_1x_n+a_2x_n^2+...+a_nx_n^n = y_n \end{matrix}\right.

这是一个关于未知数 a0,a1,...,ana_0,a_1,...,a_n 的方程组,其系数矩阵是范德蒙行列式,所以有唯一解

V=1x0x02...x0n1x1x12...x1n...............1xnxn2...xnn=0i<jn(xjxi)V=\begin{vmatrix} 1 & x_0 & x_0^2 & ... & x_0^n\\ 1 & x_1 & x_1^2 & ...&x_1^n \\ ... & ... & ... & ... &... \\ 1 & x_n & x_n^2 &...&x_n^n \end{vmatrix} =\prod_{0\leq i<j\leq n}(x_j-x_i)

范德蒙行列式计算过程

# 拉格朗日插值

# 线性插值

几何意义:过曲线 f(x)f(x) 上的两个点 (x0,y0)(x_0,y_0)(x1,y1)(x_1,y_1),作一直线 p1(x)p_1(x) 来近似替代 f(x)f(x)

p1(x)=xx1x0x1y0+xx0x1x0y1l0(x)=xx1x0x1,l1(x)=xx0x1x0p_1(x)=\frac{x-x_1}{x_0-x_1}y_0+\frac{x-x_0}{x_1-x_0}y_1\\ l_0(x)=\frac{x-x_1}{x_0-x_1},l_1(x)=\frac{x-x_0}{x_1-x_0}

# 抛物插值

几何意义:过曲线 f(x)f(x) 上的三个点 (x0,y0)(x1,y1)(x2,y2)(x_0,y_0)、(x_1,y_1)、(x_2,y_2),作一抛物线 p2(x)p_2(x) 来近似替代 f(x)f(x)

p2(x)=y0l0(x)+y1l1(x)+y2l2(x)l0(x)=(xx1)(xx2)(x0x1)(x0x2),l1(x)=(xx0)(xx2)(x1x0)(x1x2),l2(x)=(xx0)(xx1)(x2x0)(x2x1)p_2(x)=y_0l_0(x)+y_1l_1(x)+y_2l_2(x)\\ l_0(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)},l_1(x)=\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)},l_2(x)=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}

# 拉格朗日多项式插值

pn(x)=i=0nyi(j=0jinxxjxixj)p_n(x)=\sum_{i=0}^ny_i(\prod_{j=0\\ j\neq i}^n\frac{x-x_j}{x_i-x_j})

# 😆插值余项估计

f(x)pn(x)=fn+1(ξ)(n+1)!i=0n(xxi)f(x)-p_n(x)=\frac{f^{n+1}(\xi)}{(n+1)!}\prod_{i=0}^n(x-x_i)

证明

F(t)=f(t)pn(t)w(t)w(x)(f(x)pn(x)),w(t)=i=0n(txi)F(t)=f(t)-p_n(t)-\frac{w(t)}{w(x)}(f(x)-p_n(x)),w(t)=\prod_{i=0}^{n}(t-x_i)

显然对于插值节点 x0,x1,...,xn,F(t)=0x_0,x_1,...,x_n,F(t)=0

t=xt=x

F(x)=f(x)pn(x)(f(x)pn(X))=0F(x)=f(x)-p_n(x)-(f(x)-p_n(X))=0

所以 节点 xx 也是 F(x)F(x) 的零点

所以对于 F(t)F(t)n+2n + 2 个零点

利用 RolleRolle 定理,对 F(t)F(t)n+1n + 1 阶导

F(n+1)(ξ)=f(n+1)(ξ)pn(n+1)(ξ)(t+1)!w(x)(f(x)pn(x))=0F^{(n+1)}(\xi)=f^{(n+1)}(\xi)-p_n^{(n+1)}(\xi)-\frac{(t+1)!}{w(x)}(f(x)-p_n(x))=0

因为 pn(x)p_n(x)nn 阶多项式,所以 pn(n+1)(ξ)=0p_n^{(n+1)}(\xi)=0

所以,移项求得

f(x)pn(x)=fn+1(ξ)(n+1)!i=0n(xxi)f(x)-p_n(x)=\frac{f^{n+1}(\xi)}{(n+1)!}\prod_{i=0}^n(x-x_i)

因为 f(x)f(x) 的高阶导数一般无法确定,实用的截断误差可以是:

之前的误差是:

f(x)pn(x)=fn+1(ξ)(n+1)!i=0n(xxi)f(x)-p_n(x)=\frac{f^{n+1}(\xi)}{(n+1)!}\prod_{i=0}^n(x-x_i)

新增一个节点 xn+1x_{n+1} ,误差是:

f(x)p~n(x)=fn+1(ξ)(n+1)!i=0n+1(xxi)f(x)-\widetilde p_n(x)=\frac{f^{n+1}(\xi)}{(n+1)!}\prod_{i=0}^{n + 1}(x-x_i)

如果 f(x)f(x) 在插值区间变化不剧烈,可近似认为 pn(x)=p~n(x)p_n(x)=\widetilde p_n(x),化简得

f(x)pn(x)=xx0x0xn+1[Ln(x)L~n(x)]f(x)-p_n(x)=\frac{x-x_0}{x_0-x_{n+1}}[L_n(x)-\widetilde L_n(x)]

# 牛顿插值

# 插值基函数

Nn(x)=c0+c1(xx0)+x2(xx0)(xx1)+...+cn(xx0)(xx1)...(xxn1)N_n(x)=c_0+c_1(x-x_0)+x_2(x-x_0)(x-x_1)+...+c_n(x-x_0)(x-x_1)...(x-x_{n-1})

使满足 Nn(xi)=f(xi),i=0,1,2,...,nN_n(x_i)=f(x_i),i=0,1,2,...,n

# 差商

f[x0,x1,...,xk]=f[x0,...,xk1]f[x1,...,xk]x0xkf[x_0,x_1,...,x_k]=\frac{f[x_0,...,x_{k-1}]-f[x_1,...,x_k]}{x_0-x_k}

f(x)f(x)x0,x1,...,xkx_0,x_1,...,x_kk+1k+1 点的 kk 阶差商

# 差商的性质

kk 阶差商 f[x0,x1,...,xk]f[x_0,x_1,...,x_k] 是函数值 f(x0),f(x1),...,f(xk)f(x_0),f(x_1),...,f(x_k) 的线性组合

f[x0,x1,...,xk]=j=0kf(xj)(xjx0)(xjx1)...(xjxj1)(xjxj+1)...(xjxk)f[x_0,x_1,...,x_k]=\sum_{j=0}^k \frac{f(x_j)}{(x_j-x_0)(x_j-x_1)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_k)}

证明

利用数学归纳法证明

k=1k=1 时,

f[x0,x1]=f(x0)f(x1)x0x1=f(x0)x0x1+f(x1)x1x0f[x_0,x_1]=\frac{f(x_0)-f(x_1)}{x_0-x_1}=\frac{f(x_0)}{x_0-x_1}+\frac{f(x_1)}{x_1-x_0}

显然成立。

假设当 k=n1k=n-1 时,结论成立,即

f[x0,x1,...,xn1]=j=0n1f(xj)(xjx0)...(xjxj1)(xjxj+1)...(xjxn1)f[x_0,x_1,...,x_{n-1}]=\sum_{j=0}^{n-1}\frac{f(x_j)}{(x_j-x_0)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n-1})}

则当 k=nk=n

f[x0,x1,...,xn]=f[x0,x1,...,xn1]f[x1,x2,...,xn]x0xn=1x0xn[j=0n1f(xj)(xjx0)(xjx1)...(xjxj1)(xjxj+1)...(xjxn1)j=1nf(xj)(xjx1)(xjx2)...(xjxj1)(xjxj+1)...(xjxn)]=1x0xn[f(x0)(x0x1)(x0x2)...(x0xn1)+j=1n1f(xj)(xjx0)(xjx1)...(xjxj1)(xjxj+1)...(xjxn1)j=1n1f(xj)(xjx1)(xjx2)...(xjxj1)(xjxj+1)...(xjxn)f(xn)(xnx1)(xnx2)...(xnxn1)]=f(x0)(x0x1)(x0x2)...(x0xn1)(x0xn)+f(xn)(xnx0)(xnx1)(xnx2)...(xnxn1)+1x0xnj=1n1f(xj)[(xjx0)(xjxn)](xjx0)(xjx1)...(xjxj1)(xjxj+1)...(xjxn)=f(x0)(x0x1)(x0x2)...(x0xn1)(x0xn)+f(xn)(xnx0)(xnx1)(xnx2)...(xnxn1)+j=1n1f(xj)(xjx0)(xjx1)...(xjxj1)(xjxj+1)...(xjxn)=j=0n1f(xj)(xjx0)...(xjxj1)(xjxj+1)...(xjxn1)f[x_0,x_1,...,x_n]=\frac{f[x_0,x_1,...,x_{n-1}]-f[x_1,x_2,...,x_n]}{x_0-x_{n}}\\ = \frac{1}{x_0-x_n}[\sum_{j=0}^{n-1} \frac{f(x_j)}{(x_j-x_0)(x_j-x_1)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n-1})}-\sum_{j=1}^n\frac{f(x_j)}{(x_j-x_1)(x_j-x_2)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n})}]\\ =\frac{1}{x_0-x_n}[\frac{f(x_0)}{(x_0-x_1)(x_0-x_2)...(x_0-x_{n-1})}+\sum_{j=1}^{n-1}\frac{f(x_j)}{(x_j-x_0)(x_j-x_1)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n-1})} \\-\sum_{j=1}^{n-1}\frac{f(x_j)}{(x_j-x_1)(x_j-x_2)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n})}-\frac{f(x_n)}{(x_n-x_1)(x_n-x_2)...(x_n-x_{n-1})}]\\ =\frac{f(x_0)}{(x_0-x_1)(x_0-x_2)...(x_0-x_{n-1})(x_0-x_n)}+\frac{f(x_n)}{(x_n-x_0)(x_n-x_1)(x_n-x_2)...(x_n-x_{n-1})}\\ +\frac{1}{x_0-x_n}\sum_{j=1}^{n-1}\frac{f(x_j)[(x_j-x_0)-(x_j-x_n)]}{(x_j-x_0)(x_j-x_1)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n})}\\ =\frac{f(x_0)}{(x_0-x_1)(x_0-x_2)...(x_0-x_{n-1})(x_0-x_n)}+\frac{f(x_n)}{(x_n-x_0)(x_n-x_1)(x_n-x_2)...(x_n-x_{n-1})}\\ +\sum_{j=1}^{n-1}\frac{f(x_j)}{(x_j-x_0)(x_j-x_1)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n})}\\ =\sum_{j=0}^{n-1}\frac{f(x_j)}{(x_j-x_0)...(x_j-x_{j-1})(x_j-x_{j+1})...(x_j-x_{n-1})}

f[x0,x1,x2,...,xk]=f[x1,x0,x2,...,xk]=...=f[xk,xk1,...,x1]f[x_0,x_1,x_2,...,x_k]=f[x_1,x_0,x_2,...,x_k]=...=f[x_k,x_{k-1},...,x_1],即在差商 f[x0,x1,...,xk]f[x_0,x_1,...,x_k] 中,可以随意改变节点的顺序而差商不变

证明

根据上式可知,改变顺序只是改变了求和的顺序,所以结果不变

f[x,x0,x1,...,xk]f[x,x_0,x_1,...,x_k]xxmm 次多项式,则 f[x,x0,x1,...,xk,xk+1]f[x,x_0,x_1,...,x_k,x_{k+1}]xxm1{m-1} 次多项式

  • f(x)f(x)nn 次多项式,则 f[x,x0,x1,..,xn]f[x,x_0,x_1,..,x_n] 恒等于零
证明

由差商的定义可知

f[x,x0,x1,...,xk,xk+1]=f[x,x0,x1,...,xk]f[x0,x1,...,xk,xk+1]xxk+1f[x,x_0,x_1,...,x_k, x_{k+1}] =\frac{f[x,x_0,x_1,...,x_k]-f[x_0,x_1,...,x_k, x_{k+1}]}{x-x_{k+1}}

将左右同时称 x-x_

(xxk+1)f[x,x0,x1,...,xk,xk+1]=f[x,x0,x1,...,xk]f[x0,x1,...,xk,xk+1](x-x_{k+1})f[x,x_0,x_1,...,x_k, x_{k+1}]=f[x,x_0,x_1,...,x_k]-f[x_0,x_1,...,x_k, x_{k+1}]

x=xk+1x=x_{k+1}, 左式等于 00,所以右式等于 00

因为在 x=xk+1x=x_{k+1} 时的时候 f[x,x0,x1,...,xk]f[x0,x1,...,xk,xk+1]=0f[x,x_0,x_1,...,x_k]-f[x_0,x_1,...,x_k, x_{k+1}]=0,所以这个式子一定包含 (xxk+1)(x-x_{k+1})

f[x,x0,x1,...,xk]f[x0,x1,...,xk,xk+1]f[x,x_0,x_1,...,x_k]-f[x_0,x_1,...,x_k, x_{k+1}]mm 次多项式,f[x,x0,x1,...,xk]f[x0,x1,...,xk,xk+1]xxk+1\frac{f[x,x_0,x_1,...,x_k]-f[x_0,x_1,...,x_k, x_{k+1}]}{x-x_{k+1}}m1m-1 次多项式

# 牛顿插值公式

根据差商的定义,不断带入 f(x)=f(x0)+f[x,x0](xx0)f(x)=f(x_0)+f[x,x_0](x-x_0) 得:

Nn(x)=f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+...+f[x0,x1,...,xn](xx0)(xx1)...(xxn1)N_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)+...+f[x_0,x_1,...,x_n](x-x_0)(x-x_1)...(x-x_{n-1})

对比可知:

ci=f[x0,x1,...,xi]c_i=f[x_0,x_1,...,x_i]

# 牛顿插值余项

Rn(x)=f(x)Nn(x)=f[x,x0,x1,..,xn](xx0)(xx1)...(xxn)R_n(x)=f(x)-N_n(x)=f[x,x_0,x_1,..,x_n](x-x_0)(x-x_1)...(x-x_n)

f(x)f(x)[a,b][a, b] 上有 n+1n+1 阶导数,且节点 x0,x1,...,xn[a,b]x_0,x_1,...,x_n\in[a,b],则在节点 x0,x1,...,xnx_0,x_1,...,x_n 所界定的范围 Δ:[min0in,max0inxi]\Delta:[min_{0\leq i\leq n},max_{0\leq i\leq n}x_i] 内存在一点 ξ\xi,使得

f[x0,x1,...,xn]=f(n)(ξ)n!f[x_0,x_1,...,x_n]=\frac{f^{(n)(\xi)}}{n!}

证明

根据插值多项式的唯一性可知 pn(x)=Nn(x)p_n(x)=N_n(x),所以他们对应的余项也相等,对比可得

f[x0,x1,...,xn]=f(n)(ξ)n!f[x_0,x_1,...,x_n]=\frac{f^{(n)(\xi)}}{n!}

那么牛顿插值公式可以写成

Nn(x)=f(x0)+f(ξ1)(xx0)+f(ξ2)2!(xx0)(xx1)+...+f(n)(ξn)n!(xx0)(xx1)...(xxn1)N_n(x)=f(x_0)+f'(\xi_1)(x-x_0)+\frac{f''(\xi_2)}{2!}(x-x_0)(x-x_1)+...+\frac{f^{(n)(\xi_n)}}{n!}(x-x_0)(x-x_1)...(x-x_{n-1})

# 埃米尔特插值

插值函数在插值节点有相同的函数值斜率

# 埃米尔插值定义

已知 f(x)f(x) 在区间 [a,b][a,b] 上有 n+1n+1 个互异的节点 ax0,x1,...,xnba\leq x_0,x_1,...,x_n\leq b,满足条件

f(xi)=yi,f(xi)=yif(x_i)=y_i,f'(x_i)=y_i'

求做一个次数不高于 2n+12n+1 次的多项式 H2n+1(x)H_{2n+1}(x) 使得

H(xi)=yi,H(xi)=yi,i=0,1,2,...,nH(x_i)=y_i,H'(x_i)=y_i',i=0,1,2,...,n

# 埃米尔插值公式

H2n+1(x)=i=0n[yi(12(xxi)k=0,kin1xixk)li2(x)+yi(xxi)li2(x)]H_{2n+1}(x)=\sum_{i=0}^n[y_i(1-2(x-x_i)\sum_{k=0,k\neq i}^n\frac{1}{x_i-x_k})l_i^2(x)+y_i'(x-x_i)l_i^2(x)]

证明

构造插值基函数

H2n+1(x)=i=0n[yiαi(x)+yiβi(x)]H_{2n+1}(x)=\sum_{i=0}^n[y_i\alpha_i(x)+y'_i\beta_i(x)]

满足:

{αi(xj)={0ij1i=jai(xj)=0βi(xj)=0βi(xj)={0ij1i=j\left\{\begin{matrix} \alpha_i(x_j)= \left\{\begin{matrix} 0& i\neq j \\ 1 & i=j \end{matrix}\right. \\ a_i'(x_j)=0 \\ \beta_i(x_j)=0 \\ \beta_i'(x_j)= \left\{\begin{matrix} 0& i\neq j \\ 1 & i=j \end{matrix}\right. \end{matrix}\right.

构造

\alpha_i(x_j)=(a_1x+b_1)l_i^2(x)&i=0,1,2,...,n\\ \beta_i(x)=(a_2x+b_2)l_i^2(x)&i=0,1,2,...,n

其中 li(x)l_i(x)f(x)f(x) 关于插值节点 x0,x1,...,xnx_0,x_1,...,x_nLagrangeLagrange 插值基函数

利用上述四个等式可以分别求出 αi(x),βi(x)\alpha_i(x),\beta_i(x)

# 埃米尔插值余项

R2n+1(x)=f(x)H2n+1(x)=f(2n+2)(ξ)(2n+2)!wn+12(x)R_{2n+1}(x) = f(x)-H_{2n+1}(x)=\frac{f^{(2n+2)(\xi)}}{(2n+2)!}w_{n+1}^2(x)

证明

方式和证明拉格朗日余项的方式类似

构造辅助函数

F(t)=f(t)H2n+1(t)wn+12(t)wn+12(x)(f(x)H2n+1(x))F(t)=f(t)-H_{2n+1}(t)-\frac{w_{n+1}^2(t)}{w_{n+1}^2(x)}(f(x)-H_{2n+1}(x))

F(t)F(t)x,x0,...,xnx,x_0,...,x_nn+2n+2 个零点

根据 RolleRolle 定理, F(t)F'(t) 有异于 x,x0,...,xnx,x_0,...,x_n 的零点 ξ0,ξ1,...,ξn\xi_0,\xi_1,...,\xi_n

又因为f(x)f(x)H2n+1H_{2n+1} 的导数值在节点 x,x0,...,xnx,x_0,...,x_n 处相等

所以 F(t)F'(t) 共有 x,x0,...,xnx,x_0,...,x_nξ0,ξ1,...,ξn\xi_0,\xi_1,...,\xi_n 个零点

不断利用 RolleRolle 定理可知,对于 F(2n+2)(x)F^{(2n+2)}(x)[a,b][a,b] 必有一个零点 ξ\xi

对左右同时求 2n+22n+2 次导即可

# 插值的唯一性

假设 H2n+1(x)H_{2n+1}'(x)H2n+12(x)H_{2n+1}^2(x) 都是函数 f(x)f(x) 在节点 x0,x1,...,xnx_0,x_1,...,x_n 上满足埃米尔插值条件的插值多项式

因为 H2n+1(x)H_{2n+1}'(x)H2n+12(x)H_{2n+1}^2(x) 在各节点上的函数值和导数值相同,所以将 H2n+12(x)H_{2n+1}^2(x) 当作是 H2n+1(x)H_{2n+1}'(x) 满足条件的插值多项式

那么根据插值多项式的余项可知:

H2n+1(x)H2n+12(x)=H2n+11(2n+2)(ξ)(2n+2)!wn+12(x)H_{2n+1}'(x)-H_{2n+1}^2(x)=\frac{H_{2n+1}^{1(2n+2)}(\xi)}{(2n+2)!}w_{n+1}^2(x)

因为H2n+1(x)H_{2n+1}'(x)2n+12n+1 次多项式,其 2n+22n+2 阶导为 0

H2n+1(x)H2n+12(x)=0H_{2n+1}'(x)-H_{2n+1}^2(x)=0

# 分段插值

# Runge 现象

在大范围内使用高次插值,逼近效果往往不理想

# 分段线性插值

假设在划分 Δ\Delta 的每个节点 xix_i 上给出了相应的 yiy_i ,构造具有划分 Δ\Delta 的分段一次式 s1(x)s_1(x),使 s1(xi)=yi,i=0,1,2,...,ns_1(x_i)=y_i,i=0,1,2,...,n

si[i](x)=yixxi+1xixi+1+yi+1xxixi+1xis_i^{[i]}(x)=y_i\frac{x-x_{i+1}}{x_i-x_{i+1}}+y_{i+1}\frac{x-x_i}{x_{i+1}-x_i}

# 分段线性插值余项

f(x)s1(x)18h2maxaxbf(x),h=maxhi|f(x)-s_1(x)|\leq \frac{1}{8}h^2\max_{a\leq x\leq b}|f''(x)|,h=maxh_i

其中 hi=xi+1xih_i=x_{i+1}-x_i

证明

利用 Lagrange 余项带入,求绝对值的最大值即可

# 分段三次埃米尔特插值

回顾三次埃米尔特插值:

相当于在每一个小段上进行三次埃米尔特插值

# 分段三次埃米尔特插值余项

f(x)s3(x)h4384maxaxbf(4)(x),h=maxhi|f(x)-s_3(x)|\leq \frac{h^4}{384}\max_{a\leq x\leq b}|f^{(4)}(x)|,h=maxh_i

证明

利用埃米尔特插值余项,求绝对值最大值即可