计算机的错误计算(一百一十三)

摘要  用错数分析计算机的错误计算(一百一十二)中错误计算的原因。

       计算机的错误计算(一百一十二)中的迭代为

x_0=1\,, \\x_{n+1}=\cot(x_n)\,.

对于 x_{25},  Excel 与 LibreOffice 的输出均是错误结果,均没有1位正确有效数字。另外,其文献[1]中也含有一些错误数字,比如,x_{22} 中只有2位正确数字。

       下面利用错数分析这些出错原因。

       由于 x_0=1 在内存中没有误差,所以不考虑 x_1=\cot(x)|_{x=x_0=1} 的错误计算,即假定第1次运算的结果中没有错误数字。因此,接下来只讨论 x_2\sim x_{24} 的错数。

       对于 x_2=\cot(x)|_{x=x_1} 来说,

x_1=0.6420926159343307e0\,, \\x_2=0.1337253177519283e1\,, \\\cot'(x)|_{x=x_1}=-\frac{1}{\sin^2(x_1)} =-0.2788246060785419e1\,.

因此,

m_1=0\,, \\m_2=1\,, \\m_0=1\,.

这样,m_1-m_2+m_0=0-1+1=0\,.  于是,x_2 具有 0 位或 -1 位错误数字,即要么没有错误数字(也就是正确数字个数与自变量 x_1 的相同),要么(与自变量 x_1 相比)多了1位正确数字。

       同理可得,x_3\sim x_{24} 各自的 m_1-m_2+m_0 依次为 2 , 1 , 2 , 0 , 2 , 1 , 3 , 2 , 1 , 2 , 0 , 2 , 0 , 3 , 0 , 2 , 1 , 2 , 0 , 2 , 0 , 3 .  这样,x_2 到 x_{24} 共23个错数的和为

0+2+1+2+0+2+1+3+2+1+2+0+2+0+3+0+2+1+2+0+2+0+3 = 31 .

       正如上面的分析,函数值的错误数字数量为 m_1-m_2+m_0 与 m_1-m_2+m_0-1 之一。若全部取后者,则可得到错误数字数量的下界:31-23 = 8 . 若假设取到二者的概率是相同的,即一半是前者,一半是后者,那么错误数字数目为:31-23/2 = 19.5 .  

       总结:

       (1)理论上,x_{25} 的错误数字在 8\sim 31 之间,很大概率在 19 位左右。因此,实践中,16位的 x_{25} 没有正确数字。

       (2)若只考虑 x_2\sim x_{21} 的错误数字的积累,则 x_{22} 的错误数字个数在 6\sim 26 之间,很大概率在 16 位左右。事实上,文献[1]中的 x_{22} 有 14位错误数字。

       (3)文献[1]中的错误数字不是偶然的。比如,若在 Excel 或 LibreOffice 中计算 x_{22},  则同样各自只有 2位正确数字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值