相对误差和摆动

时间:2013-10-29 03:34:44

标签: floating-point

下面的完整背景是What Every Computer Scientist Should Know About Floating-Point Arithmetic的第8页。在下面说明“通常,当基数为b时,以ulps表示的固定相对误差可以摆动一个因子,最多为b。”

有人能详细证明这一点吗?它究竟是什么意思“以ulps表示的固定相对误差可以摆动多达b的因子。”;如果相对错误已修复那么它如何摆动或改变?

  

相对误差总是受e限制,这被称为机器epsilon。

     

...

     

说明两者之间的区别   ulps和相对误差,考虑真实   数字x = 12.35。它是近似的   由enter image description here = 1.24 x 10 ^ 1。误差为0.5 ulps;该   相对误差为0.8 e。接下来考虑一下   计算   8X。确切的值是8 x =   98.8,而计算值为8 enter image description here   = 9.92 x 10 ^ 1。错误现在是4.0 ulps,   但亲戚   错误仍然是0.8 e。该   以ulps测量的误差是八次   更大,即使相对误差是   相同。一般来说,当基数为b时,   固定的亲戚   以ulps表示的错误   可以摆动多达b倍。相反,如同eq。 (2)显示,固定误差   1/2 ulps导致相对误差   b。可以摇晃。

1 个答案:

答案 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的比率。

致辞2013年10月30日,编辑:

  

这究竟是什么意思“以ulps表示的固定相对误差可以摆动多达b的因子。”;如果相对误差是固定的,那么它如何摆动或改变?

该错误被认为是固定数量的ULP。但是,相对于浮点值,ULP的值不是固定的或常数是真正固定的或恒定的。

这里只有语言问题。将ULP称为“固定相对误差”并不准确。然而,人们有时会在ULP中表达误差范围或误差量,因为浮点数量值的性质是值,而那些量子是ULP。

ULP 大约相对错误。它在整个浮点格式范围内保持相同的范围。考虑一个三位十进制格式:

  • 在1.00到9.99的间隔中,ULP的绝对值是.005。其相对于区间中数字的值的范围为.005到(几乎).0005。
  • 在1,000,000至9,990,000的区间内,ULP的绝对值为5,000。其相对于区间中数字的值的范围为.005到(几乎).0005。
  • 在1.00•10 -100 至9.99•10 -100 的区间内,ULP的绝对值为.005•10 -100 < / SUP>。其相对于区间中数字的值的范围为.005到(几乎).0005。

如您所见,ULP相对于浮点数的值始终保持在一个小间隔内。因此,它用作相对误差的近似值。

浮点运算中的表达式相对误差以b为因子摆动来自两个数学事实:

  • 当您使用浮点运算并计算或推导出可能出现的错误的证据时,您会发现自己以ULP为单位表示错误,因为浮点格式的量化会导致ULP中的界限或半个ULP。
  • 对于浮点值x,x除以x的ULP值随着浮点格式的单个指数间隔中的x变化而变化b因子。当指数改变时,值ULP(x)/ x重置。