数值算法的稳定性说课讲解.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设x*是准确数, x是x*的近似数,称e = x* - x 为近似值x的绝对误差,简称误差。;则称?r 为近似值x的相对误差限。;如果|e| = |x* - x|? 1/2 ?10m-n 称近似数x准确到小数点后第n位,从这小数点后第n位数字直到最左边非零数字之间的所有数字都称为有效数字. ;相对误差与有效数字的关系如下:;§1.4 算法的数值稳定性 (数值计算中值得注意的问题) ;见教材第2、10—11页;n;然后取充分大的m对应的Im的一个估计值为计算初值,再逐步用上式算出Im-1 ,Im-2 ,...,I1。;n;一、防止相近的两数相减 (会耗失许多有效数字,可以用数学公式化简后再做);解: ; 二、防止大数吃小数 当两个绝对值相差很大的数进行加法或减法运算时,绝对值小的数有可能被绝对值大的数吃掉从而引起计算结果很不可靠. 例4:求一元二次方程x2-(109 +4)x+4×109=0 的实数根. 采用因式分解法,很容易得到两个根为x1=109,x2=4.如采用字长为8位的计算机来计算,求得根为x1=109 ,x2=0.(怎样计算可得较好的结果?) 两者结果不同,因为计算机计算时做加减法要 “对阶”,“对阶”的结果使大数吃掉了小数.产生了误差.为了避免由于上述原因引起的计算结果严重失真,可以根据一些具体情况,有时需要把某些算式改写成另一种等价的形式.;; 在该例中,用上述公式计算积分的值,I0=ln6-ln5 ≈0.182322的舍入误差在计算过程迅速传播,每次扩大5倍,致使I12= -010-2 严重失真,所以这一公式是不稳定的。; 在该例中,用上述公式计算积分的值,I0=ln6-ln5 ≈0.182322的舍入误差在计算过程迅速传播,每次扩大5倍,致使I12= -010-2 严重失真,所以这一公式是不稳定的。;然后取充分大的m对应的Im的一个估计值为计算初值,再逐步用上式算出Im-1 ,Im-2 ,...,I1。;n;;矩阵乘积AB的计算量分析;作业:P13 9、12;实验1.1(数值微分精度与步长的关系);计算一阶导数的算法:;function y=dsh1(fu,x,h) y=(feval(fu,x+h)-feval(fu,x))/h; y; 真解: cos(1)=0.5403 ans = 0.5403;h=0.1 有偏差; dsh2(sin,1,0.1) y = 0.5394;h=0.01 几乎看不出误差;dsh1(sin,1,0 y = 0.5403; 截断误差用我们原有的数学思维方式就比较容易理解的,而舍入误差则是本课程引入的一个新概念。要真正理解舍入误差,特别是它在计算中的传播及最终对计算结果的影响,是初步具备科学计算能力的重要标志。希望大家在完成实验后,认真仔细去体会截断误差和舍入误差的含义及对计算结果的影响。;实验分析:不论采用怎样的算法,计算结果通常都会有误差。比如算法(1),由Taylor公式,知:;类似地可以分析(2)的截断误差为:; 截断误差用我们原有的数学思维方式就比较容易理解的,而舍入误差则是本课程引入的一个新概念。要真正理解舍入误差,特别是它在计算中的传播及最终对计算结果的影响,是初步具备科学计算能力的重要标志。希望大家在完成实验后,认真仔细去体会截断误差和舍入误差的含义及对计算结果的影响。;实验1.2(误差传播与算法稳定性)(P13 12题);实验内容:由递推关系In=1-nIn-1,可得计算积分序列{In}的两种算法:;实验分析:; 由此可见,算法一中的e1可能很小,但在计算中它的影响急剧扩散,结果真实的数据很快被淹没了;而算法二中的εN可能相对比较大,但在计算中误差影响不扩散,即某一步产生误差后,该误差对后面的影响不断衰减。;熟悉几个必备的matlab命令: 1、help (帮助查找已知命令) 例如:help plot3 (显示命令plot3的功能) 2、lookfor(帮助查找未知命令) 例如:lookfor contour (显示含有contour的所有函数) 3、exist(检验函数) exist(‘A’) %A是变量 返回0,代表变量不存在 返回其它数值,变量存在 ;熟悉几个必备的matlab命令: 1、help (帮助查找已知命令) 例如:help plot3 (显示命令plot3的功能) 2、lookfor(帮助查找未知命令) 例如:lookfor contour (显示含有contou

文档评论(0)

150****8484 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档