以下引用来自What Every Computer Scientist Should Know About Floating-Point Arithmetic的第8页。有人可以解释在不等式中涉及1/2 ulp的最后一个方程是如何产生的吗?
要计算对应于1/2 ulp的相对误差,请观察当实数用最接近的可能浮点数近似时
绝对误差可以与
一样大
其中β'是数字β/ 2。此错误为
由于形式的数字都具有相同的绝对误差,但其值介于β^ e和βxβ^ e之间,因此相对误差范围
和。那是
答案 0 :(得分:1)
该行试图说明ULP对应的一半的相对误差在所示的两个边界之间,这是在前面的行中计算的。但是,不是说对应于半个ULP的相对错误在这些边界之间,而是说半个ULP 在这些边界之间。这是一个错误,除非我们对“ULP”的含义感到宽容。我会写“1/2 ULP / x”而不是“1/2 ULP”,其中x是正在考虑的数字。
(实际上,当我写关于ULP时,我经常写ULP(x)来指示ULP是特定值的ULP,因为最后一个单位的值根据数量而变化。)