摘要 解释 计算机的错误计算(十九)中展示的 的错误计算原因。
计算机的错误计算(十九)讨论了计算机的错误计算:.
下面介绍其出错原因。
首先,若单独计算 ,则 Python 采用的是高精度计算,其计算结果是准确的;在后面参与相减运算时,又会将其截断成 53 位的双精度数。因此,其值为:
其次,由于 有 16位正确有效数字(四舍五入后),因此 也仅有 16位正确数字;再次,因为 有 3位整数,所以 只有 16-3=13 位正确有效数字(可参考计算机的错误计算(七))。于是,减数的计算过程如下:
最后,被减数与减数均有 85位整数,其中前 13位相同,第 14位不同,这样就导致差大约有 85-13=72 位整数(实际是 71位)。相减过程如下:
上面过程完美地诠释了 Python 的错误计算过程。
另外,由于上述计算包含了 5个运算,因此只要其中 3个软件在实现上存在微小的不一致性(例如,舍入误差不同),就有可能导致最终结果不完全一致。具体细节不再赘述。
最后,总结一下:纵观整个过程,错误结果主要是由 exp(x) 函数计算错误所引起。
标签:13,计算机,16,有效数字,二十,错误计算,减数 From: https://blog.csdn.net/zaim1/article/details/140149712