Definitions

Graeffe's method

In mathematics, Graeffe's method is an algorithm for finding multiple roots of a polynomial. It was developed independently by Karl Heinrich Gräffe, Dandelin, and Lobachevsky. The method separates the roots of a polynomial by squaring them repeatedly, and uses the Vieta relations in order to approximate the roots.

Graeffe iteration

Let $p\left(x\right)$ be an $n^\left\{th\right\}$ degree polynomial.
$p\left(x\right) = \left(x-x_1\right)\left(x-x_2\right)...\left(x-x_n\right)$
Then
$p\left(-x\right) = \left(-1\right)^n \left(x+x_1\right)\left(x+x_2\right)...\left(x+x_n\right)$
Hence
$q\left(x^2\right) = p\left(x\right)p\left(-x\right) = \left(-1\right)^n\left(x^2-x_1^2\right)\left(x^2-x_2^2\right)dots\left(x^2-x_n^2\right)$

The roots of $q\left(x^2\right)$ (when viewed as a polynomial in the variable $x^2$) are $x_1^2, x_2^2,...,x_n^2$. We have squared the roots of our original polynomial $p\left(x\right)$. Iterating this procedure several times separates the roots with respect to their magnitudes. Repeating k times gives a polynomial in the variable $y := x^\left\{2^k\right\}$ of degree n. Write this polynomial as

$q^k\left(y\right) = y^n + a_1 y^\left\{n-1\right\} + ... + a_n$

with roots $y_1=x_1^\left\{2^k\right\},,y_2=x_2^\left\{2^k\right\},,...,,y_n=x_n^\left\{2^k\right\}$.

Classical Graeffe's method

Next the Vieta relations are used

$a_1 = -\left(y_1+y_2+...+y_n\right)$
$a_2 = y_1 y_2 + y_1 y_3+...+y_\left\{n-1\right\} y_n$
$a_n = \left(-1\right)^n\left(y_1 y_2 ... y_n\right)$

If the roots $x_1,dots,x_n$ are sufficiently separated, say by a factor $c>1$, $|x_m|ge c|x_\left\{m+1\right\}|$, then the iterated powers $y_1,y_2,...,y_n$ of the roots are separated by the factor $c^\left\{2^k\right\}$, which quickly becomes very big.

The coefficients of the iterated polynomial can then be approximated by their leading term,

$a_1 approx -y_1$
$a_2 approx y_1 y_2$ and so on.

Finally logarithms are used in order to find the roots of the original polynomial.

Graeffe's method works best for polynomials with simple real roots, though it can be adapted for polynomials with complex roots and double roots. This method is problematic since the coefficients of the iterated polynomials span very quickly many orders of magnitude, which implies serious numerical errors. One second concern is that many different polynomials lead to the same Graeffe iterates.

Tangential Graeffe method

If $varepsilon$ is an „algebraic infinitesimal“ with $varepsilon^2=0$, then the polynomial $p\left(x+varepsilon\right)=p\left(x\right)+varepsilon,p\text{'}\left(x\right)$ has roots $x_m-varepsilon$, with powers

$\left(x_m-varepsilon\right)^\left\{2^k\right\}=x_m^\left\{2^k\right\}-varepsilon,\left\{2^k\right\},x_m^\left\{2^k-1\right\}=y_m+varepsilon,dot y_m$.
Thus the value of $x_m$ is easily obtained as fraction $x_m=-tfrac\left\{2^k,y_m\right\}\left\{dot y_m\right\}$.

This kind of computation with infinitesimals is easy to implement analogous to the computation with complex numbers. If one assumes complex coordinates or an initial shift by some randomly chosen complex number, then all roots of the polynomial will be distinct and consequently recoverable with the iteration.

Renormalization

Every polynomial can be scaled in domain and range such that in the result the first and the last coefficient have size one and all intermediate coefficients a size smaller then one. This implies that all roots are located in a ring between the radii 1/2 and 2. If the size of the inner coefficiens is bounded by M, then the size of the inner coefficients after one stage of the Graeffe iteration is bounded by $nM^2$. After k stages one gets the bound $n^\left\{2^k-1\right\}M^\left\{2^k\right\}$ for the inner coefficients If the initial coefficients

To overcome the limit posed by the growth of the powers, Malajovich/Zubelli propose to represent coefficients and intermediate results in the kth stage of the algorithm by a scaled polar form

$c=alpha,e^\left\{-2^k,r\right\}$
where $alpha=frac\left\{c\right\}$
> is a complex number of unit length and $r=-2^\left\{-k\right\}log|c|$ is a positive real. Splitting off the power $2^k$ in the exponent reduces the absolute value of c to the corresponding dyadic root. Since this results in preserving the magnitude of the (representation of the) initial coefficients, this process was named renormalization.

Multiplication of two numbers of this type is straightforward, whereas addition is performed following the factorization $c_3=c_1+c_2=|c_1|cdotleft\left(alpha_1+alpha_2tfrac$

{|c_1right)>, where $c_1$ is chosen as the larger of both numbers, that is,
$alpha_3=tfrac\left\{s\right\}$
> and $r_3=r_1+2^\left\{-k\right\},log$> with $s=alpha_1+alpha_2,e^\left\{2^k\left(r_1-r_2\right)\right\}$.

The coefficients $a_0,a_1,dots,a_n$ of the final stage k of the Graeffe iteration, for some reasonably large value of k, are represented by pairs $\left(alpha_m,r_m\right)$, $m=0,dots,n$. By identifying the corners of the convex envelope of the point set $\left\{\left(m,r_m\right):;m=0,dots,n\right\}$ one can determine the multiplicities of the roots of the polynomial. Combining this renormalization with the tangent iteration one can extract directly from the coefficients at the corners of the envelope the roots of the original polynomial.