数值分析第五版计算实习题_数值计算笔记-误差分析

727680a6766504b53b06586d8b8d01bf.png

1.1 概述

1. 定义数值计算目标: 寻找一个能迅速完成的(迭代算法)算法,同时估计计算结果的准确度。

1.2 误差分析基础

1. 误差来源:截断误差、舍入误差、数学建模时的近似、测量误差(数据误差)

2. 误差的分类

绝对误差

equation?tex=e%28%5Chat%7Bx%7D%29+%3D+%5Chat%7Bx%7D+-+x ;误差限

相对误差

equation?tex=e_r%28%5Chat%7Bx%7D%29+%3D+%5Cfrac%7B%5Chat%7Bx%7D+-+x%7D%7Bx%7D 或者
equation?tex=e_r%28%5Chat%7Bx%7D%29+%3D+%5Cfrac%7B%5Chat%7Bx%7D+-+x%7D%7B%5Chat%7Bx%7D%7D ;相对误差限

3. 定义有效数字:从左到右第一位非零数字开始的所有数字

定理:设x与其近似值

equation?tex=%5Chat%7Bx%7D 的第一位有效数字相同,均为
equation?tex=d_0 ,若
equation?tex=%5Chat%7Bx%7D 有p位正确的有效数字,则其相对误差满足:

equation?tex=+%7Ce_r%28%5Chat%7Bx%7D%29%7C+%5Cleq+%5Cfrac%7B1%7D%7Bd_0%7D+%5Ctimes+10%5E%7B-p+%2B+1%7D+

定理:设对x保留p位有效数字后得到近似值

equation?tex=%5Chat%7Bx%7D ,则相对误差满足:

equation?tex=+%7Ce_r%28%5Chat%7Bx%7D%29%7C+%3D+%5Cfrac%7B1%7D%7B2d_0%7D+%5Ctimes+10%5E%7B-p%2B1%7D+

定理:设x的第一位有效数字为

equation?tex=d_0 ,若近似值
equation?tex=%5Chat%7Bx%7D 的相对误差满足
equation?tex=%7Ce_r%28%5Chat%7Bx%7D%29%7C+%5Cleq+%5Cfrac%7B1%7D%7B2%28d_0+%2B+1%29%7D+%5Ctimes+10%5E%7B-p+%2B+1%7D
equation?tex=%5Chat%7Bx%7D 具有p位正确的有效数字,或者在保留p位有效数字后
equation?tex=%5Chat%7Bx%7D+%3D+x

定理:若x的近似值在

equation?tex=%5Chat%7Bx%7D 相对误差满足
equation?tex=%7Ce_r%28%5Chat%7Bx%7D%29%7C+%5Cleq+%5Cfrac%7B1%7D%7B2%7D+%5Ctimes+10%5E%7B-p%7D ,则
equation?tex=%5Chat%7Bx%7D 至少有p位正确的有效数字,或者在保留p位有效数字后
equation?tex=%5Chat%7Bx%7D+%3D+x

应用:可以不严谨的说如果相对误差不超过

equation?tex=10%5E%7B-p%7D 怎有p位正确的有效数字

4. 区分:精度(precision):有效数字的位数有关

准确度(accuracy):与准确的有效数字的位数有关

5. 数据传递误差与计算误差:考虑

equation?tex=f%28x%29%2C+f%28%5Chat%7Bx%7D%29%2C+%5Chat%7Bf%7D%28%5Chat%7Bx%7D%29

计算误差:计算过程中的近似引起的误差,例

equation?tex=%5Chat%7Bf%7D%28%5Chat%7Bx%7D%29+-+f%28%5Chat%7Bx%7D%29

数据传递误差:单纯由输入数据误差引起的计算结果的误差,例

equation?tex=f%28%5Chat%7Bx%7D%29+-+f%28x%29

6. 截断误差:实际结果,算法准确计算得到的结果的差

舍入误差:算法精确计算得到的结果,算法经有限精度计算的得到结果的差

7. 敏感性:输入数据的扰动对问题得影响程度得大小

条件数

equation?tex=+cond+%3D+%5Cfrac%7B%7C%7C%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E7%9A%84%E7%9B%B8%E5%AF%B9%E5%8F%98%E5%8C%96%E9%87%8F%7C%7C%7D%7B%7C%7C%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E7%9A%84%E7%9B%B8%E5%AF%B9%E5%8F%98%E5%8C%96%E9%87%8F%7C%7C%7D+

计算公式

equation?tex=cond+%3D+%7C%5Cfrac%7B%5Bf%28%5Chat%7Bx%7D%29+-+f%28x%29%5D+%2F+f%28x%29%7D%7B%28%5Chat%7Bx%7D+-+x%29+%2F+x%7D%7C+

推导可得

equation?tex=%7C%7C%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E7%9A%84%E7%9B%B8%E5%AF%B9%E5%8F%98%E5%8C%96%E9%87%8F%7C%7C+%3C+cond%7C%7C%E6%95%B0%E6%8D%AE%E4%BC%A0%E9%80%92%E7%9A%84%E7%9B%B8%E5%AF%B9%E8%AF%AF%E5%B7%AE%7C%7C%5C+cond+%3D+%7C%5Cfrac%7Bxf%27%28x%29%7D%7Bf%28x%29%7D%7C+

反问题(字面理解):原问题是y = f(x),反问题是给定y确定x。反问题的条件数就是探讨反函数

equation?tex=f%5E%7B-1%7D%28y%29 的敏感性。可以化简得出反问题得条件数和原问题得条件数互为倒数,即
equation?tex=cond_%7Bf%5E%7B-1%7D%7D+%3D+%5Cfrac%7B1%7D%7Bcond_%7Bf%7D%7D

8. 算法稳定性

理解:算法很多是迭代得,每一步算法都会不断放大进而传导误差,如果传导误差不会特别大则算法稳定。

分析算法稳定性工具为误差限的四则运算,

equation?tex=%5Chat%7Bx%7D_1%2C+%5Chat%7Bx%7D_2 的误差限为
equation?tex=%5Cepsilon_1%2C+%5Cepsilon_2 ,误差限的四则运算如下:

equation?tex=+%5Cbegin%7Bcases%7D+%5Cepsilon%28%5Chat%7Bx%7D_1+%2B+%5Chat%7Bx%7D_2%29+%3D+%5Cepsilon_1+%2B+%5Cepsilon_2+%5C%5C+%5Cepsilon%28%5Chat%7Bx%7D_1%5Chat%7Bx%7D_2%29+%3D+%7C%5Chat%7Bx%7D_2%7C%5Cepsilon_1+%2B+%7C%5Chat%7Bx%7D_1%7C%5Cepsilon_2%5C%5C%5Cepsilon%28%5Chat%7Bx%7D_1+%2F+%5Chat%7Bx%7D_2%29+%3D+%5Cfrac%7B%7C%5Chat%7Bx%7D_2%7C%5Cepsilon_1+%2B+%7C%5Chat%7Bx%7D_1%7C%5Cepsilon_2%7D%7B%7C%5Chat%7Bx%7D_2%7C%5E2%7D+%5Cend%7Bcases%7D+

简单的例题

计算黄金比例的20次方

equation?tex=%5Cphi+%3D+%28%5Csqrt5+-+1%29+%2F+2%2C+%5Cphi%5E%7Bn+%2B+1%7D+%3D+%5Cphi%5E%7Bn%7D+-+%5Cphi%5E%7Bn+-+1%7D ,初始的近似值x = 0.618034,对于误差限有一下迭代公式:

equation?tex=%5Cbegin%7Bcases%7D+e_%7Bn+%2B+1%7D+%3D+e_%7Bn+-+1%7D+-+e_%7Bn%7D%5C%5C+e_0+%3D+0%2C+e_1+%3D+x+-+%5Cphi%5C+%5Cend%7Bcases%7D%5C%5C+e_2+%3D+-e_1%5C%5C+e_3+%3D+2e_1%5C%5C+e_4+%3D+-3e_1%5C%5C+%5Cvdots+

可以看到系数在以斐波那契数列增长,因此算法不稳定。

1.3 减少误差的方法

避免“大数吃小数”:在编程中很常见的

equation?tex=10%5E%7B10%7D+%2B+1 这种问题;

避免大小相近的数相减:例如1923.05 - 1921.37 = 1.68,这种情况下前两个大数末尾几位已经不精确,在计算过程中又“丢去”高位,这样结果更加不精确。

总结上面的所有对误差的讨论,可以得到对一个问题误差分析如下图:

cc6b376756b99711abdccc30e54240ff.png
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值