《数值分析实验一:误差分析、误差传播及算法稳定性》由会员分享,可在线阅读,更多相关《数值分析实验一:误差分析、误差传播及算法稳定性(5页珍藏版)》请在金锄头文库上搜索。
1、毕节学院实验报告实验名称:误差分析、误差传播及算法稳定性实验报告序号:1组另U姓名朱海涛同组实验者周礼伟实验项目计算 I = e1 j1 xnexdx (n = 0丄) n 0并估计误差实验日期2012年9月26日实验类别 1、验证性实验或基础性实验;口 2、综合性实验口 3、设计性实验;口 4、创新性实验和研究性实验;教师评语实验成绩指导教师(签名)赖志柱年 月曰实验目的:通过本实验对求解问题的算法进行好坏判断有一个初步了解,并加强对设计一个好算法的理解,体验数值计算稳定性,从而了解数值计算方法的必要性, 体会数值计算的收敛性与收敛速度。实验任务与要求:计算I = e-1P xnexdx (
2、n = 0,1,)并估计误差n 0(1)建立若干个(不少于两个)计算公式;(2)分析计算公式的理论误差;(3)编写程序(推荐MATLAB)实现(1)中的计算公式、输出结果并比 较实际误差;(4)任选正整数m n,要求既从I计算I,又从I计算I,并分析您mnnm的结果。这里m丰0且n丰9。小组分工合作说明:实验过程及内容:解:由分部积分可得计算I的递推公式I = 1 nI , n = 1,2,n1(1)1 ,.的值。2nn 1=e订 1 exdx = 1 e1.0 0若计算出I,代入(1)式,可逐次求出I0 1要算出/就要先算出e-1,若用泰勒多项式展开部分和0+ +e-1 1 + (-1) +
3、1)2 -(-1)k2!并取k=19,用4位小数计算,则得e _ i0.3679,截断误差R = | e-1 0.3679 1 - 0相矛盾。实际上,由积18n(2)分估值得e -1111=e-1 (m im ex) J xndx I e- 1(max ) J xndx =n + 10 x 10n0 x 2。这就说明I兀全不能近似/ 了。02190819它表明计算公式(A)是数值不稳定的。我们现在换一种计算方案。由(2)式取n=19,得e -11 I 20 19 20我们粗略取/1(丄+9 2 10 10=0.0684 = I * 然后将公式(1)倒过来算,即由I *算出I *,98,公式为计
4、算结果见表*n-1I * = 0.0342191=(1 I*), n = 19,18,1 ; n n1的厂列。我们发现厂与/的误差不超过n| E*|=丄E*|, E* 比E*缩小了 n!倍,因此,尽管E*较0 n ! n0n910 - 4。记E * = I I *,贝Unnn大,但由于误差逐步缩小,故可用*近似I。反之,当用方案A)计算时,尽管初值f相当准确,由于误差传播是逐步扩大的,因而0计算结果不可靠。此例说明,数值不稳定的算法是不能使用的。程序如下:function x11 = facto(n)%这个函数的功能是求n的阶乘; x11 = 1;if n = 0x11 = 1;elsefor
5、 i = 1:nx11 = x11*i;endendfunction e_1 = telor(k)%这个函数的功能是求e(-1);用泰勒多项式展开式进行计算的,% k是代表展开到第k+1项9e_1 = 1;if k = 1 e_1 = 1;elsefor i=1:ke_1 = e_1 +(-1)Ai/facto(i);endendfunction jifen(m)I0=1-telor(19);%第一种算法I(1)=I0;for i = 1:mI1 = 1 - i*I0;I(i+1)=I1;I0=I1;end%第二种算法Im=(1/2)*(1/(m+1)+telor(19)/(m+1);B(1)
6、=Im;for i=1:mIn=(1/(m+1-i)*(1-Im);B(i+1)=In;Im=In;enddisp( n第1种算法第2种算法 );for i = 0:(length(B)-1)fprintf(%4d %33.4f%12.4f|n,i,I(i+1),B(m+1-i);end在Matlab命令窗口输入如下命令即可得到如表1的结果。jifen(19)表1计算结果n第1种算法第2种算法00.63210.632110.36790.367920.26420.264230.20730.207340.17090.170950.14550.145560.12680.126870.11240.112480.10090.100990.09160.0916100.08390.0839110.07740.0774120.07180.0718130.06690.0669140.06270.0627150.05900.0590160.05550.0557170.05720.052718-0.02950.0508191.55960.0342