Singular Value Decomposition

SVD and the four fundamental subspaces

Every matrix carries four fundamental subspaces: the column space and the left null space (living in the output space R^m), and the row space and the null space (living in the input space R^n). Vol I told you their dimensions via the rank-nullity theorem. The SVD does something stronger: it hands you a clean orthonormal basis for all four at once.

Here is the dictionary, assuming rank r. The first r right singular vectors v_1, ..., v_r form an orthonormal basis of the row space; the remaining v_{r+1}, ..., v_n form an orthonormal basis of the null space. The first r left singular vectors u_1, ..., u_r form an orthonormal basis of the column space; the remaining u_{r+1}, ..., u_m form an orthonormal basis of the left null space. The action A v_i = sigma_i u_i for i <= r shows precisely how A carries the row space onto the column space.

This makes the orthogonality relations vivid: the row space is the orthogonal complement of the null space inside R^n, and the column space is the orthogonal complement of the left null space inside R^m. The v's split R^n cleanly into row-space directions plus null directions; the u's split R^m into column-space directions plus left-null directions — all with right angles, no overlaps.

The geometric story falls out: A takes the row-space part of any input, stretches each row-space axis v_i by sigma_i, and lands it on the matching column-space axis u_i; meanwhile it annihilates the null-space part. The SVD is, in a sense, the rank-nullity theorem made fully orthonormal and explicit.

row space = span(v_1..v_r), null = span(v_{r+1}..v_n); col = span(u_1..u_r), left-null = span(u_{r+1}..u_m)

The v's split the input space, the u's split the output space — orthonormally and by rank.

Gram-Schmidt also produces orthonormal bases, but the SVD's bases are special: they diagonalize the action of A, pairing each input axis with exactly one output axis and a single stretch factor.

Also called
orthonormal bases for the four subspaces