OXFORD UNIVERSITY COMPUTING LABORATORY

Motivation for computing pseudospectra of sparse matrices

The matrices in many eigenvalue problems are too large to allow direct computation of their full spectra, and two of the iterative tools available for computing a part of the spectrum are ARPACK and its MATLAB counterpart, eigs. For non-symmetric matrices, the mathematical basis of these packages is the Arnoldi iteration with implicit restarting, which works by compressing the matrix to an `interesting' Hessenberg matrix, one which contains information about the eigenvalues and eigenvectors of interest.

For some matrices, non-normality (non-orthogonality of the eigenvectors) may be physically important. In extreme cases, non-normality combined with the practical limits of machine precision can lead to difficulties in accurately finding the eigenvalues. Perhaps the more common and more important situation is when the non-normality is pronounced enough to limit the physical significance of eigenvalues for applications, without rendering them uncomputable. In applications, users need to know if they are in such a situation. The prevailing practice in large-scale eigenvalue calculations is that users get no information of this kind.

There is a familiar tool available for learning more about the cases in which non-normality may be important: pseudospectra. One such case is described in our second example, which shows some of the pseudospectra of the `Grcar matrix' of dimension 400, the exact spectrum, and converged eigenvalue estimates (Ritz values) returned by a run of ARPACK for this matrix. This is an extreme example where the non-normality is so pronounced that even with the convergence tolerance set to its lowest possible value, machine epsilon, the eigenvalue estimates are far from the true spectrum. From the Ritz values alone, one might not realise that anything was amiss. Once the pseudospectra are plotted too, it is obvious.

Computing the pseudospectra of a matrix of dimension N by the obvious method is an expensive task, requiring an O(N3) singular value decomposition at each point in a grid. For a reasonably fine mesh, this leads to an O(N3) algorithm with the constant of the order of thousands. Recent developments in algorithms for computing pseudospectra have improved the constant, and the asymptotic complexity for large sparse matrices, but these are still fairly costly techniques. The GUI can cheaply compute an approximation to the pseudospectra of a large matrix in a region near the interesting eigenvalues. Our method uses the upper Hessenberg matrix constructed after successive iterations of the implicitly restarted Arnoldi algorithm, as implemented in ARPACK. Among other things, this means that after performing an eigenvalue computation with eigs, a user can quickly obtain a graphical check to indicate whether the Ritz values returned are likely to be physically meaningful. Our vision is that every ARPACK or eigs user ought to plot pseudospectra estimates routinely after their eigenvalue computations as a cheap `sanity check'.

For more discussion see the Pseudospectra Gateway


Pseudospectra GUI home page.


[Oxford Spires]



Oxford University Computing Laboratory Courses Research People About us News