问题描述
X_hat 是 X 的近似值。它由 X_t 给出,使用 t 位截断 X。
求 X_t / X 的极限。
X_hat 和 X_t 以浮点二进制表示。 据我了解:
If t = 3 and X_hat = 1,X_t = 1.01
1/1 = 1 是上限吗?下限呢?
解决方法
以下假设问题是关于有效位(例如,以十进制为例,3141592
截断为 3 个有效数字将是 3140000
,并截断为 5 个有效数字将是 3141500
)。由于问题是关于相对误差,所以有没有小数点或在哪里有小数点都没有关系,所以可以不失一般性地假设这些数字是整数。
如果 X = 0
则 X̂ = X = 0
和 X̂ / X
未定义。
否则,如果 0 < X < 2^(t-1)
则 X
最多有 t-1
位有效位,并且截断使 X
保持不变,因此 X̂ = X
和 X̂ / X = 1
.
否则,如果 X >= 2^(t-1)
则 X
可以写成 X = 2^n q + r
其中 n >= 0
、2^(t-1) <= q < 2^t
和 0 <= r < 2^n
。 t
最左边的 X
位是 q
,因此 X
到 t
有效位的截断是 X̂ = 2^n q
。
然后X̂ / X = 2^n q / (2^n q + r) = 1 - 1 / (1 + r / (2^n q))
。表达式在 r
处减小,在 q
处增大,结合 r < 2^n
和 q >= 2^(t-1)
给出下界:
X̂ / X > 2^(n+t-1) / (2^(n+t-1) + 2^n)
= 1 - 1 / (1 + 2^(t-1))
对于固定的 n > 0
,从 r <= 2^n - 1
和 q >= 2^(t-1)
得出的确切下限是:
X̂ / X >= 2^(n+t-1) / (2^(n+t-1) + 2^n - 1)
= 1 - (2^n - 1) / (2^(n+t-1) + 2^n - 1)
= 1 - 1 / (1 + 2^(n+t-1) / (2^n - 1))
= 1 - 1 / (1 + 2^(t-1) / (1 - 1 / 2^n))
这个下界是针对对应于 X = 2^(n+t-1) + 2^n - 1
的 X̂ = 2^(n+t-1)
获得的。在极限 n → ∞
中,它降低到与上一步导出的 n
无关的下限。