【问题标题】:Rounding error in floating-point arithmetic浮点运算中的舍入误差
【发布时间】:2018-09-01 11:29:45
【问题描述】:

IEEE-754浮点运算中有几种舍入模式:

  • 四舍五入:RN(x) 是最接近 x 的浮点数。
  • 向下取整:RD(x) 是小于或等于 x 的最大浮点数。
  • 向上取整:RD(x) 是大于或等于 x 的最小浮点数。
  • 向零舍入:RZ(x) 是最接近 x 且幅度不大于 x 的浮点数,

如果在使用四舍五入进行某些计算时获得较大的绝对舍入误差(接近理论界限),这是否意味着如果使用四舍五入?

我想澄清一下我的问题:

假设我们需要使用带浮点边界的区间算术来近似 x 的值,即计算数字 ab 这样 a .

例如,x = x1+x2+...+xn,其中 x1,x2,...,xn 是有限正浮点数。

  1. 首先,a 是通过向下舍入计算的: a=RD(x1+x2+...+xn).
  2. 然后,通过四舍五入计算 b: b=RU(x1+x2+....+xn).

接下来,假设我们知道

x - a

还有那个

b - x

其中 x 是精确的总和。

哪个上限对 [a, b] 区间的长度有效:ba 或 ba 2每股收益

【问题讨论】:

    标签: floating-point rounding ieee-754 rounding-error


    【解决方案1】:

    是的。

    假设精确的数学结果 x 介于两个有限可表示值 ab 之间,其中 a b。误差的最小上限是b-a。设 e 为四舍五入时的误差(因此 eb-x),并设成几乎b-a。那么向下取整时的误差是b-a-e,所以相对b-一个。

    如果 ab 都不是有限的,那么:

    • b为+∞,向上取整误差为无穷大,向下取整误差为有限,因此比较小,或
    • a为-∞,向上取整误差为有限,向下取整误差为无穷大。

    在最后一种情况下,四舍五入时的误差在您定义的意义上不会很大,因为它必须是有限的,因此在这种情况下不能接近理论界限,即∞。因此,此区间内没有满足您的先决条件的结果。

    【讨论】:

    • 谢谢!也就是说,如果 x 是精确结果,a 是向下舍入计算的结果,b 是向上舍入计算的结果,并且已知 |x – a|
    • @KonstantinIsupov:正如我的回答中所使用的,e 正是 x 向上舍入到 b 时发生的错误我>。因此 e 等于 b - x。它不是错误的界限;这是错误。
    • 我说的是另一个案例。令 EPS 为有向舍入的误差上限,即(理论上)已知 |x – a| 和 |x - b| ,其中 x 是精确结果,a 是向下舍入计算的结果,b 是计算结果与四舍五入。 |b-a| 的界限是什么:|b-a| 或 |b-a| (这里只考虑有限的数字)?
    • @KonstantinIsupov:EPS b - a。一个永远不会移动超过两个相邻值之间的距离。移动更多,甚至更多,将跨越一个可表示的值。但舍入总是朝着一个方向或另一个方向最接近的值移动;它不会超出可表示的值。 (在定向舍入模式中,方向固定,舍入移动小于 b - a。在舍入到最近模式中,我们根据哪个方向选择方向way 具有更接近的可表示值,四舍五入最多移动 ½(b - a)。)
    • 知道以下不等式始终成立,我如何估计 ba 之间的最大差异:|xa| 和 |xb|?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 2019-03-27
    • 2020-08-04
    • 2015-09-02
    • 1970-01-01
    • 2018-08-17
    相关资源
    最近更新 更多