摘要 本节介绍相减相消概念:两个相近的数相减,则前面相同的数字会相互抵消。在较为复杂的计算过程中,它往往导致损失精度。
假设
它们有 8 位相同有效数字。那么,它们的差为
这样,相减的过程中抵消掉 8 位数字。即发生了相减相消。为了保留原有的位数,在结尾又添加了 8 个0。
上面的案例虽然损失了前面的有效数字,但是并没有损失精度。
遗憾的是,有时,会损失精度。
例1. 请看计算机的错误计算(十二)中的一个计算案例(保留30 位有效数字)。
已知
,
则有
下面不妨再分析一下其计算过程。
显然,由于被减数
与减数
具有 20 位相同的数字
,
所以,在相减时,前面的 20 位数字就“相消”了。既然没有了,那么剩下位数不足 30 位,所以需要在其后添加 20个0以补足位数。这样
的输出不再是正确答案,而是错误答案
于是,相减相消导致精度的损失(实际是20 位有效数字)。
前面计算机的错误计算(四)与(九)中的一元二次方程 与 Tanh函数等的计算问题均是由于相减相消导致的错误计算。
最后,请问:如何避免相减相消(带来的精度损失)?