浮点相对误差界限,需要澄清

时间:2016-08-03 14:09:56

标签: math floating-point precision floating-accuracy

我正在阅读David Goldberg的每个计算机科学家应该知道的浮点运算论文,我对其中一个不等式(2)感到困惑:

(1/2)B^-p <= (1/2)ulp <= (B/2)B^-p

我按照左手侧和右手侧的推理,但不是中间。据我了解,如果你读取两个相同符号的浮点数作为两个整数并减去它们,那么ULP基本上就是你得到的。因此,第一层混淆是这些不等式不具有相同的单位,ULP与仅有效数字。但我猜他的意思是,如果我们将一个ULP翻译成一个有效数字,我们在最后一个地方只有1并将其除以2.那么我想到了如何用B来表达这个数字。

对于有效数字d.dd...dd,我希望1 ulp的有效数为0.00...01(我在这里使用Goldberg这个令人困惑的数字符号......即使那些d&# 39; s没有下标他们是不同的)。由于p是有效数字中的位数,我们正在寻找将最后一位数设置为1(或通常为B/2),我希望:

1ulp = 1.00 * B^(-p+1)

+1是因为小数点左边的数字是p的一部分。如果我用原来的不平等代替我:

(1/2)B^-p <= (1/2)B^(-p+1) <= (B/2)B^-p
(1/2)B^-p <= (1/2)B^(-p+1) <= ((B*B^(-p))/2)
(1/2)B^-p <= (1/2)B^(-p+1) <= ((B^(-p+1))/2)
(1/2)B^-p <= (1/2)B^(-p+1) = (1/2)B^(-p+1)

然后中间和右侧总是相等,这让我觉得我做错了什么。有什么想法吗?

0 个答案:

没有答案