数字的倒数

时间:2010-02-05 15:45:57

标签: floating-point

我遇到过几种情况,人们计算绝对值非常小的数的倒数。他们说结果应该是上限,因为倒数非常大。

(1)我想知道为什么会这样?

e.g。在本文的第18页http://www-stat.stanford.edu/~tibs/ftp/boost.ps中,第一段,计算概率的倒数。作者说:“如果p很小,这个数字可以变大,zmax处的这个比率阈值”和[2,4]的上限就可以了。我想知道是否因为当倒数是巨大的时候精度是巨大的,但是[2,4]中的值的界限并不意味着倒数的价值是巨大的?

另一个例子,就是我之前关于反距离加权插值的帖子inverse distance weighting interpolation,我们是否必须在取其倒数之前降低距离,或者仅处理距离为完全是0?

(2)如果数字的绝对值非常大,使其倒数非常接近0,那么我们是否必须降低倒数?

(3)如果我们确实必须将数字的倒数上限,哪种方式更好,则下限数字或上限为其倒数?

谢谢和问候!

1 个答案:

答案 0 :(得分:0)

对于(3),如果使用硬截止,两种方法是相同的。

关于(2),这完全取决于你如何使用它。通常当你计算某种你不希望分散到无穷大的重量时会出现这种情况,因为这会破坏你的算法。有时零的重量并不重要。有时确实如此。它将随您在算法中的使用方式而变化。

第一个问题有两个可能的答案(两个都是正确的,但在不同情况下)。

第一种可能性是算法应该使用的权重函数根本不是倒数,而是更像高斯 - 具有长尾的圆形驼峰。在某些情况下,阈值的倒数是一个足够便宜的近似值。

第二种可能性是,在被建模的情况下,其倒数的项永远不会精确为零,但由于浮点近似误差,在算法中可能为零。当倒数项是两个良好比例值的差异时,这尤其可能。在这种情况下,有必要对预期的近似误差进行阈值处理,以避免过大(或无穷大)的倒数丢失算法。