浮点运算中的舍入误差
Rounding error in floating-point arithmetic
IEEE-754浮点运算有几种舍入方式:
- 四舍五入:RN(x)是最接近x的浮点数。
- 向下舍入:RD(x) 是小于或等于 x 的最大浮点数。
- 四舍五入:RD(x) 是大于或等于 x 的最小浮点数。
- 向零舍入:RZ(x) 是最接近 x 且大小不大于 x 的浮点数,
如果在使用四舍五入进行一些计算时得到了很大的绝对舍入误差(接近理论界限),这是否意味着如果相同则误差会很小使用 舍入 ?
进行计算
我想澄清一下我的问题:
假设我们需要使用带浮点边界的区间算法来近似 x 的值,即计算数字 a和 b 这样 a <= x <= b.
例如,设x = x1+x2+...+xn,其中x1,x2,…,xn有限正浮点数。
- 首先,a 是向下舍入计算的:
a=RD(x1+x2+...+xn).
- 然后,通过四舍五入计算 b:
b=RU(x1+x2+....+xn).
接下来,假设我们知道
x - a <= EPS,
还有那个
b - x <= 每股收益,
其中 x 是精确的总和。
[a, b]区间长度的上限有效:b-a <= EPS or b-a <= 2EPS?
是的。
假设精确的数学结果 x 落在两个有限的可表示值之间,a 和 b, a < b。误差的最小上限是 b−a。设 e 为四舍五入时的误差(因此 e 为 b− x),令其接近b−a。那么四舍五入时的误差是b−a−e,所以相对于b−a.
如果 a 和 b 都不是有限的,则:
- b为+∞,向上舍入误差无穷大,向下舍入误差有限,比较小,或
- a为-∞,向上取整时误差有限,向下取整时误差无限大。
在最后一种情况下,向上舍入时的误差不能在您定义的意义上大,因为它必须是有限的,因此不能接近这种情况下的理论界限,即 ∞。所以这个区间内没有满足你先决条件的结果。
IEEE-754浮点运算有几种舍入方式:
- 四舍五入:RN(x)是最接近x的浮点数。
- 向下舍入:RD(x) 是小于或等于 x 的最大浮点数。
- 四舍五入:RD(x) 是大于或等于 x 的最小浮点数。
- 向零舍入:RZ(x) 是最接近 x 且大小不大于 x 的浮点数,
如果在使用四舍五入进行一些计算时得到了很大的绝对舍入误差(接近理论界限),这是否意味着如果相同则误差会很小使用 舍入 ?
进行计算我想澄清一下我的问题:
假设我们需要使用带浮点边界的区间算法来近似 x 的值,即计算数字 a和 b 这样 a <= x <= b.
例如,设x = x1+x2+...+xn,其中x1,x2,…,xn有限正浮点数。
- 首先,a 是向下舍入计算的: a=RD(x1+x2+...+xn).
- 然后,通过四舍五入计算 b: b=RU(x1+x2+....+xn).
接下来,假设我们知道
x - a <= EPS,
还有那个
b - x <= 每股收益,
其中 x 是精确的总和。
[a, b]区间长度的上限有效:b-a <= EPS or b-a <= 2EPS?
是的。
假设精确的数学结果 x 落在两个有限的可表示值之间,a 和 b, a < b。误差的最小上限是 b−a。设 e 为四舍五入时的误差(因此 e 为 b− x),令其接近b−a。那么四舍五入时的误差是b−a−e,所以相对于b−a.
如果 a 和 b 都不是有限的,则:
- b为+∞,向上舍入误差无穷大,向下舍入误差有限,比较小,或
- a为-∞,向上取整时误差有限,向下取整时误差无限大。
在最后一种情况下,向上舍入时的误差不能在您定义的意义上大,因为它必须是有限的,因此不能接近这种情况下的理论界限,即 ∞。所以这个区间内没有满足你先决条件的结果。