Intuition What this page is
The parent note taught you what rank is and why row rank = column rank. Here we stress-test that idea against every kind of matrix the world can hand you: full rank, deficient rank, zero rows, square vs rectangular, a degenerate all-zero matrix, a real-world data problem, and an exam twist. If you can rank all of these, nothing can surprise you.
Prerequisites we lean on: Gaussian Elimination & Echelon Form , Row Space and Column Space , Linear Independence and Basis , and the parent Rank definition & the theorem .
Before any computation, one reminder in plain words.
Definition The two words we count with
A pivot is the first non-zero entry in a row after we reduce the matrix to a staircase (echelon) form. Picture it as the top of a step on a staircase — see the red circles in the figures below.
The rank is simply how many pivots (how many steps) that staircase has. That same number is the dimension of both the row space and the column space.
Every matrix falls into one of these "cells". Our job is to hit all of them with a worked example.
Cell
Case class
What makes it tricky
Example
A
Square, full rank (r = n )
every direction survives
Ex 1
B
Square, rank-deficient (r < n )
a hidden dependency
Ex 2
C
Wide rectangle m < n
more columns than the space allows
Ex 3
D
Tall rectangle m > n
rank capped by columns
Ex 4
E
Zero rows / zero columns present
nonzero-row trap
Ex 5
F
All-zero (degenerate) matrix
the limiting case r = 0
Ex 6
G
Rank-1 witness (outer product)
column rank seen instantly
Ex 7
H
Real-world word problem (data table)
translate then rank
Ex 8
I
Exam twist — rank of a product A B
the bound rank ( A B ) ≤ min
Ex 9
J
Parameter case — rank depends on a symbol k
limiting/degenerate values
Ex 10
We now walk every cell.
3 × 3 matrix where nothing collapses
A = 1 0 2 2 1 0 0 3 1
Forecast: guess the rank before reading on. Three rows, none is an obvious copy of another — so a good guess is the maximum, 3 . Let's verify.
Step 1 — clear column 1 below the pivot. R 3 → R 3 − 2 R 1 .
Why this step? The entry 2 under the first pivot must become 0 so the staircase can descend cleanly.
→ 1 0 0 2 1 − 4 0 3 1
Step 2 — clear column 2 below its pivot. R 3 → R 3 + 4 R 2 .
Why? Same reason: expose whether row 3 is independent or secretly a mix of the first two.
→ 1 0 0 2 1 0 0 3 13
Step 3 — count pivots. Positions ( 1 , 1 ) , ( 2 , 2 ) , ( 3 , 3 ) : three pivots. rank ( A ) = 3 .
Why this finishes? Three non-zero staircase rows ⇒ the row space is 3 -dimensional ⇒ full rank.
Verify: full rank on a square matrix means det A = 0 . Here det A = 13 = 0 (equal to the product of the pivots 1 ⋅ 1 ⋅ 13 ). By the Invertible Matrix Theorem , A is invertible — exactly what full rank promises. ✔️
Worked example Ex 2 · A square matrix hiding one dependency
A = 1 2 1 2 4 1 3 6 1
Forecast: look at rows 1 and 2 — the second is exactly 2 × the first. So at least one row is "not new". Predict rank = 2 , not 3 .
Step 1 — kill the copy. R 2 → R 2 − 2 R 1 .
Why? Row 2 is 2 R 1 ; subtracting reveals it carries zero new information.
→ 1 0 1 2 0 1 3 0 1
Step 2 — clear column 1 of row 3. R 3 → R 3 − R 1 .
Why? Standard descent of the staircase.
→ 1 0 0 2 0 − 1 3 0 − 2
Step 3 — swap to make a clean staircase. R 2 ↔ R 3 .
Why? A zero row must sit at the bottom; a row swap never changes the row space, only its order.
→ 1 0 0 2 − 1 0 3 − 2 0
Step 4 — count pivots. ( 1 , 1 ) and ( 2 , 2 ) : two pivots. rank = 2 .
Verify: rank-deficient square ⇒ det A = 0 . Indeed det A = 0 (row 2 = 2 ⋅ row 1 forces it). Matches the deficiency. ✔️
Worked example Ex 3 · Two rows, four columns — rank is capped by rows
A = ( 1 0 0 1 2 − 1 1 3 )
Forecast: the space spanned lives among vectors of length 4 , but there are only 2 rows. Rank cannot exceed min ( 2 , 4 ) = 2 . Rows look independent, so predict exactly 2 .
Step 1 — check independence of the two rows. Is either a multiple of the other?
Why this step? With only two rows, rank is 2 unless one is a scalar multiple of the other.
Row 1 starts ( 1 , 0 , … ) , row 2 starts ( 0 , 1 , … ) — no scalar makes one into the other.
Step 2 — it is already in echelon form with pivots in columns 1 and 2 . Count: two pivots.
rank = 2 .
Verify (via bound): rank ≤ min ( m , n ) = min ( 2 , 4 ) = 2 , and we achieved 2 . The bound is tight. ✔️ Every wide matrix is capped by its smaller dimension.
Worked example Ex 4 · Four rows, two columns — rank capped by columns
A = 1 2 − 1 0 2 4 − 2 5
Forecast: four rows but only 2 columns, so rank ≤ min ( 4 , 2 ) = 2 . Rows 1,2,3 are all multiples of ( 1 , 2 ) ; row 4 is different. Predict 2 .
Step 1 — eliminate below the first pivot.
R 2 → R 2 − 2 R 1 , R 3 → R 3 + R 1 .
Why? Rows 2 and 3 start proportional to row 1; clearing exposes whether they vanish.
→ 1 0 0 0 2 0 0 5
Step 2 — move the live row up. R 2 ↔ R 4 .
Why? Put the non-zero row ( 0 , 5 ) where a second pivot can appear; row swaps preserve the row space.
→ 1 0 0 0 2 5 0 0
Step 3 — count pivots: ( 1 , 1 ) and ( 2 , 2 ) ⇒ two . rank = 2 .
Verify: column rank must equal 2 too. Columns are ( 1 , 2 , − 1 , 0 ) T and ( 2 , 4 , − 2 , 5 ) T ; the second is not 2 × the first (the last entry 5 = 0 ), so the two columns are independent ⇒ column rank = 2 = row rank. The theorem holds again. ✔️
Worked example Ex 5 · Don't count nonzero rows of the
original matrix
A = 1 2 0 2 4 0 3 6 0
Forecast: it is tempting to say "two nonzero rows ⇒ rank 2 ". Resist! Row 2 is 2 × row 1. Predict rank = 1 .
Step 1 — reduce. R 2 → R 2 − 2 R 1 .
Why? To test whether the two nonzero rows are genuinely independent (the mistake the parent note warns about).
→ 1 0 0 2 0 0 3 0 0
Step 2 — count pivots: only ( 1 , 1 ) . One pivot. rank = 1 .
Verify: column rank — every column is a multiple of the first (col 2 = 2 col 1 , col 3 = 3 col 1 ), so column rank = 1 . Matches. ✔️
Common mistake The trap this cell exposes
Counting nonzero rows of the raw matrix (here 2 ) overcounts. You must reduce first , then count pivots (here 1 ).
Worked example Ex 6 · What is the rank of the zero matrix?
A = ( 0 0 0 0 )
Forecast: there are no independent directions at all — the machine sends every vector to the origin. Predict rank = 0 .
Step 1 — reduce. Nothing to do; it is already in echelon form.
Step 2 — count pivots. There is no non-zero entry anywhere ⇒ zero pivots. rank = 0 .
Why this is legal? The bound 0 ≤ rank ( A ) ≤ min ( m , n ) explicitly allows 0 . This is the lower limiting value.
Verify: row space = { 0 } has dimension 0 ; column space = { 0 } has dimension 0 . Both equal 0 . The theorem survives even at the extreme. ✔️
Worked example Ex 7 · See column rank instantly
A = 2 − 1 3 ( 1 4 ) = 2 − 1 3 8 − 4 12
Forecast: A is a single column times a single row. Every column is a scalar multiple of ( 2 , − 1 , 3 ) T . So column rank = 1 . Predict rank = 1 .
Step 1 — confirm columns are proportional. col 2 = 4 ⋅ col 1 .
Why? Matrix Multiplication as Linear Combination : an outer product u v T has every column a multiple of u , so its column space is the single line through u .
Step 2 — column space is a line through ( 2 , − 1 , 3 ) ⇒ dimension 1 ⇒ rank = 1 .
Verify: reduce to check. R 2 → R 2 + 2 1 R 1 , R 3 → R 3 − 2 3 R 1 both kill their rows, leaving one pivot. Row rank = 1 = column rank. ✔️
Worked example Ex 8 · A price table that isn't as informative as it looks
A shop records three receipts. Each row is (\text{apples},\ \text{bananas},\ \text{total cost in }\ )$:
A = 2 4 1 1 2 3 5 10 8
Question: how many genuinely independent pieces of pricing information are here?
Forecast: receipt 2 is exactly double receipt 1 (same shopping, twice) — it teaches nothing new. So among 3 receipts, expect only 2 independent facts. Predict rank = 2 .
Step 1 — translate. "Independent pieces of information" = rank of the receipt table.
Why? Each dependent row is redundant data; rank counts the non-redundant ones.
Step 2 — reduce. R 2 → R 2 − 2 R 1 , R 3 → R 3 − 2 1 R 1 .
→ 2 0 0 1 0 2 5 5 0 2 11
Step 3 — swap zero row down. R 2 ↔ R 3 .
→ 2 0 0 1 2 5 0 5 2 11 0
Step 4 — count pivots: ( 1 , 1 ) and ( 2 , 2 ) ⇒ two . rank = 2 .
Verify (units & meaning): the entries in column 3 are dollars, columns 1–2 are counts — the numbers stay consistent, and the answer "2 independent receipts" matches the observation that receipt 2 duplicated receipt 1. The shop effectively has 2 pricing equations, enough to solve for two unknown prices. ✔️
Worked example Ex 9 · Predict
rank ( A B ) before multiplying
A = ( 1 2 2 4 ) , B = ( 1 1 1 1 1 1 )
Forecast: A has rank 1 (row 2 = 2 × row 1) and B has rank 1 (row 2 = row 1). The bound says rank ( A B ) ≤ min ( rank A , rank B ) = min ( 1 , 1 ) = 1 . Predict rank ( A B ) ≤ 1 .
Step 1 — multiply.
Why? To see whether the bound is met with equality or the product collapses further (it can drop below the bound).
A B = ( 1 ⋅ 1 + 2 ⋅ 1 2 ⋅ 1 + 4 ⋅ 1 ⋯ ⋯ ⋯ ⋯ ) = ( 3 6 3 6 3 6 )
Step 2 — rank of the result. Every column is ( 3 , 6 ) T ; row 2 = 2 × row 1. One pivot after reducing. rank ( A B ) = 1 .
Verify: 1 ≤ min ( 1 , 1 ) = 1 ✔️ — the bound holds and is tight here.
Recall Why the product can drop below the bound
Take the same A but B ′ = ( 1 − 2 1 0 0 ) (rank 1 ). Then the columns of A B ′ can land in the kernel of A and give rank ( A B ′ ) = 0 . The bound is an upper limit, never a guarantee of equality.
Worked example Ex 10 · When does the rank drop?
A = ( 1 3 2 k )
for a real number k . Find rank ( A ) in every case.
Forecast: two rows. They become dependent only when row 2 is a multiple of row 1. Row 1 is ( 1 , 2 ) ; scaling by 3 gives ( 3 , 6 ) . So the danger value is k = 6 . Predict: rank 2 usually, rank 1 at k = 6 .
Step 1 — eliminate. R 2 → R 2 − 3 R 1 .
Why? To isolate the single entry whose vanishing signals dependence.
→ ( 1 0 2 k − 6 )
Step 2 — split on the pivot entry k − 6 .
If k − 6 = 0 (i.e. k = 6 ): a second pivot exists ⇒ rank = 2 .
If k − 6 = 0 (i.e. k = 6 ): row 2 vanishes ⇒ only one pivot ⇒ rank = 1 .
Why cover both? The parent contract: every case, including the degenerate/limiting value k = 6 , must be shown.
Verify: det A = 1 ⋅ k − 2 ⋅ 3 = k − 6 . Full rank ⟺ det = 0 ⟺ k = 6 . At k = 6 , det = 0 and rank drops to 1 . Consistent with the pivot analysis. ✔️
Recall Quick self-check across the scenario matrix
Which cell has rank = 0 , and why is that allowed? ::: Cell F (all-zero matrix); the bound 0 ≤ rank ≤ min ( m , n ) permits the lower limit 0 .
A wide 2 × 5 matrix — what is its maximum possible rank? ::: min ( 2 , 5 ) = 2 .
If rank A = 1 and rank B = 1 , can rank ( A B ) = 0 ? ::: Yes — the bound is only an upper limit; overlap with A 's kernel can push it lower.