球算法 vs 区间算法

5

球算术(Arb)相较于区间算术(MPFI)有哪些优势?

换句话说,将区间表示为[center, radius]相较于[left, right]有什么优势?

这不是关于特定库(Arb vs MPFI),而是关于特定表示方法的优势。

我特别想知道哪种表示方法允许更快的算术运算(更少的基本操作),更少的误差估计和更节约的内存使用。


2
这篇论文提供了许多支持球算术的论点。仅仅浏览一下,动机似乎更多地是它提供了一个更清晰的计算模型,而不是比如说它更高效。 - John Coleman
@JohnColeman:该论文还揭示了球算术和区间算术不仅是同一事物的不同表示,而且具有不同的目的。再次浏览,似乎球算术并不一定给出严格的界限;半径可能只是一个估计值。 - Eric Postpischil
2
如果半径只是一个估计值,我不会称之为球算术。Mathematica 有一种类似的假球算术,它被称为“显著性算术”。 - Fredrik Johansson
球算术实际上是区间算术的一种特殊形式。如果你所说的“区间算术”类似于MPFI,那么这就是inf-sup区间算术。在一维中,球算术也被称为mid-rad区间算术。 - vinc17
1个回答

14
在任意精度算术中,球形算术比区间算术快约两倍,并且使用一半的空间。原因是只有球的中心需要高精度,而在区间算术中,两个端点都需要高精度。当然,细节取决于具体实现。(实际上,Arb比MPFI快得多,但这主要是由于实现工作的努力。)
在硬件算术中,球形算术在标量算术方面不会真正比区间算术具有速度优势。如果您查看更一般形式的球形算术并考虑例如将球形矩阵视为浮点矩阵 + 单个浮点数以表示整个矩阵的误差界限,而不是处理单个区间或球的矩阵,则显然存在优势。
Joris van der Hoeven关于球形算术的文章很好地介绍了球形和区间算术之间的区别:http://www.texmacs.org/joris/ball/ball.html 一个重要的引用是:“粗略地说,球应该用于可靠地近似数字,而区间主要用于依赖于空间细分的认证算法。”

忽略性能问题,球体和区间通常可以互换使用,尽管区间更适合用于细分算法。从概念上讲,球体非常适合表示数字,因为中心半径形式自然对应数学中我们对近似的思考方式,这个概念也自然扩展到更一般的有范数向量空间。

就我个人而言,我经常把球体算术看作浮点算术+误差分析,但是误差边界传播是由计算机自动完成而不是手工完成的。在这个意义上,它是一种更好的(对于某些应用程序!)进行浮点算术的方法,而不仅仅是一种更好的区间算术方法。

对于单个数字的计算,过度估计误差与算法相关性更大,而不是表示形式。MPFI保证所有原子函数都计算出最紧密的区间,但是一旦开始组合函数,这个属性就不再保留。无论是球体还是区间算术,只要您运行具有许多依赖步骤的计算,爆炸往往会以相同的方式发生。为了跟踪由于初始条件中的大不确定性导致的误差边界,像泰勒模型这样的技术通常比直接的区间或球体算术更好。

真实的复数球(包括复数中心和单一半径)有时比矩形复数区间更适合表示复数,因为其乘法包裹效应较小。(然而,Arb在复数方面使用矩形“球”,因此它没有这种特定的优势。)


谢谢您提供如此详尽的答案!顺便说一下,我是您的忠实粉丝! - Ecir Hana
Inf-sup区间算术(例如MPFI中的)在只想要某些可能很大的区间内函数范围时更好。但这有点像您对空间细分的评论。现在,我会说在这种应用中不需要任意精度。 - vinc17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接