FLINT3.7.0-dev
Algorithm

Eigenvalue enclosures

Cost
O(n3)O(n^3) floating-point operations for the approximation by Hessenberg reduction and the shifted QR algorithm, plus a few ball matrix products and one ball linear solve for certification (O(nω)O(n^\omega) with fast ball matrix multiplication); Rump's method costs O(n3)O(n^3) per eigenvalue cluster.

Computing eigenvalues is a nonlinear problem, and ball arithmetic applied directly to an eigenvalue algorithm such as the QR iteration gives useless enclosures because the radii grow with every iteration. The functions of acb_mat.h therefore follow the approximate-and-certify approach of verification methods [Rum2010]: compute approximate eigenvalues λ~i\tilde\lambda_i and an approximate eigenvector matrix R~\tilde R by a floating-point algorithm without error control, and then prove, with a short computation in ball arithmetic, that the true eigenvalues lie within computed distances of the approximations. All statements below hold for every matrix in the balls of AA.

Approximation#

acb_mat_approx_eig_qr reduces the midpoint matrix to upper Hessenberg form by Householder reflections and runs the implicitly shifted QR algorithm with deflation to obtain a Schur form A≈QTQ∗A \approx Q T Q^* [GVL1996]; the diagonal of TT gives the eigenvalues, and the eigenvectors are obtained by back substitution in TT and multiplication by QQ. The implementation is adapted from mpmath's eigen.py. An off-diagonal entry is treated as zero when it is smaller than the tolerance, by default 2−p/(100n)2^{-p}/(100n) relative to the neighbouring diagonal entries, and the iteration gives up if no deflation occurs within 14n+p/1014n + p/10 QR steps (by default); the function then returns 0, but still writes its current approximations, which may be usable. All arithmetic is done on midpoints at pp bits.

A global enclosure#

Theorem 1. Let D~=diag⁡(λ~1,…,λ~n)\tilde D = \operatorname{diag}(\tilde\lambda_1, \ldots, \tilde\lambda_n), let R~\tilde R and YY be n×nn \times n matrices, and suppose that ∥I−YR~∥∞≤δ<1\|I - Y\tilde R\|_\infty \le \delta < 1. Let

ε=∥Y(AR~−R~D~)∥∞1−δ.\varepsilon = \frac{\|Y(A\tilde R - \tilde R \tilde D)\|_\infty}{1 - \delta}.

Then every eigenvalue of AA lies in one of the disks ∣z−λ~i∣≤ε|z - \tilde\lambda_i| \le \varepsilon.

Proof. YR~Y\tilde R is nonsingular by the Neumann series, so R~\tilde R is nonsingular, and R~−1=(YR~)−1Y\tilde R^{-1} = (Y \tilde R)^{-1} Y with ∥(YR~)−1∥∞≤1/(1−δ)\|(Y\tilde R)^{-1}\|_\infty \le 1/(1-\delta). The matrix AA is similar to

R~−1AR~=D~+F,F=(YR~)−1Y(AR~−R~D~),\tilde R^{-1} A \tilde R = \tilde D + F, \qquad F = (Y\tilde R)^{-1} Y (A\tilde R - \tilde R\tilde D),

with ∥F∥∞≤ε\|F\|_\infty \le \varepsilon. By Gershgorin's theorem, every eigenvalue of D~+F\tilde D + F lies in a disk around λ~i+Fii\tilde\lambda_i + F_{ii} of radius ∑j≠i∣Fij∣\sum_{j \ne i} |F_{ij}|, which is contained in the disk around λ~i\tilde\lambda_i of radius ∑j∣Fij∣≤ε\sum_j |F_{ij}| \le \varepsilon.

This is the bound of Miyajima [Miy2010] in its simplest form. acb_mat_eig_global_enclosure computes YY as an approximate inverse of R~\tilde R and evaluates δ\delta and ε\varepsilon in ball arithmetic. The bound holds even if AA has multiple eigenvalues or is not diagonalisable (if R~\tilde R is far from singular), but it does not say which disk contains which eigenvalue, or how many; it is used to obtain a quick inclusion region or as a starting point.

Simple eigenvalues#

If the eigenvalues are simple and well separated, the approximate diagonalisation can be certified for each eigenvalue individually. acb_mat_eig_simple_vdhoeven_mourrain (called by acb_mat_eig_simple) follows van der Hoeven and Mourrain [HM2017]:

Algorithm 1: Certifying a diagonalisation
  1. Let TT be the midpoint matrix of R~\tilde R. Compute the ball matrix D=T−1ATD = T^{-1} A T by solving TD=ATT D = AT with acb_mat_solve; fail if the solving fails.
  2. Write D=Δ+HD = \Delta + H with Δ\Delta diagonal and HH zero on the diagonal, and compute η=∥H∥∞\eta = \|H\|_\infty, μ=∥Δ∥∞\mu = \|\Delta\|_\infty, the separation σ=min⁡i≠j∣Δii−Δjj∣\sigma = \min_{i \ne j} |\Delta_{ii} - \Delta_{jj}| and α=min⁡(σ/(6μ),1/4)\alpha = \min(\sigma/(6\mu), 1/4).
  3. If η≤αμ/8\eta \le \alpha\mu/8 and η≤ασ/8\eta \le \alpha\sigma/8, return the eigenvalue enclosures Δii±η\Delta_{ii} \pm \eta (as boxes with real and imaginary radius η\eta), provided that they are pairwise disjoint, and, if requested, the right eigenvectors T(I+E)T(I + E) with entries of EE bounded by 3η/σ3\eta/\sigma and the left eigenvectors as the inverse of this matrix.

Theorem 2. If Algorithm 1 succeeds, each returned box contains exactly one eigenvalue of AA, and these are all the eigenvalues; in particular, all eigenvalues are simple.

Proof. DD contains T−1A~TT^{-1} \tilde A T for every A~\tilde A in the balls of AA, which has the same eigenvalues as A~\tilde A. By Gershgorin's theorem, its eigenvalues lie in the union of the disks around the diagonal entries DiiD_{ii} with radii ∑j≠i∣Dij∣≤η\sum_{j \ne i} |D_{ij}| \le \eta, and each connected component of this union formed by kk disks contains exactly kk eigenvalues. Each disk is contained in the corresponding box, and the boxes are disjoint, so each disk contains exactly one eigenvalue.

The conditions on η\eta in step 3 are those of the theorem of van der Hoeven and Mourrain [HM2017], which shows that there is an exact diagonalisation A=(T(I+E))Λ(T(I+E))−1A = (T(I+E)) \Lambda (T(I+E))^{-1} with ∥E∥≤3η/σ\|E\| \le 3\eta/\sigma; they are only needed for the eigenvectors. The cost is dominated by the ball matrix product ATAT and the preconditioned solve (Verified linear algebra). The enclosures have radius about ∥H∥\|H\|, which is of the order of the error of the approximation times the condition number of TT; a slightly better enclosure could be obtained with the centre of the diagonal entries of DD instead of the ball, as in [HM2017].

Clusters and multiple eigenvalues#

A multiple eigenvalue cannot be certified as simple, and an eigenvalue of a nontrivial Jordan block is perturbed by O(ϵ1/k)O(\epsilon^{1/k}) when AA is perturbed by ϵ\epsilon, so its approximations are inaccurate. For such clusters, Rump's method [Rum2010, Section 13.4], also used in INTLAB's verifyeig, encloses a group of kk eigenvalues together.

Let λ~\tilde\lambda be an approximate eigenvalue of the cluster and X~\tilde X an n×kn \times k matrix of approximations of a basis of the invariant subspace. Choose kk row indices vv (the kk rows of X~\tilde X with the largest absolute value when k=1k = 1, the last kk rows otherwise); let UU select the other rows. The unknowns are a correction YY (n×kn \times k) whose rows in UU correct X~\tilde X and whose rows in vv form a k×kk \times k matrix MM with AX=X(λ~I+M)A X = X (\tilde\lambda I + M) for X=X~+UUTYX = \tilde X + U U^T Y. With an approximate inverse RR of (A−λ~I)UUT−X~VT(A - \tilde\lambda I) U U^T - \tilde X V^T, this equation becomes the fixed-point problem

Y=g(Y)=−R(A−λ~I)X~+(I−R((A−λ~I)UUT−X~VT))Y+R(UUTY)(VTY).Y = g(Y) = -R(A - \tilde\lambda I)\tilde X + \bigl(I - R((A - \tilde\lambda I)UU^T - \tilde X V^T)\bigr) Y + R (UU^T Y)(V^T Y).

Theorem 3 (Rump). If Y\mathcal{Y} is a ball matrix such that g(Y)g(\mathcal{Y}) is contained in the interior of Y\mathcal{Y}, then there is a fixed point Y∈YY \in \mathcal{Y}, the matrix λ~Ik+VTY\tilde\lambda I_k + V^T Y has kk eigenvalues that are eigenvalues of AA (counted with multiplicity), and X=X~+UUTYX = \tilde X + UU^TY spans the corresponding invariant subspace. Every eigenvalue of λ~Ik+VTY\tilde\lambda I_k + V^TY lies in the disk around λ~\tilde\lambda of radius ρ(∣VTY∣)\rho(|V^T \mathcal{Y}|), the spectral radius of the matrix of absolute values [Rum2010, Section 13.4].

acb_mat_eig_enclosure_rump implements this with ε\varepsilon-inflation: starting from Y0=g(0)\mathcal{Y}_0 = g(0), it enlarges Y\mathcal{Y} by 2−3+2jmax⁡∣Y∣2^{-3+2j} \max|\mathcal{Y}| in iteration jj and evaluates g(Y)g(\mathcal{Y}) in ball arithmetic, for at most 5+b5 + b iterations, where bb is the bit length of pp. The spectral radius in the eigenvalue bound is bounded by the Frobenius norm and by the Collatz–Wielandt bound ρ(N)≤max⁡i(Nw)i/wi\rho(N) \le \max_i (Nw)_i / w_i for positive vectors ww, using the absolute values of approximate eigenvectors of NN as ww.

acb_mat_eig_multiple_rump groups the approximate eigenvalues into clusters of points within distance 2−3p/4max⁡i∣λ~i∣2^{-3p/4} \max_i |\tilde\lambda_i| of the first point of the cluster (and on failure 2−p/2max⁡i∣λ~i∣2^{-p/2} \max_i |\tilde\lambda_i|), encloses each cluster of size kk with acb_mat_eig_enclosure_rump, and succeeds if the enclosures are pairwise disjoint. Since each enclosure contains as many eigenvalues as its cluster has members and the cluster sizes add up to nn, every eigenvalue of AA is accounted for, and each enclosure is returned once per member. acb_mat_eig_multiple first tries the simple-eigenvalue algorithm, which is cheaper, and uses Rump's method only on failure.

As the theorem requires, acb_mat_eig_enclosure_rump accepts Y\mathcal{Y} only when every entry of g(Y)g(\mathcal{Y}) lies in the interior of the corresponding entry of Y\mathcal{Y} (tested with acb_contains_interior); balls that touch the boundary are rejected.

Use in FLINT#

Referenced from#

References#

  • [Rum2010] S. M. Rump, "Verification methods: Rigorous results using floating-point arithmetic", Acta Numerica 19 (2010), 287-449.
  • [GVL1996] G. H. Golub and C. F. Van Loan, Matrix Computations, third edition, Johns Hopkins University Press (1996).
  • [Miy2010] S. Miyajima, "Fast enclosure for all eigenvalues in generalized eigenvalue problems", Journal of Computational and Applied Mathematics, 233 (2010), 2994-3004, https://doi.org/10.1016/j.cam.2009.11.048
  • [HM2017] J. van der Hoeven and B. Mourrain. "Efficient certification of numeric solutions to eigenproblems", MACIS 2017, 81-94, (2017), https://hal.archives-ouvertes.fr/hal-01579079
Cite this page

The FLINT team, “Eigenvalue enclosures,” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/algorithms/ball-arithmetic/eigenvalues.html (generated 2026-11-02).