球算术与区间算术
Ball arithmetic vs interval arithmetic
ball arithmetic (Arb) over interval arithmetic (MPFI)有什么优点?
换句话说,将区间表示为[中心,半径]比[左,右]有什么优势?
这不是关于特定的库(Arb vs MPFI),而是关于特定表示的优势。
我特别感兴趣的是一种表示是否允许更快的算术运算(更少的原始操作)、更少的错误估计和更节俭的内存使用。
在任意精度算术中,球算术的速度大约是区间算术的两倍,而使用的数量是区间算术的一半 space。原因是球只有圆心需要高精度,而在区间运算中,两个端点都需要高精度。当然,细节取决于实施。 (实际上,Arb 比 MPFI 快两倍以上,但这主要是由于实施工作。)
在硬件算法中,球与区间相比并没有真正的速度优势,至少对于标量算法而言是这样。如果您查看球算术的更一般形式并考虑例如球矩阵作为浮点矩阵 + 某个范数中整个矩阵的误差界限的单个浮点数,则有一个明显的优势,而不是使用由单个间隔或球组成的矩阵。
Joris van der Hoeven 关于球算术的文章很好地解释了球算术和区间算术之间的区别:http://www.texmacs.org/joris/ball/ball.html
重要的引述是:"Roughly speaking, balls should be used for the reliable approximation of numbers, whereas intervals are mainly useful for certified algorithms which rely on the subdivision of space."
忽略性能问题,球和间隔通常可以互换,尽管间隔更适合细分算法。从概念上讲,球很适合表示数字,因为中心-半径形式自然对应于我们对数学中近似值的看法。这个概念也自然地扩展到更一般的赋范向量 spaces.
就我个人而言,我经常将球算术视为浮点算术+错误分析,但错误边界传播由计算机自动完成,而不是手动完成。从这个意义上说,这是一种更好的浮点运算方法(对于某些应用程序!),而不仅仅是区间运算的更好方法。
对于单个数字的计算,错误高估更多地与算法有关,而不是与表示有关。 MPFI 保证它的所有原子函数都计算最紧密的可能间隔,但是一旦您开始组合函数,这个 属性 就不会被保留。无论是球算术还是区间算术,只要您 运行 具有许多相关步骤的计算,爆炸往往会以相同的方式发生。为了跟踪初始条件中较大不确定性导致的误差界限,泰勒模型等技术通常优于直接区间或球算术。
真正的复数球(复数中心 + 单半径)有时比矩形复数区间更好地表示复数,因为乘法的环绕效应更小。 (但是,Arb 对复数使用矩形 "balls",因此它没有这种特殊优势。)
ball arithmetic (Arb) over interval arithmetic (MPFI)有什么优点?
换句话说,将区间表示为[中心,半径]比[左,右]有什么优势?
这不是关于特定的库(Arb vs MPFI),而是关于特定表示的优势。
我特别感兴趣的是一种表示是否允许更快的算术运算(更少的原始操作)、更少的错误估计和更节俭的内存使用。
在任意精度算术中,球算术的速度大约是区间算术的两倍,而使用的数量是区间算术的一半 space。原因是球只有圆心需要高精度,而在区间运算中,两个端点都需要高精度。当然,细节取决于实施。 (实际上,Arb 比 MPFI 快两倍以上,但这主要是由于实施工作。)
在硬件算法中,球与区间相比并没有真正的速度优势,至少对于标量算法而言是这样。如果您查看球算术的更一般形式并考虑例如球矩阵作为浮点矩阵 + 某个范数中整个矩阵的误差界限的单个浮点数,则有一个明显的优势,而不是使用由单个间隔或球组成的矩阵。
Joris van der Hoeven 关于球算术的文章很好地解释了球算术和区间算术之间的区别:http://www.texmacs.org/joris/ball/ball.html
重要的引述是:"Roughly speaking, balls should be used for the reliable approximation of numbers, whereas intervals are mainly useful for certified algorithms which rely on the subdivision of space."
忽略性能问题,球和间隔通常可以互换,尽管间隔更适合细分算法。从概念上讲,球很适合表示数字,因为中心-半径形式自然对应于我们对数学中近似值的看法。这个概念也自然地扩展到更一般的赋范向量 spaces.
就我个人而言,我经常将球算术视为浮点算术+错误分析,但错误边界传播由计算机自动完成,而不是手动完成。从这个意义上说,这是一种更好的浮点运算方法(对于某些应用程序!),而不仅仅是区间运算的更好方法。
对于单个数字的计算,错误高估更多地与算法有关,而不是与表示有关。 MPFI 保证它的所有原子函数都计算最紧密的可能间隔,但是一旦您开始组合函数,这个 属性 就不会被保留。无论是球算术还是区间算术,只要您 运行 具有许多相关步骤的计算,爆炸往往会以相同的方式发生。为了跟踪初始条件中较大不确定性导致的误差界限,泰勒模型等技术通常优于直接区间或球算术。
真正的复数球(复数中心 + 单半径)有时比矩形复数区间更好地表示复数,因为乘法的环绕效应更小。 (但是,Arb 对复数使用矩形 "balls",因此它没有这种特殊优势。)