pseudospectrum
The pseudospectrum answers the question eigenvalues alone cannot: where could the eigenvalues go if the matrix were perturbed a little? For a tolerance epsilon, the epsilon-pseudospectrum is the set of complex numbers that are eigenvalues of some matrix within distance epsilon of A. For a normal matrix it is just a thin epsilon-collar around the true spectrum, but for a non-normal matrix it can bulge out enormously.
There are three equivalent definitions, which is part of its appeal. A point z is in the epsilon-pseudospectrum if (1) z is an eigenvalue of A + E for some ||E|| <= epsilon; or (2) the resolvent is large, ||(z I - A)^-1|| >= 1/epsilon; or (3) the smallest singular value sigma_min(z I - A) <= epsilon. The third is what you actually compute, sweeping z over a grid and drawing contours.
The picture exposes hidden fragility. A matrix can have all its eigenvalues comfortably inside the unit disk — promising decay — yet a fat pseudospectrum reaching outside it, warning that ||A^k|| can surge for many steps before the eventual decay sets in. Eigenvalues describe the limit; the pseudospectrum describes the transient.
This is the geometric form of Bauer-Fike. Where eigenvectors are nearly parallel (large kappa(V)), the resolvent blows up far from the spectrum and the pseudospectrum sprawls. Pseudospectra are the right tool for non-normal phenomena: transient growth in fluid flows, convergence of iterative solvers like GMRES, and the stability of discretized differential operators.
The computable definition: shade the complex plane where z I - A is within epsilon of being singular.
For a normal matrix the epsilon-pseudospectrum is exactly the union of epsilon-balls around the eigenvalues — no surprises. Any bulging beyond that is a direct, visual measure of how non-normal the matrix is.