文档之家
首页
教学研究
幼儿教育
高等教育
外语考试
建筑/土木
经管营销
自然科学
当前位置:
文档之家
›
第5节 算法的数值稳定性
第5节 算法的数值稳定性
格式:ppt
大小:176.00 KB
文档页数:14
下载文档原格式
下载原文件
/ 14
下载本文档
下载提示
文本预览
1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解:由韦达定理可知,此方程的精确解为:
x1 109 如果利用求根公式:
x2 1
x1,2 b
b2 4ac 2a
来编制程序,在字长为8、基底为10的计算机上进行运算,
则由于计算实际上采用的是规格化浮点数的运算,这时:
b 109 1 0.11010 0.00000000 01 1010 的第二项中的最后两个数“01”,由于计算机字长的 限制,在计算机上表示不出来,故在计算机上对阶舍 入运算时,
b 0.11010 0.000000001010 0.11010 109
b2 4ac [(109 1)]2 4 109 109
所以:x1 b
b2
4ac
109
109
109
2a
2
b b2 4ac 109 109
x2
2a
0
2
这样算出的根x2(=0)显然是严重失真的(因为精确解 x2=1,这说明直接利用求根公式求解例1中的方程是不稳定 的。
例2、试计算积分En
1 xnex1dx
0
n 1, 2,L
解:由分部积分法可得:
En
x n e x 1
1 0
n
1 xn1ex1dx
0
因此有递推公式:
En 1 nEn1 n 2, 3L
E1
1 e
用上面的递 推公式,在字长为6,基底为10的计算机上,
从E1出发计算前几个积分值,其结果如下表:
多个数相加时,最好从其中绝对值最小的数到绝对值 最大的数依次相加;多个数相乘时,最好从其中有效位数最 多的数到有效位数最少的数依次相乘。 (4)应避免两相近数相减,可用变换公式的方法来解决。 (5)绝对值太小的数不宜作为除数,否则产生的误差过 大,甚至会在计算机中造成“溢出错误”。
例如:要计算x255的值,如果逐项相乘要做254次乘法,但 若
改写成: x255=x·x2·x4·x8·x16·x32·x64·x128
则只要做14次乘法运算即可。 又如前面引言中提到的用秦九韶算法计算多项式,也是
一个改变计算公式以减少运算次数的极好例子。 (3)应合理安排运算顺序,防止参与运算的数在数量级相 差悬殊,大数“淹没”小数的现象发生。
k
Ek
1
0.367879
2
0.264242
3
0.207274
4
0.170904
5
0.145480
6
0.127120
7
0.110106
8
0.118720
9
-0.068480
被积函数xnex1在积分限(0,1)区间内都是正值,积分值 E9取三位有效数字时的精确结果为0.0916,但上表中的 E9 0.068480却是负值,与0.0916相差很大。
其原因在于计算机进行加、减运算时要对节舍入计算, 实际上受到机器字长的限制,在计算-b是绝对值小的数被绝 对值大的数(109)淹没了。在计算△时,4×109被 [-(109+1)2]淹没了,这些相对小的数被“淹没”后就无法
发挥 其应用的影响,由此带来的误差,造成计算结果的严重失真.
当多个数在计算机中相加时,最好从其中绝对值最小的 数到绝对值最大的数依次相加,可使和的误差减小。
LLLL
E9 1 9[1 8(L )] 9! 这样,算到E9时产生的误差为:9! 9! 4.412107 0.6101
就是一个不小的数值了。
可以改进算法来提高此例的数值稳定性,即将递
推公式改写为:
En1
1 En n
从后往前递推计算时,En的误差下降为原来的
1 n
,因此
只要n取得足够大,误差逐次下降,其影响就会影响越
15 14
降到不大于4 108,
13
结果如右:
12
这样得到E19已很精确了。 11
可见经过改进后的新算
10
wk.baidu.com
法具有很好的稳定性。
9
Ek 0.0000000 0.0500000 0.5000000 0.0527778 0.0557190 0.0590176 0.0627322 0.0669477 0.0717733 0.0773523 0.0838771 0.0916123
例3、对于小的x值,计算ex 1。
解:如果用ex 1直接进行计算,其稳定性是很差的, 因为两个相近数相减会严重丢失有效数字,产生很大 误差。因此得采用合适的算法来保证计算的数值稳定 性。可以把ex在x 0点附近展开称幂级数:
ex 1 x x2 x3 L 2! 3!
则可得:ex 1 x x2 x3 L 2! 3!
这时,如要提高计算的数值稳定性,必须要改进
算法。在此例中,由于算出的根x1( 109 )是可靠的,故
可利用根与系数的关系式:x1
x2
c a
来计算x2,有:
x2
c a
1 x1
109 1 109
1
所得结果很好。这说明第二种算法有较好的数值稳定性
注意:在利用根与系数关系式求第二根时,必须先算出 绝对值较大的一个根,然后再求另一个根,才能得到精 度较高的结果。
§5 算法的数值稳定性
通过前面对误差传播规律的分析,我们知道同一问题 当选用不同的算法,它们所得到的结果有时会相差很大,这 是因为运算中的舍入误差在运算过程中的传播常随算法而异。
凡一种算法的计算结果受舍入误差的影响小者称它为数 值稳定的算法。下面再通过其他一些例子来进一步说明算法 稳定性的概念。
例1、求解方程x2 (109 1)x 109 0
由于在计算E1时有舍入误差约为: 4.412107, 且考虑以后的计算都不再另有舍入误差。此 对后面各项
计算的影响为:
E2 1 2(E1 ) 1 2E1 2 1 2E1 2! E3 1 3(1 2E1 2! ) 1 3(1 2E1) 3! E4 1 4[1 3(1 2E1) 3! ] 1 4[1 3(1 2E1)] 4!
来越小。
由:
En
1 xnex1dx
0
1 xndx 1
0
n 1
可知:当n 时,En 0,因此可取E20 0作为初始值
进行递推计算。
由于E20
1 ,故 21
k
E20
0的误差约为 1 , 21
20 19
在计算E19时误差下降到
18
1 1 0.0024, 21 20
17 16
到计算E15时,误差已下
通过以上这些例子,可以知道算法的数值稳定性对于 数值计算的重要性了。如无足够的稳定性,将会导致计算的 最终失败。为了防止误差传播,积累带来的危害,提高计算 的稳定性,将前面分析所得的各种结果归纳起来,得到数值 计算中应注意之点如下: (1)应选用数值稳定的计算方法,避开不稳定的算式。 (2)注意简化计算步骤及公式,设法减少运算次数;选用 运算次数少的算式,尤其是乘方幂次要低,乘法和加法的次 数要少,以减少舍入误差的积累,同时也可节约计算机的机 时。
合集下载
相关主题
实验报告数值分析
算法的数值稳定性
数值稳定性实验报告
算法的数值稳定性实验
数值方法实验报告
数值计算方法实验报告
文档推荐
计算方法算法的数值稳定性实验报告
页数:6
算法的误差与稳定性
页数:4
数值计算方法实验报告(一)算法的数值稳定性实验
页数:3
数值计算方法期末复习答案终结版
页数:10
数值算法的稳定性
页数:56
计算方法算法的数值稳定性实验报告
页数:4
2) 数值计算方法
页数:56
算法的数值稳定性实验
页数:3
数值计算的误差
页数:31
第5节 算法的数值稳定性
页数:14
最新文档
饭店包间名字大全
word无法创建工作文件,请检查临时环境变量
自行车健身比赛开幕式讲话词
2018乡村医生个人工作总结
MySQL测试题 SQL
合勤NXC5200
铁路集中箱空箱调度优化建模案例(案例2)
微分几何教学大纲-复旦大学数学科学学院
人教版九年级数学上册导学案:24.1.1_圆【精品】
(整容后办护照用)医院整容证明