Chapter1:Mathematical Preliminaries
1.2 Roundoff Errors and Computer Arithmetic
一个简单的引入discussion
截断误差:用截断的或有限的求和来近似无穷级数的和所引起的误差。直接剪切!.jpg
舍入误差:执行实数计算时产生的误差。这是因为在机器中执行的算术只涉及有限位数的数字。
舍入误差是由于计算机有限的数字精度导致的,因为你丢掉了某些位;而截断误差是由于用有限的项来近似本应无限的数学过程所导致的。
chopping(截断):剪切了.jpg,截去后面的所有位置。
rounding(舍入):四舍五入。
对于\(y = 0.d_1 d_2 d_3 \dots d_kd_{k+1}d_{k+2} \dots * 10^n\),舍入到\(y = 0.d_1 d_2 d_3 \dots d_k\).
\(fl(y) = \left\{\begin{matrix}0.d_1 d_2 d_3 \dots d_k -> chopping\\ chop(y+5*10^{n-(k+1)}) -> rounding \end{matrix}\right.\)
\(p^*\)是对于\(p\)的一个近似,绝对误差就是\(|p^*-p|\),相对误差就是\(\frac{|p^*-p|}{|p|}\)
对于近似数\(p^*\),我们说它是\(p\)的精确到\(t\)位,如果\(\frac{|p^*-p|}{|p|} \leq 5 * 10^{-t}\)
这个5还是有必要关注的,这是使用rounding舍入得到的。
这个是一个示例,相当于把一个给定的值代入一个表达式,然后舍入到某特定位数。
这里注意每一个计算都是从前开始的,如何理解,比如\(6.1x^2\)是从6.1乘上了已经得到的22.1计算,而非从零开始的直接计算。
这里发现不论舍入还是截断误差都挺大的,因此我们想到减少计算乘法的次数,这是有效的。
1.3 Algorithms and Convergence
稳定的算法就是初始数据的微小变化只会对最终的结果产生微小变化,不稳定就是会产生巨大扰动。
设\(E_0 > 0\)表示初始误差,\(E_n\)表示后续n次操作后的误差大小。如果\(E_n \approx CE_0\),其中\(C\)是独立于\(n\)的常数,那么误差的增长是线性(linear)的。如果\(E_n \approx C^nE_0\),对于某些\(C > 1\),则误差的增长称为指数(exponential)增长。
指数级需要避免,线性级是可以接受的。
数学逻辑上正确的分步积分到实际计算时得到了明显不符合预期结果的情况。我们推导得到\(|E_n| = |I_n - I_n^*| = |(1-nI_{n-1})-(1-nI_{n-1}^*)| = n|I_{n-1} - I_{n-1}^*| = n!|E_0|\),因此该算法是不稳定的。
将算法更改为先计算\(I_n\)后变为稳定的。