Skip to content
AI360Xpert
Beta

Matrix Perturbation Theory

How far can eigenvalues and eigenvectors move when the matrix wobbles? Eigenvalues shift gently; eigenvectors depend on how lonely they are.

A 0.1 off diagonal nudge moves eigenvalues from 4 and 2 to 4.005 and 1.995, staying inside the Weyl allowance while the eigenvectors tilt toward each other
A 0.1 off diagonal nudge moves eigenvalues from 4 and 2 to 4.005 and 1.995, staying inside the Weyl allowance while the eigenvectors tilt toward each other

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 AA becomes A+EA + E, 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 ∥E∥\lVert E \rVert). 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 ∥E∥2\lVert E \rVert_2 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 AA and symmetric EE, ∣λi(A+E)−λi(A)∣≤∥E∥2|\lambda_i(A+E) - \lambda_i(A)| \le \lVert E \rVert_2 for every ii (suitably ordered). Eigenvalues cannot outrun the wobble.
  • Davis-Kahan: the sine of the angle between true and perturbed eigenvectors is bounded by ∥E∥2/δ\lVert E \rVert_2 / \delta, where δ\delta is the eigengap. Lonely eigenvectors hold still; crowded ones swing.
  • Bauer-Fike: for diagonalisable A=VΛV−1A = V\Lambda V^{-1}, eigenvalues move at most κ(V)∥E∥\kappa(V)\lVert E \rVert. The eigenvector conditioning κ(V)\kappa(V) prices non-normality: orthogonal VV costs 1, skewed VV multiplies the damage.

Worked example

Perturb A=diag(4,2)A = \mathrm{diag}(4, 2) with E=[00.10.10]E = \begin{bmatrix} 0 & 0.1 \\ 0.1 & 0 \end{bmatrix} (size ∥E∥2=0.1\lVert E \rVert_2 = 0.1). The perturbed matrix [40.10.12]\begin{bmatrix} 4 & 0.1 \\ 0.1 & 2 \end{bmatrix} has trace 6 and determinant 7.997.99, so:

λ=6±36−31.962=6±4.042≈4.005, 1.995\lambda = \frac{6 \pm \sqrt{36 - 31.96}}{2} = \frac{6 \pm \sqrt{4.04}}{2} \approx 4.005,\ 1.995

Eigenvalues moved 0.0050.005, twenty times inside the Weyl allowance of 0.10.1. The eigengap here is δ=2\delta = 2, so Davis-Kahan caps eigenvector tilt at sin⁡θ≤0.1/2=0.05\sin\theta \le 0.1/2 = 0.05: barely a tremor. Shrink the gap to 0.010.01 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)))  # -> True

Watch 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 ∥E∥\lVert E \rVert: the bound carries κ(V)\kappa(V), which reaches 10810^8 in real examples. Check normality (AAT=ATAAA^T = A^T A) 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 κ(V)\kappa(V).
  • Tied eigenvalues mean stable subspaces with unstable individual axes: compare subspaces.
  • Symmetric-only bounds on non-symmetric matrices understate the damage badly.