Math 任意精度算法是否影响数值分析软件?

Math 任意精度算法是否影响数值分析软件?,math,numerical,arbitrary-precision,Math,Numerical,Arbitrary Precision,影响了什么 我觉得大多数数值分析软件都继续使用相同的浮动和双浮动 如果我是对的,我很想知道原因,因为在我看来,有些计算可以从使用任意精度的算术中受益,特别是当它与使用有理数表示相结合时,就像在计算机上所做的那样 如果我错了,举个例子就好了 任意精度都很慢。非常慢。当你使用一个产生无理值的函数(比如大多数trig函数)时,你就失去了你的任意精度优势 所以,如果你不需要,或者不能使用这种精度,为什么要把所有的CPU时间都花在它上面呢?如果你看看Mathematica之类的程序,我强烈怀疑你会发现它们

影响了什么

我觉得大多数数值分析软件都继续使用相同的浮动和双浮动

如果我是对的,我很想知道原因,因为在我看来,有些计算可以从使用任意精度的算术中受益,特别是当它与使用有理数表示相结合时,就像在计算机上所做的那样


如果我错了,举个例子就好了

任意精度都很慢。非常慢。当你使用一个产生无理值的函数(比如大多数trig函数)时,你就失去了你的任意精度优势


所以,如果你不需要,或者不能使用这种精度,为什么要把所有的CPU时间都花在它上面呢?

如果你看看Mathematica之类的程序,我强烈怀疑你会发现它们在工作中不使用浮点和双精度。如果你看一下密码学,你肯定会发现它们不使用浮点数和双精度(但它们主要使用整数)


这基本上是一种判断。那些认为他们的产品将从精度和精度的提高中受益的人使用扩展精度或任意精度的算术软件。那些认为不需要精度的人不会使用它。

任意精度对非理性值不起作用。我认为把所有东西颠倒过来会有助于数值分析软件。你不应该计算出计算所需的精度,而应该告诉软件你想要的最终精度是什么,然后它会计算出所有的事情


通过这种方式,它可以使用一个足够大的有限精度类型来进行计算。

对于一个数值问题,你很少需要一个精确的答案——几乎总是需要达到某个给定精度的结果。如果由专用硬件执行,操作也是最有效的。总而言之,这意味着硬件面临压力,需要提供对大多数常见问题具有足够精度的实现

因此,经济压力为常见情况创造了一个有效的(基于硬件的)解决方案

具有任意精度的算法 受影响的数值分析软件? 我觉得大多数的数值分析 软件继续使用相同的功能 浮动和双打

不使用任意精度(ap)有几个不幸的原因 更广泛地说

  • 缺乏对重要特性的支持:NaN/无穷大的值缺失,没有复数或特殊函数,缺少或错误地实现舍入模式(舍入一半甚至没有在GMP中实现),缺少重要事件的处理程序(有效数字丢失、溢出、下溢……好的,大多数标准库都没有实现)。 为什么这一点很重要?因为如果没有它,你必须投入大量精力以任意精度来描述你的问题(是否在ap中编写过复数库或特殊函数?) 跟踪变化

  • 99.9%的程序员对数字一点也不感兴趣。这里问得最多的一个问题是:“为什么0.1+0.1不是0.2???帮助!!!”那么程序员为什么要投资呢 是时候学习一个特定的ap实现并在其中阐述他们的问题了? 如果你的ap结果与双精度结果不一致,而你又不懂数字,你如何找到错误?双精度是否太不精确?ap库是否有错误?发生了什么?!谁知道

  • 许多懂得计算的数字专家不鼓励使用ap。FP的硬件实现让他们失望,他们坚持认为可复制性无论如何是“不可能的”实现和输入数据几乎总是只有很少的有效数字,因此他们主要分析精度损失并重写关键例程以将其最小化

  • 基准测试上瘾。哇,我的电脑比其他电脑快。正如其他评论员正确地评论的那样,ap比硬件支持的浮点数据类型慢得多,因为你必须用每只手的整数数据类型来编程。其中一个迫在眉睫的问题是 这种态度的危险在于程序员完全没有意识到问题的存在,他们选择的解决方案会给出令人印象深刻的无意义数字。我对GPGPU非常谨慎。当然,图形卡比处理器快得多,但原因是精度和准确度较低。如果使用浮点(32位)而不是双精度(64位),您的计算和传输位要少得多。人眼非常容错,因此一个或两个结果是禁止的并不重要。见鬼,作为硬件构造器,您可以使用不精确、不精确的计算来加快计算速度(这对于图形来说非常合适)抛开那些讨厌的低于正常的实现或舍入模式。处理器不如GPU快有一个很好的理由


我可以向威廉·卡汉斯·佩奇推荐一些有关数字问题的信息。

沃尔夫拉姆研究所投入了巨大的努力,以务实的方式将任意精度区间算术融入Mathematica的核心,他们做得非常出色。Mathematica将透明地进行几乎所有的计算罕见的精度。

这篇由Dirk Laurie撰写的文章介绍了一个关于使用可变精度的警示故事。

虽然与你的问题没有直接关系,但你可能也想看看l Trefethen的文章。

是的。很多数值分析与其说是为了快速得到答案,不如说是为了快速得到答案。它被用于一些非常大的问题,比如如果你能回答这个问题,我认为速度是一个因素,但我怀疑,在当今快速的计算机和一个非常优化的库(gmp)的情况下,这是不可行的