第3周作业
林成森《数值计算方法》第四章习题2、7、8、12、14.
解答
第2题
已知函数$f(x)$的观测数据为$f(-1)=3$,$f(0)=1$,$f(1)=3$,$f(2)=9$.试求以$-1,0,1,2$为基点的Lagrange插值多项式,并求$f(\dfrac{1}{2})$的近似值.
解答:根据Lagrange插值多项式的公式可得出 $p(x)=2x^2+1$,$p(\dfrac{1}{2})=\dfrac{3}{2}$.
计算时注意符号问题,容易出错.
小技巧:如果不确定计算出来的插值多项式是否正确,可代入已知的观测数据验证是否都满足,如果都满足,那么算出来的插值多项式就一定是正确的(这是根据 代数基本定理 ).
第7题
设$f(x)=3x\mathrm{e}^x-2\mathrm{e}^x$.以$x_0=1$,$x_1=1.05$,$x_2=1.07$作抛物线插值计算$f(1.03)$的值,将实际误差与由公式
\[|f(x)-p_n(x)| \le \left(\max\limits_{a\le y\le b}|f^{(n+1)}(y)| \right) \dfrac{|w_{n+1}(x)|}{(n+1)!}\]所得的误差界进行比较.
本题的意思是假设插值多项式为$p_2(x)$,$\mathrm{deg}(p_2(x))=2$,且
\[\left\{\begin{aligned} &p_2(1)=f(1), \\ &p_2(1.05)=f(1.05), \\ &p_2(1.07)=f(1.07), \\ \end{aligned}\right.\]根据Lagrange插值多项式的公式就能得到$p_2(x)$的表达式.于是(下面都保留8位有效数字)
\[p_2(1.03) = 3.0530476\]而实际上$f(1.03) = 3.0531618$,从而
\[|f(1.03)-p_2(1.03)| = 1.142\times 10^{-4}.\]根据$f^{(3)}(x)=(3x+7)\mathrm{e}^x$,$f^{(3)}(1.07)=29.766025$,以及误差界公式得
\[\begin{aligned} |f(1.03)-p_2(1.03)| &< 29.766025 \times \dfrac{0.03\times 0.02\times 0.04}{6} \\ &= 1.1906410\times 10^{-4}. \end{aligned}\]实际算出来的误差确实满足上面的误差界估计式.
易错点:
有同学计算 $M_n = \left(\max\limits_{a\le y\le b}\vert f^{(n+1)}(y)\vert \right)$ 时,算的是2阶导数而不是3阶导数,得出来不符合误差界估计式.
有同学保留的有效数字位数不够多,导致“相减相消”,即算出来的误差不够精确,得出来不符合误差界估计式.
第8题
这道题很重要(你懂的),如果做不出来一定要花时间思考!作为和蔼、慈祥的学长,我就只能点到为止了.
设$x_0,x_1,\cdots,x_n$为$n+1$个相异的插值基点,$l_i(x)(i=0,1,\cdots,n)$为Lagrange基本多项式,证明
(1) $\sum\limits_{i=0}^nl_i(x)=1$;
(2) $\sum\limits_{i=0}^nx_i^jl_i(x)=x^j$,$j=1,2,\cdots,n$;
(3) $\sum\limits_{i=0}^n(x_i-x)^jl_i(x)=0$,$j=1,2,\cdots,n$;
(4)
\[\sum\limits_{i=0}^nl_i(0)x_i^j=\left\{\begin{aligned} &1, &&j=0, \\ &0, &&j=1,2,\cdots,n, \\ &(-1)^nx_0x_1\cdots x_n, &&j=n+1. \end{aligned}\right.\]
(1)和(2)分别考虑对$f(x)=1$和$f(x)=x^j$,$j=1,2,\cdots,n$用Lagrange插值公式,得到$n$次多项式$p_n(x)$.因为此时$f$的$n+1$次导数是0,根据插值误差公式,有
\[|f(x)-p_n(x)|\equiv 0.\]所以$f(x)\equiv p_n(x)$.
(3)用二项式展开
\[(x_i-x)^j=x_i^j-\mathrm{C}_j^1x_i^{j-1}x+\cdots+(-1)^j\mathrm{C}_j^jx^j\]和
\[(1-1)^j=1-\mathrm{C}_j^1+\cdots+(-1)^j\mathrm{C}_j^j=0.\](4)只看$j=n+1$的情形($j=0,1,\cdots,n$均可由前三问推出).
让$f(x)=x^{n+1}$,得到$n$次Lagrange插值多项式,此时$f^{(n+1)}(x)=(n+1)!$,根据带余项的Lagrange插值公式,有
\[f(x)-p_n(x) = \dfrac{f^{(n+1)}(\xi)}{(n+1)!}w_{n+1}(x) = w_{n+1}(x).\]其中,
\[p_n(x)=\sum\limits_{i=0}^nf(x_i)l_i(x)=\sum\limits_{i=0}^nx_i^nl_i(x).\]让$x=0$即可.
第12题
设$p_n(x)$是函数$f(x)=\cos x$关于区间$[0,\dfrac{\pi}{2}]$上的等距点$x_i=\dfrac{(i-1)}{2n}\pi$ $(i=1,2,\cdots,n+1)$的Lagrange插值多项式,证明$\lim\limits_{n\to\infty}p_n(x)=\cos x$.
只需用Lagrange插值多项式的误差估计,然后就是简单数分题.
易错点:
放缩时要注意绝对值,这是数学分析基本功的问题!比如有同学写
\[r_n(x)=\dfrac{f^{(n+1)}(\xi)}{(n+1)!}w_n(x) \le \dfrac{1}{(n+1)!}(\dfrac{\pi}{2})^{n+1}.\]要把不等号左边加上绝对值.
第14题
设函数$y=f(x)$在区间$[a,b]$上有单值反函数$x=g(y)$.反插值法是在插值法中将$y_i(=f(x_i))$与$x_i$的地位对调,已知$y$的值求$x=g(y)$的近似值.就$y=\sqrt{x}$取$x_0=1.05$,$x_1=1.10$,$x_2=1.15$,用Lagrange插值求$(1.05)^2$的近似值(计算结果取四位小数).
函数$f(y)=y^2$上有数据$(y_i,x_i)$为:$(\sqrt{1.05},1.05)$,$(\sqrt{1.10},1.10)$,$(\sqrt{1.15},1.15)$,这三点确定的插值多项式就是
\[p_2(y)=y^2.\]而$1.05 \in [\sqrt{1.05}, \sqrt{1.15}]$,所以必定有
\[p_2(1.05)=f(1.05)=1.1025.\]易错点:
如果得出误差比较大,可能是算错了.正常来说误差应该非常小.
有同学说“我实在无法理解这题在干什么”,可能是因为这题给的函数太特殊了,它的反函数是一个二次函数,所以插值多项式是精确的.其实可以试一下复杂一点的函数,比如对
\[f(x)=x\mathrm{e}^x(x\ge 0)\]进行反插值.
第3周答疑
这周没有同学提问作业之外的内容