1、算法组织:本题在算法上需要解决的问题主要是:求出第二问中的Newton插值多项式和三次样条插值多项式。如此,则第三、四问则迎刃而解。计算两种插值多项式的算法如下:一、求Newton插值多项式,算法组织如下:Newton插值多项式的表达式如下:其中每一项的系数ci的表达式如下:根据以上公式,计算的步骤如下:二、求三次样条插值多项式,算法组织如下:所谓三次样条插值多项式是一种分段函数,它在节点分成的每个小区间上是3次多项式,其在此区间上的表达式如下:因此,只要确定了的值,就确定了整个表达式,的计算方法如下:令:则满足如下n-1个方程:方程中有n+1个未知量,则令和分别为零,则由上面的方程组可得到的
2、值,可得到整个区间上的三次样条插值多项式。计算结果与结果分析本题中各问的相应计算结果如下:1、在n取不同值时,xi和对应的f(xi)(亦即下图中的y1)的值如下:n5时:n10时:n20时:2、Newton插值多项式的表达式如下:n5时,其各项系数分别为:n10时,其各项系数分别为:n20时,其各项系数分别为:对于三次样条插值多项式,最重要的是求出其M矩阵的值,其中M0和Mn都为0,M1Mn-1则存储在矩阵M中:n5时的M矩阵(M1M4)的值为:n10时的M矩阵(M1M9)的值为:n20时的M矩阵(M1M19)的值为:3、不论n为多少,是不会改变的,其值存储在矩阵yy中;当n取不同值的时候,N
3、ewton插值多项式和三次样条插值多项式的值是不同的,为了使整个结果直观,实验的最终结果还用图形进行的重现(本问中所得函数值、牛顿插值和三次样条插值的结果分别存在数组变量yy、Nn和Sn中)。当n5时,整个区间中的、以及的值如图所示:图5-1 、与原始值的对比图n20时,整个区间中的和以及和的对比如下面两图所示:图5-2 与原始值的对比图图5-3 与原始值的对比图通过对比以上三个图可得到如下结论:1、随着n的增大,使用Newton插值多项式会出现龙格现象(对比图5-1和图5-2中的)。2、随着n的增大,三次样条插值多项式将越来越接近被插值的函数(对比图5-1和图5-3中的)。4、根据第3问中得
4、到的数据可以很容易的得到和,它们的值如下表所示:n值E(Nn)E(Sn)50.432690.423482058.27810.00309当n20时,使用Newton插值多项式出现龙格现象,其最大误差达到58.2781,而相应的三次样条插值多项式的最大误差仅为0.00309。可见,n越大,Newton插值越可能偏离被插值函数,而相应的三次样条插值则能更接近于被插值函数。x=a:(b-a)/n:b; %插值节点y=f(x);plot(x,y,b) %用蓝色线作被插函数图象hold onz=a:(b-a)/(2*n):b;n=length(x);for j=2:n for i=n:-1:j y(i)=(y(i)-y(i-1)/(x(i)-x(i-j+1);%计算差商 endendu=y(n);m=length(z);for j=1:m for i=n-1:-1:1 u=y(i)+u*(z(j)-x(i); %计算牛顿插值多项式的值 v(j)=u; end u=y(n);endplot(z,v,r) %用红色线作牛顿插值多项式图象hold off