第三节 数值计算中需要注意的问题.pptVIP

  • 20
  • 0
  • 约1.47千字
  • 约 12页
  • 2019-10-15 发布于湖北
  • 举报
数学学院 信息与计算科学系 第三节 设计算法时应注意的原则 一、简化计算步骤, 减少运算次数 计算多项式的值: 每项 ak xk 有k 次乘法运算, 因此计算 Pn (x) 共需 次乘法和n 次加法运算。 如将 Pn (x) 写成: 例1 用递推算法: 最终 Pn (x)=un 共需n 次乘法和n 次加法运算。 一般地要注意: 能在循环外计算, 就不要放在循环内计算。 二、 注意避免两个相近数的相减 如用四位有效数字计算: 例2 结果只有一位有效数字; 两个相近的数相减, 有效数字会大大损失。 如改为: 有四位有效数字, 新算法避免了两个相近数的相减。 三、防止大数 “吃掉” 小数 例3 解 用五位十进制计算机进行计算: 0.1被大数“吃掉”了,从而有 计算 如改为 0.1 就没有被吃掉。 这也是构造算法时要注意的问题, 避免重要的参数被吃掉。 四、避免除数的绝对值远小于被除数的绝对值 当| x || y | 时, 舍入误差会扩大 例4 很小的数作除数有时还会造成计算机的溢出而停机。 的舍入误差均为 , 而 的舍入误差为: ,则 五、使用数值稳定的算法 用分部积分公式得递推公式: 例5 In=1-nIn-1 , 在运算过程中,舍入误差能控制在某个范围内的算法称为数值稳定的算法,否则就称为不稳定的算法. 用四位有效数字计算: 近似值 的递推公式: 误差 的递推公式: 算法 一 代入得下表 于是 与精确值已经面目全非。 5 6 7 8 9 n 0.1408 0.1120 0.2180 -0.7280 7.5520 0.14553? 0.12680? 0.11238? 0.10093? 0.09161? 0.6321 0.3678 0.2642 0.2074 0.1704 0.63212? 0.36787? 0.26424? 0.20727? 0.17089? 0 1 2 3 4 近似值 精确值 In 近似值 精确值 In n 算法一 由于计算 有误差 不计中间再产生的舍入误差 到 I8 时 误差扩大了4万倍, 因而该算法是不稳定的。 可以估计出 故 算法二 误差 则 如果递推式改为 In-1 =(1-In )/n 由 列表如下 4 3 2 1 0 n 0.1709 0.2073 0.2642 0.3679 0.6321 0.17089? 0.20272? 0.26424? 0.36787? 0.63212? 0.1000 0.1000 0.1125 0.1268 0.1455 0.09161? 0.10093? 0.11238? 0.12680? 0.14553? 9 8 7 6 5 近似值 精确值 In 近似值 精确值 In n 故该算法是稳定的。 若计算 I9 有误差 , 由 其传播到 引起 的误差仅为 数学学院 信息与计算科学系

文档评论(0)

1亿VIP精品文档

相关文档