摘要 计算机的错误计算(二十八)与(三十四)分别探讨了随机数的exp(x)与pow(a,x)的计算精度问题。本节讨论这些案例在Python的幂运算下的计算精度问题,从而进一步揭示错误计算的普遍性。
例1. 用Python的幂运算计算下列数的exp(x)函数值:1.2345,4.567,56.789,87.654,123.45,700.123.
本题的意思是用pow(e,x)计算exp(x). 而Python的幂运算符号是两个星号:**. 所以需要使用 e**x来计算exp(x).
首先,由(二十八)知,保留 20位有效数字的正确结果为
然后,在Python 中如图计算:
则经过比较可知,在16位的结果中,Python 分别有错误数字0、0、2、2、2、2位。
例2. 利用 Python的幂运算** 计算
首先, 16位正确的近似值为
然后,直接贴图 Windows10,Python 3.12.4下的计算:
由上图可知,输出与 (三十四)的例 2中 Visual Studio 的输出完全一致!这样,不论是 Visual Studio,还是Python的 幂运算,给出的结果中均包含 4位错误数字。
上面 2例进一步验证了错误是系统性的。