.
题目:Newton插值多项式和三次样条插值多项式。1已知f(x)?(?1?x?1),对n?5,10,20作:1?25x221、计算函数f(x)在点xi??1?i,(i?0,1,2,,n)处的值f(xi);n2、求插值数据点??xi,yi??(i?0,1,2,,n)的Newton插值多项式Nn(x)和三次样条插值多项式Sn(x);3、对n?5,20:计算xk??1?2k和相应的函数值100yk?f(xk),Nn(xk)和Sn(xk) (k?1,2,,99);k
4、计算:E(Nn)?max解释你所得到的结果。
yk?Nn(xk),E(Sn)?maxkyk?Sn(xk);算法组织:
本题在算法上需要解决的问题主要是:求出第二问中的Newton插值多项式
Nn(x)和三次样条插值多项式Sn(x)。如此,则第三、四问则迎刃而解。计算两
种插值多项式的算法如下:
一、求Newton插值多项式Nn(x),算法组织如下:
Newton插值多项式的表达式如下:
Nn(x)?c0?c1(x?x0)?????cn(x?x0)(x?x1)???(x?xn?1)
其中每一项的系数ci的表达式如下:
ci?f(x0,x1,???,xi)?f(x1,x2,???,xi)?f(x0,x1,???,xi?1)
xi?x0根据ci以上公式,计算的步骤如下:
?1、计算f(x0),f(x1),???,f(xn)??2、计算f(x0,x1),???,f(xn?1,xn)? ????????n、计算f(x,x,???,x),f(x,???,x,x)01n?11n?1n???n?1、计算f(x0,x1,???,xn?1,xn) .
.
二、求三次样条插值多项式Sn(x),算法组织如下:
所谓三次样条插值多项式Sn(x)是一种分段函数,它在节点
xi(a?x0?x1?????xn?1?xn?b)分成的每个小区间[xi?1,xi]上是3次多项式,其
在此区间上的表达式如下:
hi2xi?xhi2x?xi?1133S(x)?[(xi?x)Mi?1?(x?xi?1)Mi]?(yi?1?Mi?1)?(yi?Mi), 6hi6hi6hix?[xi?1,xi],i?1,2,???,n.因此,只要确定了Mi的值,就确定了整个表达式,Mi的计算方法如下: 令:
hihi?1???,???1??ii?ih?hh?h?ii?1ii?1 ?y?yy?y6i?1?d?(i?1i?i)?6f(xi?1,xi,xi?1)i?hi?hi?1hi?1hi?则Mi满足如下n-1个方程:
?iMi?1?2Mi??iMi?1?di,i?1,2,???,n?1
方程中有n+1个未知量,则令M0和Mn分别为零,则由上面的方程组可得
到Mi(1?i?n?1)的值,可得到整个区间上的三次样条插值多项式Sn(x)。
计算结果与结果分析
本题中各问的相应计算结果如下:
1、在n取不同值时,xi和对应的f(xi)(亦即下图中的y1)的值如下:
n=5时:
.
.
n=10时:
n=20时:
.
.
2、Newton插值多项式的表达式如下:
Nn(x)?c0?c1(x?x0)?????cn(x?x0)(x?x1)???(x?xn?1)
n=5时,其各项系数c0,c1,c2,c3,c4分别为:
n=10时,其各项系数c0,c1,??????,c9,c10分别为:
n=20时,其各项系数c0,c1,??????,c19,c20分别为:
对于三次样条插值多项式Sn(x),最重要的是求出其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为多少,f(xk)是不会改变的,其值存储在矩阵yy中;当n取不同值的时候,Newton插值多项式Nn(xk)和三次样条插值多项式Sn(xk)的值是不同的,为了使整个结果直观,实验的最终结果还用图形进行的重现(本问中所得函数值
f(xk)、牛顿插值Nn(xk)和三次样条插值Sn(xk)的结果分别存在数组变量yy、Nn和Sn中)。
当n=5时,整个区间中的Nn(xk)、Sn(xk)以及f(xk)的值如图所示:
.