在What Every Computer Scientist Should Know About Floating-Point Arithmetic的第9页,它说
当仅关注舍入误差的数量级时,ulps和e可以互换使用,因为它们最多相差b倍。例如,当浮点数错误n ulps时,这意味着污染数字的数量是log_b n。如果计算中的相对误差是n * e,那么
污染的数字= log_b n。
当错误为n ulps时,我可以填写详细信息以获取log_b n污染的数字。但关于相对错误的最后一句话的细节是什么?
答案 0 :(得分:1)
这只是一个近似值。 ε定义为ULP的一半可以达到的最大相对误差。根据第8页的定义,我们可以看到它的范围从1/2 ULP到β/ 2 ULP。虽然它有很大差异,但它与ULP具有相同的数量级。
由于 n ULP错误的“受污染数字数”是log β n ,因此它大致相同存在 n ε的错误。正如文本所述,这只是一个数量级的近似值。
(Goldberg的论文在某些方面是松散的,例如将数量级的近似值和标记错误称为“污染数字的数量”。即使是轻微的错误也可以改变任意数量的数字,因为添加一个数字会导致nines(十进制)序列以翻转为零。“污染数字的数量”是错误大小的描述,而不是实际的更改数字的数量。)