欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > 计算机的错误计算(二十六)

计算机的错误计算(二十六)

2025/10/2 20:33:28 来源:https://blog.csdn.net/zaim1/article/details/140251759  浏览:    关键词:计算机的错误计算(二十六)

摘要  结合计算机的错误计算(二十四)中的 Maple 环境下的计算过程,(二十五)讨论了(不)停机问题。事实上,其它数学软件比如 Mathematica 也存在该问题。

 

      (不)停机问题是:当计算机算出的结果为0时,它不知是否该提高精度继续计算。一般具有高精度计算功能的软件均存在这个问题。前面探讨了 Maple 软件的(不)停机问题,现在讨论 Mathematica 软件。

       下面有两张 Mathematica 环境下的计算过程截图。它们分别计算

20^{65}-20^{65-10^{-2000}},\\ 20^{65-10^{-2000}}-20^{65-10^{-2000}}.

前者的值不为0,而后者的值应该为0.

        两个计算均是通过执行 “N[算式,10]” 来计算。其中 10表示结果中保留 10位有效数字。在 Mathematica 系统内部,有一个全局变量 $MaxExtraPresion,它给出用于诸如上述 N 等函数中精度的额外位数最大值(参考 $MaxExtraPrecision—Wolfram 语言参考资料)。

       下面图中的两个计算均未给出 1位有效数字。只能通过增大 $MaxExtraPresion 的值来试算:从最初默认的50,提高到 100,然后是1000。遗憾的是,提高到1000了,仍然没有获得有效数字(当然,对于第2个算式,本来结果就是0. 但是,关键的问题是系统没有肯肯定定地告诉您,结果就是0. 即它也不知道是否为0. 不敢确认)。

       下面是第 1张截图,计算 20^{65}-20^{65-10^{-2000}}.

       下面是第 2张截图,计算 20^{65-10^{-2000}}-20^{65-10^{-2000}}.

       对于第1个算式来说,是否该停机啊?不用再计算了?也许结果是0呢?显然计算过程与第2个算式的一样啊,那不明显是浪费资源嘛。对于第2个算式来讲,是否继续算啊?不要停机?也许结果不为0?毕竟过程与第1个算式的过程相同啊。这就陷入了该停机还是不停机陷阱。

       不管是 Maple 还是 Mathematica,均将这个“停机还是不停机陷阱” 交给了用户你我。如何解决这个问题?哪个软件不存在该问题?即用户不会遇到?在各个软件的环境中试试案例就清楚了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词