[我正在阅读David Goldberg的每位计算机科学家应了解的浮点运算。我没有数值分析方面的正式背景,并且很难理解本文。在Relative Error and Ulps部分中,他继续推导了用接近的FP数逼近实数时的相对误差的上限。因此,与。5 ULPs相对应,当实数由FP数d.ddd ... dxβe近似时,绝对误差为(((β/ 2 )β-p)xβe。他说,形式为[[d.ddd ... d xβe的数字的值范围为βe到βxβe。我不知道这个范围是怎么来的。为了找到相对误差,我需要除以近似的实际实数。他为什么要除以FP编号可以接受的值?我想念什么?
此外,我正在努力理解摆动的重要性。几段之后,他通过取实数x然后用FP数近似来证明这种关系。然后找到ULP和相对值中的错误。然后将实数乘以8(以及FP近似值)。在ULP中测量时,误差增加,但相对误差保持不变。
以某种方式,我对这种关系没有直觉。在哪里有用?因此对应于.5 ULP,当实数由FP数[不太准确,它说当实数被最接近的浮点数近似时,绝对误差d。ddd ... d xβe近似时,绝对误差为((β/ 2)β-p)xβe。
可能大到(((β/ 2)β-p
)xβe,而不是它is该值。他说,形式为[[d。
ddd ... d xβe的值的范围为βe 到βxβe。我不知道这个范围是怎么来的。
这是因为第一位数字d始终是从1到β-1的某个数字。如果第一个数字为0,我们将指数e向下调一,以调高更多数字。如果在小数点之前有两个或多个数字,我们将向上调整e向下推数字。例如,我们不会将12345表示为.012345•10 6
或12.345•10 3;我们使用1.2345•10 4。 Goldberg格式的有效位数始终至少为1,小于β。由于有效数S满足1≤S e <S e。此外,我正在努力理解摆动的意义。
请考虑10,000(含)和100,000(不含)之间的所有实数。对于以10为基数的5位浮点数,它们的ULP均为1。当我们将10,000.7转换为这种格式时,最接近的数字是10,001,因此绝对误差为.3,ULP误差为.3,并且相对误差为.3 / 10,000.7≈2.9998•10 -5
。当我们将99,000.7转换为这种格式时,最接近的数字是99,001,因此绝对误差为.3,ULP误差为.3,相对误差为.3 /99,000.7≈3.03•10-6。因此,ULP误差是相同的,但是相对误差却少了近十倍。相反,大约3•10 -5的相对误差为0.3 ULP,刚好高于10,000,但3 ULP刚好低于100,000。]当我们将100,007转换为这种格式时,最接近的可表示数字是100,010,因此绝对误差为3,ULP误差为.3,相对误差回到2.9998•10 -5
。这就是Goldberg相对于ULP误差的相对误差摆动的含义。在固定的指数间隔内,ULP是固定的数量。在较大的指数范围内,ULP误差近似于相对误差;它以与相对误差相同的average进行更改,但是在跳转中会这样做,而相对误差是连续的。