您好,欢迎访问三七文档
贵州师范大学数学与计算机科学学院学生实验报告课程名称:数值分析班级:信本班实验日期:2013年9月3日学号:110703010038姓名:孙泽香指导教师:实验成绩:一、实验名称实验一:递推法的稳定性,秦九韶算法二、实验目的及要求1.熟悉数值稳定的概念,通过上机计算,了解舍入误差所引起的数值不稳定性.2.培养Matlab编程与上机调试能力.三、实验环境每人一台计算机,要求安装WindowsXP操作系统,Microsoftoffice2003、MATLAB6.5(或7.0)。四、实验内容1.教材例1.13中,取16位数字计算,并分析、比较计算结果.2.设100999832()101100994321fxxxxxxx,用秦九韶算法编程计算()fx在1,2,3,4x上的值.五、算法描述及实验步骤1.设(1)从0I尽可能精确的近似值出发,利用递推公式:115(1,2,,14)nnIInn,计算从1I到14I的近似值;(2)从15I较粗糙的估计值出发,用递推公式:111(15,14,,3,2)55nnIInn计算从1I到14I的近似.2.秦九韶算法给定n次多项式Pn(x)=a(n)x^n+a(n-1)x^(n-1)+…+a(1)x+a(0).要计算Pn(x)在x处的值。今考虑n次多项式Pn(x),用V(k)表示第k层的值(从里面数起),依次计算V(1)=a(n)x+a(n-1)V(2)=V(1)x+a(n-2)…V(n)=V(n-1)x+a(0).显然V(n)=Pn(x).记a(n)=V(0),上述计算过程可写成:V(0)=a(n)V(k)=V(k-1)*x+a(n-k),(k=1,2,…,n).六、调试过程及实验结果1.12算法一:formatlongesymsx;fun=inline('1./(x+5)');I(1)=quad(fun,0,1);forn=1:14I(n+1)=1/n-5*I(n);endII=Columns1through31.823215568047383e-0018.839221597630853e-0025.803892011845735e-002Columns4through64.313873274104657e-0023.430633629476715e-0022.846831852616427e-002Columns7through92.432507403584530e-0022.123177267791634e-0021.884113661041828e-002Columns10through121.690542805901971e-0021.547285970490148e-0021.354479238458353e-002Columns13through151.560937141041567e-002-1.123780129001425e-0037.704747207357855e-002算法二:formatlongesymsx;fun=inline('x.^14./(x+5)');I(15)=quad(fun,0,1);forn=14:-1:1I(n)=1/(5*n)-I(n+1)/5;endII=Columns1through31.823215567939547e-0018.839221603022675e-0025.803891984886631e-002Columns4through64.313873408900180e-0023.430632955499104e-0022.846835222504479e-002Columns7through92.432490554144271e-0022.123261514992931e-0021.883692425035346e-002Columns10through121.692648985934385e-0021.536755070328076e-0021.407133739268709e-002Columns13through151.297664636989789e-0021.203984507358747e-0021.122934606063409e-0021.13设f(x)=101x^100+100x^99+…+3x^2+2x+1,用秦九韶算法编程计算f(x)在x=1,2,3,4上的值。symsx;a=101:-1:1;x=[1,2,3,4];V=a(1);fork=1:100V=V.*x+a(k+1);endVV=Columns1through35.151000000000000e+0032.535301200456459e+0327.769316125035074e+049Column42.156867952738734e+062即:[f(1),f(2),f(3),f(4)]=[5.151000000000000e+0032.535301200456459e+0327.769316125035074e+0492.156867952738734e+062]七、总结对于问题1.12,同样是用递推法,但从结果来看,不同的递推顺序对结果的影响不同,第一个算法还存在负数,这明显误差太大导致出错了。但算法二的结果精确度更高,更接近准确值。对于问题1.13,对于一些高次的多项式,采用秦九韶算法编程可以减少大量的时间开销,去计算多项式函数在某些点处的函数值时既简单又方便。八、附录(源程序清单)formatlongesymsx;fun=inline('1./(x+5)');I(1)=quad(fun,0,1);forn=1:14I(n+1)=1/n-5*I(n);endIformatlongesymsx;fun=inline('x.^14./(x+5)');I(15)=quad(fun,0,1);forn=14:-1:1I(n)=1/(5*n)-I(n+1)/5;endIsymsx;a=101:-1:1;x=[1,2,3,4];V=a(1);fork=1:100V=V.*x+a(k+1);endV
本文标题:数值分析实验3
链接地址:https://www.777doc.com/doc-6919848 .html