Skip to main content
QUICK REVIEW

[论文解读] Multiple-precision zero-finding methods and the complexity of elementary function evaluation

Richard P. Brent|arXiv (Cornell University)|Apr 20, 2010
Numerical Methods and Algorithms被引用 4
一句话总结

本文提出了一种用于高精度计算初等函数(如 log(x)、exp(x) 和 sin(x))的快速多精度零点求解算法。通过使用牛顿型迭代和可变精度算术,其渐近时间复杂度约为 13M(n)log₂n 次操作,其中 M(n) 表示 n 位数相乘所需的时间,显著优于经典方法。

ABSTRACT

We consider methods for finding high-precision approximations to simple zeros of smooth functions. As an application, we give fast methods for evaluating the elementary functions log(x), exp(x), sin(x) etc. to high precision. For example, if x is a positive floating-point number with an n-bit fraction, then (under rather weak assumptions) an n-bit approximation to log(x) or exp(x) may be computed in time asymptotically equal to 13M(n)lg(n), where M(n) is the time required to multiply floating-point numbers with n-bit fractions. Similar results are given for the other elementary functions. Some analogies with operations on formal power series (over a field of characteristic zero) are discussed. In particular, it is possible to compute the first n terms in log(1 + a_1.x + ...) or exp(a_1.x + ...) in time O(M(n)), where M(n) is the time required to multiply two polynomials of degree n - 1. It follows that the first n terms in a q-th power (1 + a_1.x + ...)^q can be computed in time O(M(n)), independent of q. One of the results of this paper is the "Gauss-Legendre" or "Brent-Salamin" algorithm for computing pi. This is the first quadratically convergent algorithm for pi. It was also published in Brent [J. ACM 23 (1976), 242-251], and independently by Salamin [Math. Comp. 30 (1976), 565-570].

研究动机与目标

  • 开发用于任意高精度计算初等函数的高效算法。
  • 分析在多精度算术中计算 log(x)、exp(x) 和 sin(x) 等函数的计算复杂度。
  • 基于高精度乘法的成本,建立这些计算的渐近时间界。
  • 在函数计算与形式幂级数运算之间建立类比关系。

提出的方法

  • 使用牛顿法求解 f(x) = 0,结合可变精度算术,其中精度在迭代过程中逐步提高。
  • 应用迭代修正技术,如牛顿-拉夫森法及更高阶方法,以实现二次或三次收敛。
  • 在迭代中采用精度分级策略:早期步骤使用低精度运算,仅在最后阶段使用全精度。
  • 利用 M(n)(即 n 位数相乘所需时间)的渐近性质,推导总操作次数。
  • 通过幂级数复合与反演,将函数计算转化为级数运算(如 log(P(x))、exp(P(x)))。
  • 利用递推关系与快速乘法高效计算幂级数系数,从而最小化总操作次数。

实验结果

研究问题

  • RQ1在 n 位精度下计算 log(x) 和 exp(x) 等初等函数的最小计算复杂度是多少?
  • RQ2牛顿型方法如何适配可变精度算术,以最小化总操作次数?
  • RQ3函数计算与形式幂级数运算之间存在何种关系?
  • RQ4高阶收敛方法是否能相比标准牛顿-拉夫森法减少操作次数?
  • RQ5当对 M(n) 做假设(如 M(n) = O(n log n log log n))时,函数计算的渐近复杂度如何变化?

主要发现

  • 当 n → ∞ 时,log(x) 或 exp(x) 的 n 位近似值可在渐近时间复杂度为 13M(n)log₂n 内计算完成。
  • 除法和倒数计算的渐近操作次数分别约为 4M(n) 和 3M(n)。
  • 反平方根计算约需 4.5M(n) 次操作,平方根计算约需 5.5M(n) 次操作。
  • 使用牛顿法计算幂级数 P(x) 的指数函数可耗时约 ∼9M(n),若采用四阶方法则可减少至 ∼7.3M(n)。
  • 通过恒等式 P^m = exp(m log(P)),可实现 O(M(n)) 次操作内计算幂级数 P(x) 的 m 次幂,对于大 m 值,远快于重复平方。
  • 对于导数具有代数性质的函数(如 arctan),若 f 可高效复合,则 f(P(x)) 的总计算成本被一个常数倍的 M(n) 所限制。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。