摘要 计算机的错误计算(十九)展示了计算机的一个错误计算:本应该为 0的算式的结果不为0. 那么,增加计算精度,能确定是0吗?不一定。
计算机的错误计算(十九)展示了计算机对 的错误计算。那么,通过提高计算精度,可以确定准确值0吗?
计算机的错误计算(二十)给出了出错原因:错误结果主要是由 exp(x) 函数的错误计算所引起。那么现在问题就成了:当提高计算精度时,exp(x) 函数会出错吗?很遗憾,由计算机的错误计算(七)知, 有 3位整数,则 exp(x) 的结果中始终有约 3位错误数字。虽然这里有个大约的“约”,但是,根据理论与经验,99.99999%的概率,3 不会变成0;虽然可能变成2,甚至1,但是不会变为0,不会从“量变”到“质变”(关于这一点,建议再参考计算机的错误计算(十二)中文字 “...比如1000位,结果中也仍然含有20位错误数字”)。
要提高精度?不妨在数学软件 Maple 中试试(将其中一个 20改为 20.0,以免系统用符号计算直接推导出0):
从上看出,当计算精度或有效数字分别取 16,20,50,100,500,1000时,软件的输出分别是 , , , , , .
这个结果与我们的分析非常吻合:总是最后 3位出错。比如,若取1000位,那么被减数 与减数 除去前面的 85位整数后,它们应该均有 1000-85=915 位0. 而结果为
说明最后3位数字出错了。
最后问一句:随着计算精度的提高,结果也越来越小。这能说明正确结果应该是0吗?
不能!也许该式的正确结果是 呢。
那该怎么办呢?且听下回分解。