如果计算结果为8bit的数字量,则得出以下结论。
1. X的最大可能值为255*60
2 .结果截止误差在1/2以内
如果x为255*60时(最坏情况),我们的计算误差仍然小于1/2,算法精度合格。
计算误差为(数量比),为了获得精度,应该有以下几种。
25560 1/2
即,至少为
1/(255602 ) ) ) ) ) ) ) ) ) ) ) )。
进一步提高计算精度,设定=1/(2^16 )
[=1/(256乘64乘2 ) ]。
很明显有一个等式:
x(1/60
_
() ) ) ) ) ) ) ) ) )。
X/60
导出:
=
1/60 -1/(2^16 )1/60 1/60
1/(2^16 ) ) ) ) ) ) ) ) ) )。
=
(2(14-15 )/(15 *2(16 ) ) ) ) ) ) ) ) ) 652
1/60
(2) 14 ) 15 )15*2) 16 ) ) ) ) ) ) ) ) ) )
=
(16384 -15 )/)/(15*2^16 ) ) )。
1/60=
16384/(15*2^16 )
(16384 15 )/)/(15*2^16 ) ) ) )。
我们在
在1638415之间(在精度要求范围内)查找能被15整除且最接近16384的数。 那个如下。
16380,用它去掉分母的15。
于是,1/60 16380/(15*2^16 )=1092/2^16,误差为
4/(15*2^16 )小于1/)2^17 )。
1092///(2^16(=(102464 )2^16 ) ) ) ) ) ) 0
=1/(2^6)1/(2^ 10 )1/(2^ 14 ) ) ) ) ) ) ) ) )
因此:
x/60x/(2^6) x/)2^10 ) x/(2^ 14 ) )计算误差如下
8bit数的截止误差(),现在,如何用程序快速计算X/60就清楚了。