计算机的错误计算(一百零五)
摘要 本节探讨多项式的计算精度问题。
例1. 已知多项式
计算
不妨在Visual Studio 2010下编程计算,其中主要语句如下:
#include <math.h>double x=1234;
double c9=1021263,c8=-1260239000,c7=565172,c2=-21,c0=31977890.4;
double y=c9*pow(x,9)+c8*pow(x,8)+c7*pow(x,7)+c2*pow(x,2)+c0;
printf("%lf\n",y);
则运行后输出为 -492091651691380670.000000 .
若在Excel中计算,则几乎有同样的效果:
然而,准确值是 14.4(ISRealsoft 提供)。
点评:一个普通的多项式,并且程序既没有语法、逻辑等静态错误,也没有溢出等动态错误。可是结果匪夷所思。您见过吗?惊讶吗?震惊吗?