Chapter 1 数学基础 | Mathematical Preliminaries¶
约 1160 个字 1 张图片 预计阅读时间 6 分钟
本讲概述
本讲主要介绍数值计算中的误差类型和误差分析,以及IEEE 754浮点数表示。
1.2 舍入误差和计算机算术 | Roundoff Errors and Computer Arithmetic¶
1.2.1 截断误差和舍入误差 | Truncation Error and Roundoff Error¶
-
截断误差: 使用截断的(或者说有限的)求和来近似无穷级数的和->产生的误差
-
理论:
-
计算机:
-
-
舍入误差: 当计算机执行实数计算时产生的误差。这是因为计算机中的算术运算涉及到的数字只有有限位数。
- 理论:
- 计算机:
- 理论:
1.2.2 截断法和舍入法 | Chopping and Rounding¶
使用舍入法或截断法产生的误差都叫做舍入误差。
- Chopping: 0.1119 -> 0.111,直接截断
- Rounding: 0.1119 -> 0.112,四舍五入
函数表示
Given a real number
1.2.3 绝对误差与相对误差 | Absolute error and relative error¶
Denote
- Absolute error:
- Relative error:
近似产生的误差
chopping:
Rounding:
误差产生
- 两个近乎相等的数相减二导致有效数字的相消,例如:
,两者本来有9位有效数字,但是相减后只剩下1位有效数字。 - 如果有限位的表示或计算产生了误差,则除以一个小数(或者乘以一个大数)会放大绝对误差。
误差计算举例:
Evaluate
exact | |||||
Chopping | |||||
Rounding |
Exact value:
Chopping:
- Relative error:
Rounding:
- Relative error:
可见,有时候舍入误差比截断误差更大。
但现在的误差还是太大了!介绍——秦九韶算法!
乘法较多会导致式子的误差较大,此时可以使用秦九韶算法(其实就是不断提取
把一个多项式
然后从最内层开始计算。
将上例改写成秦九韶算法:
Chopping:
Relative error:
Rounding:
Relative error:
可见,此时误差明显减小了。
1.3 算法和收敛性 | Algorithms and Convergence¶
稳定性 | Stability¶
一个算法,如果初始数据的小变化会导致最终结果的小变化,则称为稳定(stable);否则称为不稳定(unstable)。
一个算法,如果只有在某些初始数据的选择下才是稳定的,则称为条件稳定(conditionally stable)。
误差增长 | The growth of errors¶
假设
- 如果
,则称为线性增长(linear growth)。
线性增长的误差通常是无法避免的,当
- 如果
,则称为指数增长(exponential growth)。
指数增长的误差应该避免,因为即使
收敛速度 | Convergence rate¶
使用
假设
对于足够小的
我们通常取
求当
解:
所以收敛速度为
1.4 IEEE 754 FLOATING POINT REPRESENTATION¶
二进制的科学计数法:
在计算机里有两种表示方法,分别是Single(32位)和double(64位)。均为下图的形式。
代表符号位(sign bit)。 为 表示非负数, 为 表示负数。- 有效位数(
) 中 是默认的,我们只存储小数点后面的位数(即Fraction)。 代表尾数部分(也称作mantissa)。- Single:
- Double:
表示指数部分(也称作characteristic)。- Single:
- Double:
- excess representation(偏移表示法)
actual exponent bias,其中:- Single:
- Double:
- Single:
- 指数为全
和全 时用作特殊值处理
- Single:
Single & Double的值域
Single的值域
- 最小值:
- Exponent = 00000001, Fraction = 000...000
-
-
最大值:
- Exponent = 11111110, Fraction = 111...111
-
Double的值域
- 最小值:
- Exponent = 00000000001, Fraction = 000...000
-
-
最大值:
- Exponent = 11111111110, Fraction = 111...111
-
Single & Double的十进制精度
Single的十进制精度
- 最小分度:
- 所以约为小数点后六位有效数字
Double的值域
- 最小分度:
- 所以约为小数点后十六位有效数字
十进制->IEEE754 浮点数
Represent
- Convert to binary:
- Normalize:
- Sign bit:
- Exponent:
- Single:
- Double:
- Single:
- Fraction:
- Single:
,共23位 - Double:
,共52位 IEEE 754 Representation: - Single:
- Double:
- Single:
IEEE754 浮点数->十进制
What number is represented by the single-precision float 11000000101000…00
- Sign bit:
- Exponent:
- Actual exponent:
- Fraction:
- Significand:
Number: