预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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