Matrix Perturbation Theory
How far can eigenvalues and eigenvectors move when the matrix wobbles? Eigenvalues shift gently; eigenvectors depend on how lonely they are.
Why Does This Exist?
Real matrices wobble: rounding error, noisy covariance estimates, weights that keep training. Perturbation theory answers the stability question before you trust a decomposition: if becomes , how far do the eigenvalues and eigenvectors move? The answers split in a way that surprises beginners. Eigenvalues of symmetric matrices are sturdy (they move at most ). Eigenvectors are fragile exactly when eigenvalues crowd (small eigengap). Non-symmetric matrices can betray both.
These bounds run stability analysis everywhere: PCA directions under sampling noise, spectral clustering under graph changes, convergence rates under Hessian drift. Eigenvalues and eigenvectors names the objects; this page prices their stability.
The one idea you need first
A matrix norm measures the wobble's worst stretch, from norms. The eigengap is the distance between neighbouring eigenvalues: how lonely each one is. Bounds below pair wobble size against loneliness.
Think of It Like This
Two radio stations, one strong signal apart
Two radio stations broadcast on nearby frequencies. A little static (the perturbation) barely moves where each station comes through clearest (the eigenvalues): you retune by a hair.
But separating the stations (the eigenvectors) depends on their spacing. Far apart on the dial, each tunes cleanly despite static. Nearly overlapping, a whisper of noise blends them and no tuner isolates either. The eigengap is the dial spacing, and Davis-Kahan is the statement that separation quality scales with it.
Non-normal matrices are broken radios where the dial markings themselves shift under static. That regime needs pseudospectra, a different instrument.
How It Actually Works
Three bounds, each with its job:
- Weyl: for symmetric and symmetric , for every (suitably ordered). Eigenvalues cannot outrun the wobble.
- Davis-Kahan: the sine of the angle between true and perturbed eigenvectors is bounded by , where is the eigengap. Lonely eigenvectors hold still; crowded ones swing.
- Bauer-Fike: for diagonalisable , eigenvalues move at most . The eigenvector conditioning prices non-normality: orthogonal costs 1, skewed multiplies the damage.
Worked example
Perturb with (size ). The perturbed matrix has trace 6 and determinant , so:
Eigenvalues moved , twenty times inside the Weyl allowance of . The eigengap here is , so Davis-Kahan caps eigenvector tilt at : barely a tremor. Shrink the gap to and the same wobble allows total eigenvector scrambling.
Code
The point is the check: verify the Weyl bound holds on the worked example.
import numpy as np
A = np.array([[4.0, 0.0], [0.0, 2.0]])E = np.array([[0.0, 0.1], [0.1, 0.0]])before = np.linalg.eigvalsh(A)after = np.linalg.eigvalsh(A + E)print([round(float(v), 3) for v in after]) # -> [1.995, 4.005]print(float(np.max(np.abs(after - before))) <= float(np.linalg.norm(E, 2))) # -> TrueWatch Out For
Trusting eigenvectors across a tiny eigengap
PCA directions with nearly tied variance (eigenvalues 4.001 vs 4.000) swing wildly between data samples: the subspace is stable but the individual axes are not. Downstream code that names "component 3" as a fixed meaning breaks on refit. Compare subspaces (projection distances) or merge tied directions instead of tracking shaky axes.
Applying symmetric bounds to non-symmetric matrices
Weyl and Davis-Kahan need symmetry (or normality). A non-normal matrix can move eigenvalues far beyond : the bound carries , which reaches in real examples. Check normality () before quoting the gentle bounds; otherwise budget for pseudospectral behaviour.
The Quick Version
- Weyl: symmetric eigenvalues drift at most the wobble size; the example moves 0.005 of 0.1.
- Davis-Kahan: eigenvector tilt is bounded by wobble over eigengap, so lonely axes hold still.
- Bauer-Fike prices non-normality through the eigenvector conditioning .
- Tied eigenvalues mean stable subspaces with unstable individual axes: compare subspaces.
- Symmetric-only bounds on non-symmetric matrices understate the damage badly.