ausblenden:
Schlagwörter:
Computer Science, Numerical Analysis, cs.NA,Computer Science, Symbolic Computation, cs.SC,Mathematics, Numerical Analysis, math.NA
Zusammenfassung:
We describe a subdivision algorithm for isolating the complex roots of a
polynomial $F\in\mathbb{C}[x]$. Our model assumes that each coefficient of $F$
has an oracle to return an approximation to any absolute error bound. Given any
box $\mathcal{B}$ in the complex plane containing only simple roots of $F$, our
algorithm returns disjoint isolating disks for the roots in $\mathcal{B}$.
Our complexity analysis bounds the absolute error to which the coefficients
of $F$ have to be provided, the total number of iterations, and the overall bit
complexity. This analysis shows that the complexity of our algorithm is
controlled by the geometry of the roots in a near neighborhood of the input box
$\mathcal{B}$, namely, the number of roots and their pairwise distances. The
number of subdivision steps is near-optimal. For the \emph{benchmark problem},
namely, to isolate all the roots of an integer polynomial of degree $n$ with
coefficients of bitsize less than $\tau$, our algorithm needs
$\tilde{O}(n^3+n^2\tau)$ bit operations, which is comparable to the record
bound of Pan (2002). It is the first time that such a bound has been achieved
using subdivision methods, and independent of divide-and-conquer techniques
such as Sch\"onhage's splitting circle technique.
Our algorithm uses the quadtree construction of Weyl (1924) with two key
ingredients: using Pellet's Theorem (1881) combined with Graeffe iteration, we
derive a soft test to count the number of roots in a disk. Using Newton
iteration combined with bisection, in a form inspired by the quadratic interval
method from Abbot (2006), we achieve quadratic convergence towards root
clusters. Relative to the divide-conquer algorithms, our algorithm is simple
with the potential of being practical. This paper is self-contained: we provide
pseudo-code for all subroutines used by our algorithm.