数值分析实验一:误差分析、误差传播与算法稳定性.doc

数值分析实验一:误差分析、误差传播与算法稳定性.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析实验一:误差分析、误差传播与算法稳定性

毕节学院实验报告 实验名称: 误差分析、误差传播及算法稳定性 实验报告序号: 1 组 别 姓 名 王朝春 同组实验者 李亚 杨凯 实验项目 计算并估计误差 实验日期 2012年10月5日 实验类别 eq \o\ac(□,√) 1、验证性实验或基础性实验; □ 2、综合性实验 □ 3、设计性实验; □ 4、创新性实验和研究性实验; 教师评语 实验成绩 指导教师(签名) 赖志柱 年 月 日 实验目的: 通过本实验对求解问题的算法进行好坏判断有一个初步了解,并加强对设计一个好算法的理解,体验数值计算稳定性,从而了解数值计算方法的必要性,体会数值计算的收敛性与收敛速度。 实验任务与要求: 计算并估计误差 (1)建立若干个(不少于两个)计算公式; (2)分析计算公式的理论误差; (3)编写程序(推荐MATLAB)实现(1)中的计算公式、输出结果并比较实际误差; (4)任选正整数,要求既从计算,又从计算,并分析您的结果。这里且。 小组分工合作说明:王朝春查找资料;李亚负责编辑,杨凯协助完成。 实验过程及内容: 解: 由分部积分可得计算的递推公式 (1) 若计算出,代入(1)式,可逐次求出 的值。要算出就要先算出,若用泰勒多项式展开部分和 并取k=19,用4位小数计算,则得,截断误差.计算过程中小数点后第5位的数字按四舍五入原则舍入,由此产生的舍入误差这里先不讨论。当初值取为时,用(1)式递推的计算公式为 ,n=1,2,…。 计算结果见表1的列。用近似产生的误差就是初值误差,它对后面计算结果是有影响的. 从表1中看到出现负值,这与一切相矛盾。实际上,由积分估值得 (2) 因此,当n较大时,用近似显然是不正确的。这里计算公式与每步计算都是正确的,那么是什么原因合计算结果出现错误呢?主要就是初值有误差,由此引起以后各步计算的误差满足关系 由此容易推得 , 这说明有误差,则就是的n!倍误差。例如,n=19,若,则。这就说明完全不能近似了。它表明计算公式(A)是数值不稳定的。 我们现在换一种计算方案。由(2)式取n=19,得 , 我们粗略取,然后将公式(1)倒过来算,即由算出,,…,,公式为 计算结果见表1的列。我们发现与的误差不超过。记,则,比缩小了n!倍,因此,尽管较大,但由于误差逐步缩小,故可用近似。反之,当用方案(A)计算时,尽管初值相当准确,由于误差传播是逐步扩大的,因而计算结果不可靠。此例说明,数值不稳定的算法是不能使用的。 程序如下: function x11 = facto(n) %这个函数的功能是求 n 的阶乘; x11 = 1; if n == 0 x11 = 1; else for i = 1:n x11 = x11*i; end end function e_1 = telor(k) %这个函数的功能是求e^(-1);用泰勒多项式展开式进行计算的, % k是代表展开到第 k+1 项 e_1 = 1; if k == 1 e_1 = 1; else for i=1:k e_1 = e_1 +(-1)^i/facto(i); end end function jifen(m) I0=1-telor(19); %第一种算法 I(1)=I0; for i = 1:m I1 = 1 - i*I0; I(i+1)=I1; I0=I1; end %第二种算法 Im=(1/2)*(1/(m+1)+telor(19)/(m+1)); B(1)=Im; for i=1:m In=(1/(m+1-i))*(1-Im); B(i+1)=In; Im=In; end disp( 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种算法 0 0.6321 0.6321 1 0.3679 0.3679 2 0.2642 0.2642 3 0.2073 0.2073 4 0.1709 0.1709 5 0.1455 0.1455 6 0.1268 0.1268 7 0.1124 0.1124 8 0.1009 0.1009 9 0.0916 0.0916 10 0.08

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档