Appearance
19.8.2 计算机计算中的数值问题
19.8.2.1 引言、误差类型
计算机计算的一般性质与手工计算基本相同, 然而某些方面需要特别注意, 因为精度来自数的表示和关于计算机误差的判断. 更进一步, 计算机要比人类手工能做的实施多得多的计算步骤.
因此, 存在如何影响和控制误差的问题, 例如在数学上等价的方法中选用最适当的数值方法.
在后面的讨论中用到如下符号,其中
绝对误差
相对误差
记号
也经常用到.
19.8.2.2 规范化十进制数和舍入
1. 规范化十进制数
每个实数
的十进制数. 这里由数字
因为真实的计算机只能处理有限多的字节,故必须限制尾数数字的固定数目
由舍入引起的绝对误差为
2. 基本运算和数值计算
每个数值过程都是一系列基本运算. 特别用有限位浮点表示提出问题. 这里给出简要综述. 设
(1) 加法 若
若
和
则将十进制小数点向左移一位而指数增加 1.
(2) 减法 如同在加法的情况均衡指数, 随后尾数相减. 若
以及
则将十进制小数点右移
此例显示了减法的临界情况. 因为位数有限 (这里是 4), 从右边引进零代替准确字符.
(3) 乘法 指数相加而尾数相乘, 若
则十进制小数点向右移一位, 且指数减少 1.
(4)除法 指数相减而尾数相除. 若
则十进制小数点向左移一位, 且指数增加 1.
(5) 结果的误差 在假定无误差项的四种基本运算中, 结果的误差是舍入误差. 对于位置为
(6) 减法相消 如上所述, 几乎相等的浮点数的减法是临界运算. 若有可能, 应通过改变运算阶或利用某种等式来避免这种情况.
19.8.2.3 数值计算的精度
1. 误差类型
数值方法有误差. 有几类误差, 最后结果的总误差正是由这些误差积累的 (图 19.18).

2. 输入误差
(1)输入误差的概念 输入误差是由不准确的输入数据产生的误差. 输入数据的轻微不准确称为扰动. 确定输入数据误差称为误差计算的直接问题. 其反问题如下: 输入数据可有多大的误差能够保证最终的输入误差不超过可以接受的允许值. 在相当复杂的问题里估计输入误差是非常困难且通常几乎是不可能的. 一般对实值函数
近似值是扰动了的输入数据. 这里也考虑高斯误差传播定律 (参见第 1114 页 16.4.2.1).
(2)简单算术运算的输入误差 已知简单算术运算的输入误差. 对四种基本运算用 (19.268) (19.270) 的记号:
公式表明: 对于乘法和除法, 输入数据的相对误差小, 导致结果的相对误差也小. 对于加法和减法,若
3. 方法的误差
(1)方法误差的记号 方法误差源于理论上连续的现象作为极限以不同的方式被数值逼近的事实. 因此, 在极限过程中有截断误差 (例如在迭代法中) 及在用有限离散系 (例如数值积分) 逼近连续现象时的离散误差. 方法误差与输入和舍入误差无关, 因此, 仅在关系到应用解法的方法论时研究方法误差.
(2) 应用迭代法 若使用迭代法, 可能出现两种情况: 得到问题的正确解或错误解. 也可能尽管有解但不能用迭代法得到.
为使迭代法更清晰安全, 应考虑如下建议:
a) 为避免 “无穷迭代”, 若步数超过预定值即停止过程 (即尚未达到要求的精度便停止).
b) 应在屏幕上以数值或者图表的形式跟踪中间结果的位置.
c) 应该用到解的所有已知性质如梯度、单调性等.
d) 应研究变量和函数计量的可能性.
e) 应通过改变步长、截断条件、初始值等进行多种试验.
4. 舍入误差
产生舍入误差是因为中间结果被舍入. 这对按精度要求判断数学方法时有本质的重要性. 舍入误差与输入误差和方法误差一起决定给定的方法是强稳定、弱稳定或不稳定. 若总误差随着步数增加分别减少、有相同的阶或增加, 便发生强稳定、弱稳定或不稳定.
在不稳定性方面, 我们区别舍入误差和离散误差 (数值不稳定) 以及理论上准确的计算中初始数据误差 (自然不稳定) 的灵敏度. 若数值不稳定不大于自然不稳定, 则计算过程是合适的.
对于舍入误差的局部误差传播, 即从一个计算步到下一步的误差传递, 可使用在输入误差中用过的同样的估计过程.
5. 数值计算的例子
上述某些问题用数值例子来说明.
**a)
**i)
ii) 用直接法难免把
通过这一变换后, 则只需考虑 8 项.
其初值用
a) 天然不稳定 准确解
其中
这意味着微分变差方程
由
对
b) 梯形公式的误差研究 当
梯形公式为
对给定微分方程用上述公式, 成立
其中
若
c) 在 b) 中的输入误差 设准确和近似的初值相同. 现研究当
因为
故
问题是该数值解法使用了比相应的微分方程的阶更高阶的差分.