The Four Fundamental Subspaces

⚡ Key Takeaways

The Four Fundamental Subspaces are the column space, row space, null space, and left null space of an m×nm \times n matrix AA. Together they decompose the domain Rn\mathbb{R}^n and codomain Rm\mathbb{R}^m into orthogonal complementary pieces, encoding everything about solvability of Ax=bAx = b and the geometry of the linear map. Applies wherever linear systems, least squares, or rank arguments appear. Crystallized as a teaching framework by Gilbert Strang (MIT, late 20th century).

💡 The Core Insight

A matrix is not just a grid of numbers — it is a linear transformation. That transformation tears Rn\mathbb{R}^n into two perpendicular halves (row space and null space) and Rm\mathbb{R}^m into two perpendicular halves (column space and left null space). The "real action" of AA is a one-to-one correspondence between the row space and the column space, both of dimension rr. Everything in the null space is annihilated; everything in the left null space is unreachable. Solvability, uniqueness, and least-squares all follow from where bb sits relative to these halves.

Formal Statement

DefinitionThe Four Subspaces of an m×n Matrix

Let A∈Rm×nA \in \mathbb{R}^{m \times n} with rank rr. Define:

1
C(A)={ Ax:x∈Rn }⊆Rm\quad C(A) = \{\, Ax : x \in \mathbb{R}^n \,\} \subseteq \mathbb{R}^m

Derivation hint: the column space is the set of all linear combinations of the columns of AA, equivalently all attainable outputs bb.

2
N(A)={ x∈Rn:Ax=0 }⊆Rn\quad N(A) = \{\, x \in \mathbb{R}^n : Ax = 0 \,\} \subseteq \mathbb{R}^n

Derivation hint: the null space (kernel) is the solution set of the homogeneous system Ax=0Ax=0.

3
C(AT)={ ATy:y∈Rm }⊆Rn\quad C(A^T) = \{\, A^T y : y \in \mathbb{R}^m \,\} \subseteq \mathbb{R}^n

Derivation hint: the row space is the column space of ATA^T, i.e. all linear combinations of the rows of AA viewed as vectors in Rn\mathbb{R}^n.

4
N(AT)={ y∈Rm:ATy=0 }⊆Rm\quad N(A^T) = \{\, y \in \mathbb{R}^m : A^T y = 0 \,\} \subseteq \mathbb{R}^m

Derivation hint: the left null space contains all yy with yTA=0y^T A = 0, hence the name "left." Here mm = number of rows (output dimension), nn = number of columns (input dimension), rr = rank = number of pivots = dimension of C(A)C(A).

TheoremFundamental Theorem of Linear Algebra

For any A∈Rm×nA \in \mathbb{R}^{m \times n} of rank rr:

Part I (Dimensions):

5
dim⁡C(A)=dim⁡C(AT)=r,dim⁡N(A)=n−r,dim⁡N(AT)=m−r\quad \dim C(A) = \dim C(A^T) = r, \quad \dim N(A) = n - r, \quad \dim N(A^T) = m - r

Derivation hint: column rank equals row rank (rr); the rank–nullity theorem gives the null-space dimensions in each space.

Part II (Orthogonality): Inside Rn\mathbb{R}^n, the row space and null space are orthogonal complements; inside Rm\mathbb{R}^m, the column space and left null space are orthogonal complements:

6
C(AT)⊥N(A),C(AT)⊕N(A)=Rn\quad C(A^T) \perp N(A), \quad C(A^T) \oplus N(A) = \mathbb{R}^n

Derivation hint: Ax=0Ax=0 means each row of AA is orthogonal to xx; the dimensions r+(n−r)=nr + (n-r) = n force a direct-sum decomposition.

7
C(A)⊥N(AT),C(A)⊕N(AT)=Rm\quad C(A) \perp N(A^T), \quad C(A) \oplus N(A^T) = \mathbb{R}^m

Derivation hint: apply [6] to ATA^T in place of AA.

Why It Holds / Derivation

ProofEquality of Row Rank and Column Rank

Step 1. Reduce AA to its reduced row echelon form R=EAR = EA, where EE is an invertible product of elementary matrices. Row operations are invertible linear combinations of rows, so they preserve the row space: C(AT)=C(RT)C(A^T) = C(R^T).

Step 2. The nonzero rows of RR are linearly independent (each has a leading 1 in a column where all other rows are zero). There are exactly rr pivots, so dim⁡C(AT)=r\dim C(A^T) = r.

Step 3. The rr pivot columns of RR are the standard basis vectors e1,…,ere_1,\dots,e_r (truncated), hence independent; the non-pivot columns are combinations of them. Therefore dim⁡C(R)=r\dim C(R) = r.

Step 4. Since EE is invertible, multiplication by EE is a bijection between C(A)C(A) and C(R)C(R), preserving dimension: dim⁡C(A)=dim⁡C(R)=r\dim C(A) = \dim C(R) = r.

Conclusion. dim⁡C(A)=r=dim⁡C(AT)\dim C(A) = r = \dim C(A^T), so row rank equals column rank. ■\blacksquare

∎
ProofOrthogonality of Row Space and Null Space

Step 1. Let x∈N(A)x \in N(A), so Ax=0Ax = 0. Write AA in terms of its rows r1T,…,rmTr_1^T, \dots, r_m^T. Then Ax=0Ax = 0 means riTx=0r_i^T x = 0 for every ii.

Step 2. Thus xx is orthogonal to every row rir_i, hence orthogonal to every linear combination of rows, i.e. to all of C(AT)C(A^T). This proves N(A)⊆C(AT)⊥N(A) \subseteq C(A^T)^\perp.

Step 3. Count dimensions. By rank–nullity, dim⁡N(A)=n−r\dim N(A) = n - r. By [5], dim⁡C(AT)⊥=n−dim⁡C(AT)=n−r\dim C(A^T)^\perp = n - \dim C(A^T) = n - r.

Step 4. A subspace contained in another of equal finite dimension must equal it: N(A)=C(AT)⊥N(A) = C(A^T)^\perp. Since their only common vector is 00 and their dimensions sum to nn, we get the direct sum C(AT)⊕N(A)=RnC(A^T) \oplus N(A) = \mathbb{R}^n. ■\blacksquare

∎
mathematician · Gilbert Strang | b. 1934

While the underlying theorems (rank–nullity, the closed range orthogonality relations) are 19th- and early-20th-century results, the unifying "four subspaces" picture — with its now-iconic diagram of two perpendicular planes mapping into two perpendicular planes — is the pedagogical creation of Gilbert Strang of MIT. Through his textbook Introduction to Linear Algebra and his widely viewed MIT OpenCourseWare lectures (18.06), Strang made the simultaneous visualization of all four spaces the organizing principle of an entire course. He coined the phrase "the Fundamental Theorem of Linear Algebra" to package the dimension and orthogonality facts into a single memorable statement.

Building Intuition

🧠 Intuition

Picture the matrix AA as a machine that takes input vectors xx from Rn\mathbb{R}^n and produces outputs bb in Rm\mathbb{R}^m. Split the input space Rn\mathbb{R}^n into two perpendicular pieces. The null space is the "blind spot": vectors there are mapped to zero and lost forever. The row space is everything perpendicular to the blind spot — and the machine treats it perfectly, mapping it one-to-one onto the column space. Now split the output space Rm\mathbb{R}^m. The column space is the set of all outputs the machine can actually produce — its "reachable" zone. The left null space is the perpendicular "unreachable" zone: no input ever lands there. So solving Ax=bAx = b asks: Is bb in the reachable zone? If yes, there is a solution. Is the blind spot trivial? If yes, the solution is unique. The row space and column space are "twins" of dimension rr, linked by an invertible correspondence; this is why AA behaves like an invertible r×rr \times r matrix when restricted to its own essential parts.

Figure
The Four Fundamental Subspaces: domain ℝⁿ and codomain ℝᵐ
Domain ℝⁿ Codomain ℝᵐ Row space C(Aᵀ) dim = r Null space N(A) dim = n − r ⊥ (perpendicular) Column space C(A) dim = r Left null space N(Aᵀ) dim = m − r ⊥ (perpendicular) A (one-to-one) A → 0

Worked Examples

ExampleA 3×4 Matrix — Find All Four Subspaces

Given:

A=[120100131214]A = \begin{bmatrix} 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 3 \\ 1 & 2 & 1 & 4 \end{bmatrix}

Step 1 — Row reduce. Subtract row 1 from row 3: (1,2,1,4)−(1,2,0,1)=(0,0,1,3)(1,2,1,4) - (1,2,0,1) = (0,0,1,3). Then subtract row 2 from the new row 3: (0,0,1,3)−(0,0,1,3)=(0,0,0,0)(0,0,1,3)-(0,0,1,3)=(0,0,0,0). The RREF is

R=[120100130000].R = \begin{bmatrix} 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 3 \\ 0 & 0 & 0 & 0 \end{bmatrix}.

Pivots in columns 1 and 3, so r=2r = 2. Here m=3,n=4m=3, n=4.

Step 2 — Dimensions. dim⁡C(A)=dim⁡C(AT)=2\dim C(A)=\dim C(A^T)=2; dim⁡N(A)=n−r=2\dim N(A)=n-r=2; dim⁡N(AT)=m−r=1\dim N(A^T)=m-r=1.

Step 3 — Column space. Take the pivot columns of the original AA:

C(A)=span⁡{[101],[011]}.C(A) = \operatorname{span}\left\{ \begin{bmatrix}1\\0\\1\end{bmatrix}, \begin{bmatrix}0\\1\\1\end{bmatrix}\right\}.

Step 4 — Row space. The nonzero rows of RR:

C(AT)=span⁡{(1,2,0,1), (0,0,1,3)}.C(A^T) = \operatorname{span}\left\{ (1,2,0,1),\ (0,0,1,3)\right\}.

Step 5 — Null space. Free variables x2=s, x4=tx_2 = s,\ x_4 = t. From RR: x1=−2s−tx_1 = -2s - t, x3=−3tx_3 = -3t. Special solutions:

N(A)=span⁡{[−2100],[−10−31]}.N(A) = \operatorname{span}\left\{ \begin{bmatrix}-2\\1\\0\\0\end{bmatrix}, \begin{bmatrix}-1\\0\\-3\\1\end{bmatrix}\right\}.

Step 6 — Left null space. Solve ATy=0A^T y = 0, i.e. find yy with y1+y3=0y_1 + y_3 = 0, 2y1+2y3=02y_1 + 2y_3 = 0, y2+y3=0y_2 + y_3 = 0, y1+3y2+4y3=0y_1 + 3y_2 + 4y_3 = 0. From the recorded elimination, the combination that zeroed row 3 was row3−row1−row2=0\text{row}_3 - \text{row}_1 - \text{row}_2 = 0, giving:

 N(AT)=span⁡{(−1,−1,1)} \boxed{\,N(A^T) = \operatorname{span}\{(-1,-1,1)\}\,}

Check: (−1)(1,2,0,1)+(−1)(0,0,1,3)+(1)(1,2,1,4)=(0,0,0,0)(-1)(1,2,0,1) + (-1)(0,0,1,3) + (1)(1,2,1,4) = (0,0,0,0). ✓ And (−1,−1,1)(-1,-1,1) is orthogonal to both columns of C(A)C(A): (−1)(1)+(−1)(0)+(1)(1)=0(-1)(1)+(-1)(0)+(1)(1)=0 and (−1)(0)+(−1)(1)+(1)(1)=0(-1)(0)+(-1)(1)+(1)(1)=0. ✓

ExampleSolvability via the Subspaces

Given: Using the same AA above, decide whether Ax=bAx = b is solvable for b1=(1,1,2)Tb_1 = (1, 1, 2)^T and b2=(1,1,1)Tb_2 = (1, 1, 1)^T, and count solutions.

Step 1 — Criterion. Ax=bAx=b is solvable iff b∈C(A)b \in C(A), equivalently iff b⊥N(AT)b \perp N(A^T), i.e. bT(−1,−1,1)=0b^T(-1,-1,1)=0.

Step 2 — Test b1b_1. (−1)(1)+(−1)(1)+(1)(2)=−1−1+2=0(-1)(1)+(-1)(1)+(1)(2) = -1-1+2 = 0. So b1∈C(A)b_1 \in C(A) → solvable. Because dim⁡N(A)=2>0\dim N(A) = 2 > 0, there are infinitely many solutions (a 2-parameter family: any particular solution plus N(A)N(A)).

Step 3 — Test b2b_2. (−1)(1)+(−1)(1)+(1)(1)=−1−1+1=−1≠0(-1)(1)+(-1)(1)+(1)(1) = -1-1+1 = -1 \ne 0. So b2∉C(A)b_2 \notin C(A) → no solution.

 Ax=b1: ∞ solutions;Ax=b2: inconsistent \boxed{\,Ax=b_1:\ \infty\text{ solutions};\qquad Ax=b_2:\ \text{inconsistent}\,}

Interpretation: b1b_1 lies in the reachable column space; b2b_2 has a nonzero projection onto the unreachable left null space, so no input can produce it exactly. (A least-squares "best fit" would still exist via Orthogonal Projection.)

Common Misconceptions

⚠️ Common mistake

The column space is NOT spanned by the pivot columns of the RREF. Row operations change the column space (they preserve the row space and null space, but not C(A)C(A)). To get a basis for C(A)C(A), identify which columns are pivot columns, then take those columns from the original matrix AA, not from RR. By contrast, the row space is read directly off the nonzero rows of RR, since row operations preserve it.

⚠️ Common mistake

Orthogonality is between the right pairs, in the right space. The row space and null space are orthogonal complements in Rn\mathbb{R}^n (the input side). The column space and left null space are orthogonal complements in Rm\mathbb{R}^m (the output side). The column space and null space generally live in different spaces (Rm\mathbb{R}^m vs Rn\mathbb{R}^n) and need not even have the same dimension — comparing them directly is meaningless unless m=nm=n.

CounterexampleEqual Rank ≠ Equal Subspaces

Consider

A=[1000],B=[0001].A = \begin{bmatrix}1 & 0\\0 & 0\end{bmatrix}, \qquad B = \begin{bmatrix}0 & 0\\0 & 1\end{bmatrix}.

Both are 2×22\times 2 of rank 11, so all four corresponding dimensions match. Yet C(A)=span⁡{(1,0)}C(A)=\operatorname{span}\{(1,0)\} while C(B)=span⁡{(0,1)}C(B)=\operatorname{span}\{(0,1)\} — different subspaces. Dimension data alone does not determine the subspaces; rank tells you the sizes of the four spaces, not their orientations.

Connections

connection

The four subspaces are the geometric scaffolding for much of linear algebra. The orthogonal decompositions [6] and [7] are exactly what make Orthogonal Projection and Least Squares Approximation work: the least-squares solution projects bb onto C(A)C(A), killing its N(AT)N(A^T) component. The Singular Value Decomposition makes the entire framework explicit — its right singular vectors split into orthonormal bases for C(AT)C(A^T) and N(A)N(A), and its left singular vectors split into orthonormal bases for C(A)C(A) and N(AT)N(A^T), with the singular values quantifying the row-space-to-column-space isomorphism. The dimension count is the Rank–Nullity Theorem applied twice (to AA and ATA^T), and the abstract version replaces "transpose" with the Adjoint Operator in inner-product spaces. The Pseudoinverse A+A^+ is precisely the inverse of the row-space-to-column-space map, extended by zero on N(AT)N(A^T).

Real-World Applications

🔬 Where this appears

Historical Development

⏳ History
- 1750s — Cramer & Euler: Early systematic study of linear systems and the conditions under which solutions exist or fail (foreshadowing rank).
- 1844 — Hermann Grassmann: Ausdehnungslehre introduces abstract linear (vector) spaces, subspaces, and dimension.
- 1850s–1860s — Sylvester & Cayley: The word "matrix" (Sylvester, 1850) and matrix algebra (Cayley, 1858) give the subject its modern symbolic apparatus.
- 1878 — Frobenius: Develops the theory of rank rigorously; the equality of row rank and column rank becomes a standard result.
- 1900s — Hilbert & Schmidt: Orthogonality, projections, and the geometry of solution spaces are extended to infinite dimensions (precursor to closed-range / Fredholm theory).
- 1907–1910 — Erhard Schmidt: Formalizes orthonormalization and orthogonal decomposition of inner-product spaces.
- 1936 — Eckart & Young: The SVD's low-rank approximation theorem ties singular values to the four subspaces' geometry.
- 1955 — Penrose: Defines the generalized (pseudo)inverse, making explicit the row-space-to-column-space isomorphism.
- 1976–present — Gilbert Strang: Packages the dimension and orthogonality results as "the Fundamental Theorem of Linear Algebra" and centers undergraduate teaching on the four-subspaces diagram.

Subtleties & Limits

open-problem

The clean orthogonal-complement story relies on the standard inner product and a finite-dimensional real (or complex) space. Several subtleties arise at the edges:

  • Other inner products / non-orthonormal bases: "Orthogonal complement" depends on the chosen inner product. Change the inner product (e.g. a weighted least squares with metric WW) and the complement of the row space changes, even though the null space does not. Reconciling the algebraic null space with the geometric complement requires care.
  • Infinite dimensions: For operators on Hilbert spaces, C(A)C(A) need not be closed, so C(A)‾=N(AT)⊥\overline{C(A)} = N(A^T)^\perp holds for the closure of the range, not the range itself. The four-subspace picture survives only with topological hedges (the Fredholm alternative, closed-range theorem).
  • Finite fields: Over Fq\mathbb{F}_q the dimension counts and rank–nullity carry over verbatim, but "orthogonality" can be degenerate — a nonzero vector can be self-orthogonal — so the orthogonal-complement direct sum [6]/[7] can fail. This is studied in self-dual codes.
  • Numerical rank: In floating-point computation, rank is ambiguous: tiny singular values blur the boundary between "in the column space" and "in the left null space." Choosing a threshold is genuinely problem-dependent, and naive Gaussian elimination can report the wrong rank for ill-conditioned matrices.

See Also

Rank–Nullity Theorem · Singular Value Decomposition · Orthogonal Projection · Least Squares Approximation · Gaussian Elimination · Pseudoinverse · Fredholm Alternative · Vector Spaces and Subspaces