数值方法笔记1:数字表示与误差分析

1 有意义数位概念与有意义数位损失

整数的二进制表示使用短除法,网上有很多文章,这里就不再过多赘述了。

提一嘴小数的二进制表示。下面列举了一个例子。

在这里插入图片描述
在表示数位的时候,我们使用一个符号sign,一个尾数mantissa,一个指数exponent。

在这里插入图片描述

IEEE-754 double-precision floating-point format给出了数的表示形式。

在这里插入图片描述

注意这种表示方法是非均匀分布的:

在这里插入图片描述
小数在不同的地方可以看到绝对误差是不一样的

在这里插入图片描述

然而我们发现相对误差是一样的,除了 0 ≤ x < x ˉ 0 0\le x<\bar{x}_0 0x<xˉ0这一段区间。相对误差都是 0.5 × 2 − 53 0.5\times 2^{-53} 0.5×253

在这里插入图片描述

  • 最小正值不是0
  • 绝对误差不同
  • 相对误差相同,引入机器精度(和尾数长度有关):
    m a c h i n e e p s i l o n = 2 − 53 ≈ 1 0 − 16 machine epsilon=2^{-53}\approx {10^{-16}} machineepsilon=2531016

所以计算机保存尾数是16位的小数,最大程度低保证了尾数的所有位。

机器数的定义为:尾数的第一个 d 1 = 1 d_1=1 d1=1
在这里插入图片描述
或者写作
在这里插入图片描述

对于计算机来说,尾数的长度m一般是固定的,

  • 单精度实数(32位):m=24, n=8。
  • 双精度实数(64位):m=53,n=11。
  • 但是对于浮点数,二进制小数点的位置一般不是固定的。

在这里插入图片描述

举个例子:

1 10 = 0.0 0011 ‾ two  = 0.0 0011 ‾ 001100110011 … t w o \frac{1}{10}=0.0 \overline{0011}_{\text {two }}=0.0 \underline{0011} 001100110011 \ldots_{t w o} 101=0.00011two =0.00011001100110011two

如果我们规定尾数长度为32位,则 x x x表示为。

x = 0.1100   1100   1100   1100   1100   1100   1100   110 0 t w o × 2 − 3 x=0.1100\,1100\,1100\,1100\,1100\,1100\,1100\,1100_{t w o} \times 2^{-3} x=0.11001100110011001100110011001100two×23

于是误差表示为:

e = ∣ 1 10 − x ∣ = 0. 100 ‾ two  × 2 − 35 ≈ 2.328306437 × 1 0 − 11 e=\left|\frac{1}{10}-x\right|=0 . \overline{100}_{\text {two }} \times 2^{-35} \approx 2.328306437 \times 10^{-11} e= 101x =0.100two ×2352.328306437×1011

对于24位尾数,8位指数的机器数,表示为:
在这里插入图片描述
最小分辨率为 2 − 127 2^{-127} 2127

机器误差举例:

在这里插入图片描述
计算精度: R = 0.0714 R=0.0714 R=0.0714

机器误差: R m = 0.5 × 2 − 4 ≈ 0.0313 R_{m}=0.5 \times 2^{-4} \approx 0.0313 Rm=0.5×240.0313

我们看到 R m < R R_{m}<R Rm<R,这是为什么呢?

1.1 怎么分析误差

x x x是精确数, x ′ x' x是数值计算的近似数。

定义绝对误差为:

E x = ∣ x − x ′ ∣ \mathrm{E}_{x}=|x-x'| Ex=xx

相对误差为:

R x = ∣ x − x ′ ∣ / ∣ x ∣ \mathrm{R}_{x}=|x-x'| /|x| Rx=xx∣/∣x

有意义的数位 d d d定义为:

R x = ∣ x − x ′ ∣ / ∣ x ∣ < 0.5 × 1 0 1 − d \mathrm{R}_{x}=\left|x-x^{\prime}\right| /|x|<0.5 \times 10^{1-d} Rx=xx/∣x<0.5×101d

例如:

在这里插入图片描述

有意义的数位为相对误差定义了一个离散的数字精度等级。它有什么用呢?

好比:

在这里插入图片描述
d=3。于是3.141592近似数3.14的前三位都是有效数字:3.14。

在这里插入图片描述
d=4。于是3.141592近似数3.1429的前四位3是有效数字:3.142。

对有意义数位的直观解释:

在这里插入图片描述

这表明虽然 R x R_x Rx不能反映在数字的表示中,但是可以通过绝对误差 E m E_m Em来反映(注意小数表示的十分位不能是0)。

另外要注意的是有意义的数位是从左往右第一个非零数字开始的:

在这里插入图片描述
根据上面的表达式我们有:

在这里插入图片描述

在最后一个式子中 E a = ∣ a − a ′ ∣ < 0.5 E_{a}=\left|a-a^{\prime}\right|<0.5 Ea=aa<0.5我们看到已经和m没有关系了。

在这里插入图片描述
我们把 R x R_x Rx得到的有意义数位记作 d R x d_{R_x} dRx【相对误差引起】,把 E m E_m Em得到的有意义的数位记作 d E m d_{E_m} dEm【尾数误差引起】。参见下面的例子我们得到: d E m = d R x + 1 d_{E_{m}}=d_{R_{x}}+1 dEm=dRx+1

在这里插入图片描述
看一下不同的尾数保留:

在这里插入图片描述

根据

在这里插入图片描述
我们让 d = d ′ − 1 = d E m − 1 d=d^{\prime}-1=d_{E_m}-1 d=d1=dEm1作为有效数字,于是有:

∣ 0. a 1 a 2 a 3 … a q − 0. a 1 ′ a 2 ′ a 3 ′ … a q ′ ∣ < 0.5 × 1 0 − d ⇔ E = ∣ x − x ′ ∣ < 0.5 × 1 0 m − d ( 注意 x ′ = ± 0 ⋅ a 1 a 2 … a n × 1 0 m , a 1 ! = 0 ) \begin{array}{l} \left|0 . a_{1} a_{2} a_{3} \ldots a_{q}-0 . a_{1}^{\prime} a_{2}^{\prime} a_{3}^{\prime} \ldots a_{q}^{\prime}\right| \quad<0.5 \times 10^{-d} \\ \Leftrightarrow E=\left|x-x^{\prime}\right|<0.5 \times 10^{m-d}\quad(注意x^{\prime}=\pm 0 \cdot a_{1} a_{2} \ldots a_{n} \times 10^{m}, a_{1} !=0) \end{array} 0.a1a2a3aq0.a1a2a3aq <0.5×10dE=xx<0.5×10md(注意x=±0a1a2an×10m,a1!=0)

下面来区分一下有意义数位(significant digit)有效数字(effective digit)

在这里插入图片描述

尽管他们的定义不一样,但是一般他们的数值是相等的(用到了 d = d E m − 1 和 d E m = d R x + 1 d=d_{E_{m}}-1和d_{E_{m}}=d_{R_{x}}+1 d=dEm1dEm=dRx+1推得: d = d R x d=d_{R_{x}} d=dRx)。

在这里插入图片描述

如果我们知道 d d d m m m就可以推知 E E E的范围:

在这里插入图片描述
如果我们知道 E E E m m m就可以知道近似数 x ′ x' x多少位是有用的
在这里插入图片描述

在这里插入图片描述

误差来源:

  1. 数学表达式的误差
    在这里插入图片描述
  2. 舍入和近似误差

在这里插入图片描述
3. 算术误差

在这里插入图片描述

2 逼近阶 与渐近记法

大O记号

在这里插入图片描述
在这里插入图片描述

大Θ的记号

在这里插入图片描述
大Ω记号

在这里插入图片描述

近似阶:

在这里插入图片描述

我们有四则运算法则:

在这里插入图片描述

3 误差传播与稳定性

四则运算的误差传递:
在这里插入图片描述
稳定和不稳定性
在这里插入图片描述
误差的增长,线性和指数

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值