- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
(一)要避免相近两数相减下面再举几个例说明改善算法的方法。例2x充分大时 1/x–1/(x+1)=1/[x(x+1)](1+x)1/2–x1/2=1/[(1+x)1/2+x1/2]例3对于小的正数ε sin(x+ε)–sinx=2cos(x+ε/2)sin(ε/2)(注: sin(x)–sin(y)=2cos[(x+y)/2]sin[(x-y)/2])例4对于绝对值小的x,可利用泰勒级数 ex–1=x+x2/2+x3/6+…取前n项来计算。第30页,共40页,星期六,2024年,5月(二)要防止大数“吃掉“小数,注意保护重要数据在数值运算中,参加运算的数有时数量级相差很大,而计算机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的现象,影响计算结果的可靠性。?例5??在五位浮点十进制计算机上,计算 y=54321+0.4+0.3+0.4如果按从左到右的顺序进行加法运算,后三个数都在对阶过程中被当作零,得出含有较大绝对误差的结果y=54321。要避免这种大数“吃掉”小数的现象,可以调整计算顺序,采用先小数后大数的计算次序,即先将0.4,0.3,0.4加起来,然后再加上54321,结果等于54322。一般情况下,若干数相加,采用绝对值较小者先加的算法,结果的相对误差限较小。第31页,共40页,星期六,2024年,5月(三)注意简化计算步骤、减少运算次数、避免误差积累同一个计算问题,如果能减少运算次数,不但可以提高计算速度,而且能减少误差的积累。第32页,共40页,星期六,2024年,5月简化计算步骤、减少运算次数、避免误差积累的例子例6计算多项式 P4(x)=0.0625x4+0.425x3+1.215x2+1.912x+2.1296的值。如果先计算各项然后相加,需做十次乘法和四次加法。如改用下式计算 (((0.0625x+0.425)x+1.215)x+1.912)x+2.1296则只需做四次乘法和四次加法。第33页,共40页,星期六,2024年,5月简化计算步骤、减少运算次数、避免误差积累的例子又如计算1/(1*2)+1/(2*3)+…+1/(1000*1001)的值。若一项一项进行计算,不仅计算次数多,而且误差积累也很大。若简化成1-1/1001进行计算,则整个计算只要一次求倒数和一次减法。第34页,共40页,星期六,2024年,5月(四)要避免绝对值小的数作除数由式ε(x1/x2)≈d(x1/x2)≈[x2ε(x1)-x1ε(x2)]/x22,(x2≠0)可知,当除数x2接近于零时,商的绝对误差就可能很大。因此,在数值计算中要尽量避免绝对值小的数作除数,避免的方法是把算式变形或改变计算顺序。例8当x接近于0时(1-cosx)/sinx的分子、分母都接近0,为避免绝对值小的数作除数,可将原式化为(1-cosx)/sinx=sinx/(1+cosx)例9当x很大时,可化 x/[(x+1)0.5-x0.5]=x[(x+1)0.5+x0.5] 第35页,共40页,星期六,2024年,5月控制误差传播的例子例10计算积分 In=∫01xnex-1dx,n=0,1,2,…,9利用分部积分法,可得?In=xnex-1|01–∫01ex-1dxn=1–n∫01xn-1ex-1dx =1–nIn-1从而有递推公式I0=∫01ex-1dx=ex-1|01=1-e-1≈0.6321In=1–nIn-1
文档评论(0)