【问题标题】:Please explain Theorem 4 in What Every Computer Scientist Should Know About Floating-Point Arithmetic请解释每个计算机科学家应该知道的浮点运算中的定理 4
【发布时间】:2016-04-30 00:22:29
【问题描述】:

我正在阅读What Every Computer Scientist Should Know About Floating-Point Arithmetic。而且我发现了一个有趣的定理:(如果你已经读过这篇文章,你可以跳到最后一段。)


定理 4

如果使用以下公式计算 ln(1 + x):

当 0 ≤ x

这个公式适用于任何 x 值,但只对 x

左手因子可以精确计算,但右手因子 µ(x) = ln(1 + x)/x 在 x 加 1 时会出现较大的舍入误差。然而,µ 几乎是常数,因为 ln(1 + x) ≈ x。所以稍微改变 x 不会引入太大的错误。换句话说,如果 x̄ ≈ x,计算 xμ(x̄) 将很好地近似于 xμ(x) = ln(1 + x)。是否存在可以准确计算 x̄ 和 x̄ + 1 的 x̄ 值?有;即x̄ = (1x)1,因为这样1+x̄正好等于1x。


根据作者的说法,1 + x̄ 恰好等于 1 x。这让我很困惑:当 x 非常小时,将 x 加 1 应该会导致 x 的低位信息丢失。此外,在 (1 x) 1 中会发生灾难性的取消,这将导致许多准确的数字消失。

那么请告诉我,为什么在这个定理中 1 + x̄ 恰好等于 1 x?

【问题讨论】:

    标签: floating-point precision floating-accuracy


    【解决方案1】:

    您必须重新阅读 x̄ 和 的定义。 x̄ 是接近 x 的值,没有低位丢失。因此,1+x̄ 是精确的,与四舍五入的结果相同 1x

    【讨论】:

    • 真正让我担心的是 (1 (+) x (-) 1) 由于灾难性的取消,可能会产生一些无关紧要的东西。
    • @sunqingyao:当您计算 fp(1+x) 时,对于 x 的 eps/2 内的某个 xbar,您会得到 1+xbar。由于 0
    • @tmyklebu 所以无论 xbar 的值是什么,唯一的要求是它必须与 x 相似,对吧?
    • @sunqingyao:我看到了三个要求。首先,xbar 是一个浮点数。其次,xbar 接近于 x。第三,1+xbar也是一个浮点数——即计算fp(1+xbar)时不进行四舍五入。
    • @tmyklebu "xbar 加 1 时不会发生舍入" 这正是原作者的目的。
    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2017-07-07
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    相关资源
    最近更新 更多