二、数值计算中的一些基本原则 避免绝对值小的数作除数 避免两个相近的数据相减 要防止大数“吃掉”小数 尽量减少计算工作量 选用数值稳定性好的算法 1/13
1/13 § 避免绝对值小的数作除数 § 避免两个相近的数据相减 § 要防止大数“吃掉”小数 § 尽量减少计算工作量 § 选用数值稳定性好的算法 二、数值计算中的一些基本原则
避免绝对值小的数作除数 这一原则主要指尽量避免除数绝对值远远小于被除数 绝对值的除法。 设z=y/x(x≠0),如果x的绝对值远小于y的绝 对值,由于 ε(')≈x|s(y)+|ys(x) IxP 兴片 2/13
2/13 § 避免绝对值小的数作除数 这一原则主要指尽量避免除数绝对值远远小于被除数 绝对值的除法。 设 ( x≠0),如果 x 的绝对值远小于 y 的绝 对值,由于 z y x 2 | | | | ( ) | | ( ) ( ) x x y y x x y ( ) | | | | | | ( ) 2 x x y x y
避免两个相近的数据相减 如果y≈x,现分析两个数的近似数作减法所得结果的 误差.设=y一x,则利用误差估计 E(z)=8(y)+E(x) 有相对误差估计 当y≈x时,有0,计算结果的相对误差限可能很大, 导致数值计算结果的有效数字位数减少。 3/13
3/13 § 避免两个相近的数据相减 如果 y ≈ x,现分析两个数的近似数作减法所得结果的 误差. 设 z= y – x,则利用误差估计 (z) ( y ) ( x ) ( ) | | | | ( ) | | | | | ( ) x z x y z y z r r r 有相对误差估计 当 y ≈ x 时,有 z≈0,计算结果的相对误差限可能很大, 导致数值计算结果的有效数字位数减少
要防止大数“吃掉”小数 一个绝对值很大的数和一个绝对值很小的数直接相加 时,很可能发生所谓“大数吃小数”的现象。 例如,a=1013,b=4,设想这两个数在具有12位浮点数 计算机系统(12位有效位数系)中相加 a+b=1013+4=1.0000000000000×1013 +0.0000000000004×1013 实际加法操作如下 1.000000000000×1013+0.000000000000×1013 =1.000000000000×1013 4/13
4/13 § 要防止大数“吃掉”小数 一个绝对值很大的数和一个绝对值很小的数直接相加 时,很可能发生所谓“大数吃小数”的现象。 例如,a= 10 13,b= 4,设想这两个数在具有12位浮点数 计算机系统(12位有效位数系)中相加 a + b = 1013 + 4 = 1. 0000000000000 ×1013 +0. 0000000000004 ×1013 实际加法操作如下 1. 00000000000 0 ×1013 + 0. 00000000000 0 ×1013 = 1. 00000000000 0 ×1013
二、数值计算中的一些基本原则 尽量减少计算工作量 在考虑算法时应注意简化计算步骤,减少运算次数 计算工作量小的算法不仅节约运行时间,而且使误差 积累小。 例2设计算法用于计算多项式 P (x)=ao+ax+ax+...+ax" 5/13
5/13 § 尽量减少计算工作量 二、数值计算中的一些基本原则 在考虑算法时应 简化计算步骤,减少运算次数 。 n Pn x a a x a x an x 2 0 1 2 ( ) 计算工作量小的算法不仅节约运行时间,而且使误差 积累小。 例2 设计算法用于计算多项式