Floating point 相对误差和污染数字

Floating point 相对误差和污染数字,floating-point,Floating Point,第9页上写着 当仅对舍入误差的数量级感兴趣时,ULP和e可以互换使用,因为它们最多相差一个系数b。例如,当一个浮点数错误为n ulps时,这意味着受污染的位数为log_b n。如果计算中的相对误差为n*e,则 受污染的数字=对数n 当错误为n ulps时,我可以填写详细信息以获取日志数字。但是关于相对误差的最后一句话的细节是什么呢?这只是一个近似值。ε被定义为半个ULP可以达到的最大相对误差。从第8页的定义可以看出,它的范围从1/2 ULP到β/2 ULP。尽管差异很大,但它与ULP具有相同的数

第9页上写着

当仅对舍入误差的数量级感兴趣时,ULP和e可以互换使用,因为它们最多相差一个系数b。例如,当一个浮点数错误为n ulps时,这意味着受污染的位数为log_b n。如果计算中的相对误差为n*e,则

受污染的数字=对数n


当错误为n ulps时,我可以填写详细信息以获取日志数字。但是关于相对误差的最后一句话的细节是什么呢?

这只是一个近似值。ε被定义为半个ULP可以达到的最大相对误差。从第8页的定义可以看出,它的范围从1/2 ULP到β/2 ULP。尽管差异很大,但它与ULP具有相同的数量级

由于误差为n ULPs的“受污染位数”为对数βn,因此当误差为nε时,其大致相同。如正文所述,这只是一个数量级近似值


(Goldberg的论文在某些方面比较松散,例如做了一个数量级近似,并将错误标记为“受污染的位数”。即使是一个微小的错误也可以改变任意位数,因为当添加一个数字时,会导致一系列9(十进制)滚动到零。“受污染的位数”是错误大小的描述,而不是实际更改的位数。)

这只是一个近似值。ε被定义为半个ULP可以达到的最大相对误差。从第8页的定义可以看出,它的范围从1/2 ULP到β/2 ULP。尽管差异很大,但它与ULP具有相同的数量级

由于误差为n ULPs的“受污染位数”为对数βn,因此当误差为nε时,其大致相同。如正文所述,这只是一个数量级近似值


(Goldberg的论文在某些方面比较松散,例如做了一个数量级近似,并将错误标记为“受污染的位数”。即使是一个微小的错误也可以改变任意位数,因为当添加一个数字时,会导致一系列9(十进制)滚动到零。“受污染的位数”是错误大小的描述,而不是实际更改的位数。)

不清楚您的问题是什么。你想要什么样的细节?我不明白为什么是真的。你的问题是什么还不清楚。你想要什么样的细节?我不明白为什么它是真的。很遗憾,在最后一个数字中没有写“10”的常用符号[因此,如果已知一个值大于9/10但小于1,则可以将小数点后的第一个数字写成9,如果大于99/100但小于1,则可以将下一个数字写成9,以此类推]那么,你的意思是因为ε对应于1/2 ULP的最大相对误差,那么nε对应于n/2 ULP。那么,作为一个粗略的数量级,n/2 ULP是n ULP,它对应于被污染的数字=log_b n。所以nε对应于被污染的数字=log_b nIt太糟糕了,没有用“10”来写一个数字的通用符号在最后一个数字中[因此,如果已知一个值大于9/10但小于1,则可以将小数点后的第一个数字写成9,如果大于99/100但小于1,则可以将下一个数字写成9,以此类推]那么你的意思是,因为ε对应于1/2 ULP的最大相对误差,那么nε对应于n/2 ULP。那么,作为一个粗略的数量级,n/2 ULP是n ULP,它对应于被污染的数字=log_b n。所以nε对应于被污染的数字=log_b n