下面的完整背景是What Every Computer Scientist Should Know About Floating-Point Arithmetic的第8页。在下面说明“通常,当基数为b时,以ulps表示的固定相对误差可以摆动一个因子,最多为b。”
有人能详细证明这一点吗?它究竟是什么意思“以ulps表示的固定相对误差可以摆动多达b的因子。”;如果相对错误已修复那么它如何摆动或改变?
相对误差总是受e限制,这被称为机器epsilon。
...
说明两者之间的区别 ulps和相对误差,考虑真实 数字x = 12.35。它是近似的 由 = 1.24 x 10 ^ 1。误差为0.5 ulps;该 相对误差为0.8 e。接下来考虑一下 计算 8X。确切的值是8 x = 98.8,而计算值为8 = 9.92 x 10 ^ 1。错误现在是4.0 ulps, 但亲戚 错误仍然是0.8 e。该 以ulps测量的误差是八次 更大,即使相对误差是 相同。一般来说,当基数为b时, 固定的亲戚 以ulps表示的错误 可以摆动多达b倍。相反,如同eq。 (2)显示,固定误差 1/2 ulps导致相对误差 b。可以摇晃。
答案 0 :(得分:7)
它与您给出的引号在同一页面上进行了演示,在“一般情况下,当基数为b时,以ulps表示的固定相对误差可以摆动多达b的因子。”
该段解释了从1.0000 ... 0•b e 到d.dddd ... d•b e 的数字,其中d是,正如我在这里使用的那样,数字b-1具有相同的ULP,因为ULP是最后一个数字的值,并且最后一个数字的值由b的指数(以及有效数字中的数字位数确定,这是固定的格式)。
这些数字跨越(几乎)b的比率,因为d.dddd ... d几乎是b,所以d.dddd ... d / 1几乎是b。但他们拥有相同的ULP。因此,一个ULP 相对的幅度跨越b的比率。
这究竟是什么意思“以ulps表示的固定相对误差可以摆动多达b的因子。”;如果相对误差是固定的,那么它如何摆动或改变?
该错误被认为是固定数量的ULP。但是,相对于浮点值,ULP的值不是固定的或常数是真正固定的或恒定的。
这里只有语言问题。将ULP称为“固定相对误差”并不准确。然而,人们有时会在ULP中表达误差范围或误差量,因为浮点数量值的性质是值,而那些量子是ULP。
ULP 大约相对错误。它在整个浮点格式范围内保持相同的范围。考虑一个三位十进制格式:
如您所见,ULP相对于浮点数的值始终保持在一个小间隔内。因此,它用作相对误差的近似值。
浮点运算中的表达式相对误差以b为因子摆动来自两个数学事实: