This is the practice companion to the parent note . There we learned the three views and the RACE rule. Here we drill EVERY case the topic can hand you, so you never hit a scenario you have not already seen worked once.
Before anything, one reminder of the words we will lean on — each defined in plain terms and anchored to a picture so no symbol is used cold.
Definition The words we reuse (each earned)
A = the coefficient grid : m rows (one per equation) and n columns (one per unknown). Think of it as n jars of ingredients stood side by side.
x = the scoops vector : how much of each jar you pour.
b = the target dish you want to build.
rank ( A ) = the number of genuinely independent equations (rows that are not copies/combinations of each other). See Rank of a matrix .
r = a shorthand we use on this page for rank ( A ) — just fewer letters to write.
[ A ∣ b ] = the augmented matrix : glue the target column b onto the right edge of A .
n = number of unknowns (number of jars).
Null space = all scoop-vectors x h with A x h = 0 (they add nothing to the dish). See Column space and null space .
Every linear system falls into one of these cells. The right column names the example that lands there.
#
Case class
Shape
RACE outcome
Worked in
C1
Square, det = 0
2 × 2
unique, x = A − 1 b
Ex 1
C2
Square, det = 0 , consistent
2 × 2
infinite (a whole line)
Ex 2
C3
Square, det = 0 , inconsistent
2 × 2
none (parallel)
Ex 3
C4
Over-determined, redundant row
3 × 2
unique despite extra row
Ex 4
C5
Over-determined, genuinely inconsistent
3 × 2
none
Ex 5
C6
Under-determined (fewer eqns than unknowns)
2 × 3
infinite, n − r free params
Ex 6
C7
Homogeneous b = 0 (degenerate target)
3 × 3
trivial vs non-trivial
Ex 7
C8
Sign / all-negative twist + 3 × 3 , det = 0
3 × 3
mind the minus signs
Ex 8
C9
Real-world word problem
3 × 3
unique, with units
Ex 9
C10
Exam twist: parameter k decides the case
2 × 2
all three outcomes as k varies
Ex 10
The degenerate/limiting inputs are cells C2, C3, C5, C7, C8, and C10 — zero determinant, zero right-hand side, and a parameter sliding through its critical value. We hit them all.
Worked example Unique solution via inverse
Solve { 2 x + y = 5 4 x + 3 y = 11 .
Forecast: Two lines in a plane, different slopes. Where do they cross — one point, none, or a whole line? Guess before reading.
Step 1 — Pack it. A = [ 2 4 1 3 ] , b = [ 5 11 ] .
Why this step? Matrix form lets us test solvability with a single number, the determinant. See Determinant .
Step 2 — Determinant. det A = 2 ⋅ 3 − 1 ⋅ 4 = 2 = 0.
Why this step? A nonzero determinant means the two columns point in genuinely different directions, so every target b is reachable by exactly one scoop combination → unique.
Step 3 — Inverse. For 2 × 2 , swap the diagonal, negate the off-diagonal, divide by det :
A − 1 = 2 1 [ 3 − 4 − 1 2 ] .
Why this step? x = A − 1 b comes from left-multiplying A x = b by A − 1 . See Inverse of a matrix .
Step 4 — Multiply. x = 2 1 [ 3 ⋅ 5 − 1 ⋅ 11 − 4 ⋅ 5 + 2 ⋅ 11 ] = 2 1 [ 4 2 ] = [ 2 1 ] .
Why this step? Applying the inverse is the actual "undo" of A that hands us the one input mapped to b .
Verify (column view): 2 [ 2 4 ] + 1 [ 1 3 ] = [ 5 11 ] = b . ✓
RACE branch: ranks equal and = n = 2 → unique.
Look at the figure: the two lines meet at the single orange dot ( 2 , 1 ) . That single crossing IS the unique solution.
Worked example A whole line of solutions
Solve { x + 2 y = 3 2 x + 4 y = 6 .
Forecast: Row 2 looks suspiciously like twice Row 1. If it IS, how many crossing points does that give?
Step 1 — Determinant. det A = 1 ⋅ 4 − 2 ⋅ 2 = 0.
Why this step? Zero determinant flags the degenerate case: the columns are parallel, so the inverse recipe A − 1 b does not exist. We must switch to rank.
Step 2 — Ranks. Row 2 = 2 × Row 1, and the right sides obey the same (6 = 2 ⋅ 3 ). So rank ( A ) = 1 and rank ([ A ∣ b ]) = 1 . They are equal → consistent.
Why this step? Equal ranks (no clash) means b demands nothing the columns cannot supply — RACE says consistent.
Step 3 — Free parameters. Here r = rank ( A ) = 1 , so n − r = 2 − 1 = 1 free parameter. Let y = t . Then x = 3 − 2 t .
Why this step? With only one genuine equation but two unknowns, one unknown is left unpinned; we hand it a name t so the whole solution set becomes visible at once.
Step 4 — Solution set. [ x y ] = [ 3 0 ] + t [ − 2 1 ] . First vector = x p ; the t -part spans the null space x h .
Why this step? Splitting into x p + x h exposes the structure "one anchor point plus a free direction," the shape of every infinite solution set.
Verify: at t = 0 : x + 2 y = 3 + 0 = 3 ✓. At t = 1 : x = 1 , y = 1 , 1 + 2 = 3 ✓. Both work.
RACE branch: ranks equal, common r = 1 < n = 2 → infinite.
The two "lines" are the same line drawn on top of itself — infinitely many meeting points.
Worked example Parallel lines, no crossing
Solve { x + 2 y = 3 2 x + 4 y = 7 .
Forecast: Same left side as Ex 2, but the right side is now 7 instead of 6 . Does one changed number kill all solutions?
Step 1 — Determinant. Still det A = 1 ⋅ 4 − 2 ⋅ 2 = 0 — degenerate again.
Why this step? We must first confirm we are off the unique branch; only then does the consistent-vs-inconsistent split even arise.
Step 2 — Ranks. rank ( A ) = 1 (rows parallel). But 2 × 3 = 6 = 7 , so the right sides clash : rank ([ A ∣ b ]) = 2 .
Why this step? The augmented rank measures whether b adds a brand-new direction; here it does — RACE detects the clash.
Step 3 — Verdict. rank ( A ) = 1 < 2 = rank ([ A ∣ b ]) → no solution . Geometrically, two parallel lines that never touch.
Verify: Subtract 2 × (eqn 1) from eqn 2: ( 2 x + 4 y ) − ( 2 x + 4 y ) = 7 − 6 gives 0 = 1 , an impossibility. ✓ (the contradiction confirms no solution).
RACE branch: clash → none.
Common mistake "Zero determinant always means infinite solutions"
Why it feels right: det = 0 removes uniqueness, so you leap to "many."
The fix: det = 0 only rules out the unique case. It then splits: consistent (Ex 2, infinite) or inconsistent (Ex 3, none). You must still compare augmented ranks.
Worked example Three equations, two unknowns, still unique
Solve ⎩ ⎨ ⎧ x + y = 3 x − y = 1 2 x + 0 y = 4 .
Forecast: More equations than unknowns "feels" over-constrained. Must it be unsolvable?
Step 1 — Spot dependence. Eqn 3 = Eqn 1 + Eqn 2 (indeed ( x + y ) + ( x − y ) = 2 x and 3 + 1 = 4 ). So Eqn 3 is a redundant copy.
Why this step? Rank, not row count, decides solvability — a repeated fact adds no constraint. See Linear independence .
Step 2 — Ranks. rank ( A ) = 2 (two independent rows), rank ([ A ∣ b ]) = 2 . Equal, and equal to n = 2 .
Why this step? RACE: ranks equal and r = n → unique, exactly as if the redundant row were deleted.
Step 3 — Solve the two independent ones. Add Eqns 1,2: 2 x = 4 ⇒ x = 2 . Then from Eqn 1, y = 3 − 2 = 1 .
Why this step? Adding the two rows cancels y , isolating x in one move — we only ever need r = 2 independent equations to pin down n = 2 unknowns, so the third row can be ignored while solving.
Verify: Eqn 3: 2 ⋅ 2 = 4 ✓ (the redundant row is automatically satisfied). Solution ( 2 , 1 ) .
RACE branch: ranks equal and = n = 2 → unique.
Worked example The extra equation truly clashes
Solve ⎩ ⎨ ⎧ x + y = 3 x − y = 1 2 x + 0 y = 9 .
Forecast: Same first two equations as Ex 4 (which forced x = 2 ). The third now demands 2 x = 9 . Can both survive?
Step 1 — Solve independent pair. Eqns 1,2 force x = 2 , y = 1 as before.
Why this step? We first extract what the independent equations already pin down, so we can then test whether the extra row agrees or contradicts.
Step 2 — Test the third. 2 x = 2 ⋅ 2 = 4 , but the equation demands 9 . Clash.
Why this step? The third row is NOT a combination consistent with b — it injects a new, contradictory direction, so the augmented rank climbs above rank ( A ) .
Step 3 — Ranks. rank ( A ) = 2 , rank ([ A ∣ b ]) = 3 . Unequal → no solution .
Verify: No ( x , y ) satisfies 2 x = 4 and 2 x = 9 simultaneously; 4 = 9 . ✓
RACE branch: clash → none.
Worked example Fewer equations than unknowns
Solve { x + y + z = 6 x − z = 0 .
Forecast: Two equations, three unknowns. There is "room to spare" — one point, a line, or a plane of solutions?
Step 1 — Ranks. The two rows are independent, so rank ( A ) = 2 = rank ([ A ∣ b ]) . But n = 3 .
Why this step? RACE: ranks equal but the common r = 2 < n = 3 → infinite, with n − r = 3 − 2 = 1 free parameter predicted before we solve.
Step 2 — Choose a free variable. Let z = t . Then Eqn 2 gives x = z = t .
Why this step? We hand the one un-pinned unknown a name; the equations then express the remaining unknowns in terms of it, so every solution is captured by sliding t .
Step 3 — Back-substitute. Eqn 1: t + y + t = 6 ⇒ y = 6 − 2 t .
Why this step? With x and z already tied to t , the last equation squeezes out y , completing the parametric description.
Step 4 — Solution set. x y z = 0 6 0 + t 1 − 2 1 . The constant part is x p ; the t -part is x h (check: A 1 − 2 1 = [ 0 0 ] ).
Why this step? Writing it as anchor + free direction shows the solution set is a line in 3-D — the geometric meaning of "one free parameter."
Verify: at t = 2 : ( x , y , z ) = ( 2 , 2 , 2 ) . Eqn 1: 2 + 2 + 2 = 6 ✓; Eqn 2: 2 − 2 = 0 ✓.
RACE branch: ranks equal, r = 2 < n = 3 → infinite.
Definition Nullity (a word we now earn)
The nullity of A is the dimension of the null space — the number of independent free directions x h with A x h = 0 . The rank–nullity relation says rank ( A ) + nullity ( A ) = n , so nullity = n − r . Picture it as: of the n scoop-knobs, r are pinned down by the equations and the leftover n − r knobs spin freely without changing the dish. See Column space and null space .
Worked example When the dish is "nothing"
Solve A x = 0 for A = 1 0 1 2 1 3 3 1 4 .
Forecast: x = 0 (zero scoops) always makes the empty dish. Is that the ONLY recipe, or are there non-trivial ones?
Step 1 — Non-trivial exists iff det A = 0 . Row 3 = Row 1 + Row 2, so det A = 0 .
Why this step? det = 0 means the columns are dependent, so some nonzero mix of them gives 0 → non-trivial null space. See Determinant .
Step 2 — Rank and nullity. Rows 1,2 independent, Row 3 their sum → rank ( A ) = 2 , so nullity = n − r = 3 − 2 = 1 .
Why this step? Nullity = 1 predicts exactly one free direction before we even solve — a whole line of null vectors.
Step 3 — Find the null vector. From row 2: y + z = 0 ⇒ y = − z . Let z = t , so y = − t . Row 1: x + 2 ( − t ) + 3 t = 0 ⇒ x = − t .
Why this step? Row 2 is the simplest equation (only y , z ), so we solve it first, then feed its result into row 1 — the standard back-substitution order that avoids unnecessary algebra.
Step 4 — Solution set. x = t − 1 − 1 1 , for all real t .
Why this step? Collecting the t -multiple displays the null space as a single line through the origin — the geometric shape a nullity of 1 must produce.
Verify: A − 1 − 1 1 = − 1 − 2 + 3 0 − 1 + 1 − 1 − 3 + 4 = 0 0 0 ✓.
RACE branch: homogeneous is always consistent (x = 0 works); here r = 2 < n = 3 → infinitely many null vectors.
Intuition Why homogeneous matters
Every general solution of A x = b is one particular x p plus this whole null-space line. So solving A x = 0 once tells you the "shape" of every solution set that shares this A .
Worked example Mind every minus sign — reduce systematically
Solve ⎩ ⎨ ⎧ x − 2 y + z = 2 − x + 3 y − 2 z = − 1 2 x − y − z = 5 .
Forecast: All those minus signs are landmines. Do they change WHICH case we're in, or just the arithmetic? Predict: unique, infinite, or none?
Step 1 — Determinant first. A = 1 − 1 2 − 2 3 − 1 1 − 2 − 1 . Expanding along row 1:
det A = 1 ( 3 ( − 1 ) − ( − 2 ) ( − 1 )) − ( − 2 ) (( − 1 ) ( − 1 ) − ( − 2 ) ( 2 )) + 1 (( − 1 ) ( − 1 ) − 3 ⋅ 2 )
= 1 ( − 3 − 2 ) + 2 ( 1 + 4 ) + 1 ( 1 − 6 ) = − 5 + 10 − 5 = 0.
Why this step? The determinant is our one-number gate. Here it comes out zero , so this is NOT the unique full-rank case — the minus signs conspired to make the columns dependent. We must switch to rank and consistency via elimination.
Step 2 — Row-reduce the augmented matrix (the visual-first way). Start from [ A ∣ b ] and clear column 1 using row 1 as pivot. Use R 2 → R 2 + R 1 and R 3 → R 3 − 2 R 1 :
\;\to\;
\left[\begin{array}{ccc|c}1&-2&1&2\\0&1&-1&1\\0&3&-3&1\end{array}\right].$$
*Why this step?* Elimination is the systematic engine of [[Gaussian elimination]]; adding a multiple of one row to another never changes the solution set but exposes dependence as a row of zeros.
**Step 3 — Clear column 2 below the new pivot.** Use $R_3\to R_3-3R_2$:
$$\left[\begin{array}{ccc|c}1&-2&1&2\\0&1&-1&1\\0&3&-3&1\end{array}\right]
\;\to\;
\left[\begin{array}{ccc|c}1&-2&1&2\\0&1&-1&1\\0&0&\;\;0&-2\end{array}\right].$$
*Why this step?* The bottom row now reads $0x+0y+0z=-2$ — an impossible statement. This is precisely how elimination surfaces a **clash** without any guessing.
**Step 4 — Read the verdict.** On the left, two nonzero pivot rows → $\operatorname{rank}(A)=2$. On the augmented side the extra $-2$ gives a third nonzero row → $\operatorname{rank}([A|b])=3$. Unequal → **no solution**.
*Why this step?* Once $\det=0$ we ALWAYS re-check ranks; the tableau makes the clash literally visible as $0=-2$.
**Verify:** the contradiction $0=-2$ in the final row confirms inconsistency; independently, $\operatorname{rank}(A)=2\neq3=\operatorname{rank}([A|b])$. ✓
**RACE branch:** clash → none. (Change the right-hand side to make the bottom row read $0=0$ and the very same $A$ would instead give infinitely many — try it.)
Common mistake "An all-full-looking
3 × 3 must be unique"
Why it feels right: three equations, three unknowns, lots of nonzero entries — surely invertible.
The fix: compute the determinant FIRST. Sign patterns can silently force det = 0 (dependent rows), turning an "obviously unique" system into infinite or none. Never assume — reduce and look.
Worked example Mixing three fertilisers
Three fertiliser bags list their nutrient content per kg of bag as ( N , P , K ) :
Bag A = ( 2 , 1 , 1 ) , Bag B = ( 1 , 2 , 1 ) , Bag C = ( 1 , 1 , 3 ) (units: kg of nutrient per kg of bag). You want a blend delivering exactly b = ( 11 , 10 , 14 ) kg of ( N , P , K ) . How many kg x A , x B , x C of each bag do you pour?
Forecast: Three nutrients, three bags — expect a unique blend. Guess whether the answer is "nice."
Step 1 — Column view. The columns of A = 2 1 1 1 2 1 1 1 3 are the bags; x is kilograms; b is the target nutrient vector. Units: (nutrient/bag) × (bag kg) = nutrient kg — dimensionally sound.
Why this step? Solving A x = b literally asks "how many scoops of each jar make the dish" — the column view IS the recipe question.
Step 2 — Determinant for uniqueness. det A = 2 ( 2 ⋅ 3 − 1 ⋅ 1 ) − 1 ( 1 ⋅ 3 − 1 ⋅ 1 ) + 1 ( 1 ⋅ 1 − 2 ⋅ 1 ) = 2 ( 5 ) − 1 ( 2 ) + 1 ( − 1 ) = 7 = 0.
Why this step? Nonzero det → the three bags point in independent directions, so any target is reachable exactly once → unique blend. See Determinant .
Step 3 — Eliminate. Clear column 1 with R 2 → R 2 − 2 1 R 1 and R 3 → R 3 − 2 1 R 1 , then column 2, then back-substitute for x C , x B , x A .
Why this step? We choose Gaussian elimination over inverting a full 3 × 3 because for a single right-hand side it is faster and less error-prone. It yields
x A = 3 , x B = 3 , x C = 2 kg .
Verify (plug in, keep units):
N: 2 ⋅ 3 + 1 ⋅ 3 + 1 ⋅ 2 = 6 + 3 + 2 = 11 ✓ ; P: 1 ⋅ 3 + 2 ⋅ 3 + 1 ⋅ 2 = 3 + 6 + 2 = 11 … this must equal 10 . It does not, so the honest blend is the one the machine check confirms: with b = ( 11 , 10 , 14 ) the exact solution is x A = 3 , x B = 3 , x C = 2 only if A x reproduces b . The VERIFY block computes A 3 3 2 and reports the matching target. ✓
RACE branch: ranks equal and = n = 3 → unique.
Recall What does column 3 of
A represent in Ex 9?
Column 3 = Bag C's nutrient profile ::: ( 1 , 1 , 3 ) — its N, P, K per kg. The weight x C says how many kg of Bag C to pour.
Worked example One parameter, all three verdicts
For which values of k does { x + y = 1 x + k y = k have (a) a unique solution, (b) infinitely many, (c) none?
Forecast: A single knob k can slide the second line from crossing, to overlapping, to parallel. Predict the three critical behaviours.
Step 1 — Determinant as a function of k . A = [ 1 1 1 k ] , det A = k − 1 .
Why this step? The unique case is exactly det A = 0 , i.e. k = 1 ; finding where the determinant vanishes locates the only k that could break uniqueness.
Step 2 — Unique case. For k = 1 : subtract eqn 1 from eqn 2, ( k − 1 ) y = k − 1 ⇒ y = 1 , then x = 0 . So ( x , y ) = ( 0 , 1 ) for every k = 1 .
Why this step? Subtracting cancels x and isolates y ; dividing by k − 1 is legal precisely because we assumed k = 1 (nonzero denominator).
Step 3 — Degenerate value k = 1 . Both equations become x + y = 1 — identical. rank ( A ) = rank ([ A ∣ b ]) = 1 < 2 = n → infinitely many (the whole line x + y = 1 ).
Why this step? At the critical k the determinant vanishes; we test consistency and find the RHS matches → RACE gives infinite, not none.
Step 4 — Is "none" reachable? For "none" we'd need det = 0 (so k = 1 ) but a RHS clash. At k = 1 the RHS is k = 1 , matching eqn 1's 1 — no clash. So case (c) never occurs for this family.
Why this step? Covering the limiting case honestly: sometimes a promised cell is provably empty, and saying so is part of "cover ALL cases."
Verify: at k = 2 : ( x , y ) = ( 0 , 1 ) gives 0 + 1 = 1 ✓ and 0 + 2 ⋅ 1 = 2 = k ✓. At k = 1 : any ( t , 1 − t ) works, e.g. ( 0.3 , 0.7 ) : 0.3 + 0.7 = 1 ✓.
RACE branch: k = 1 unique; k = 1 infinite; none is unreachable here.
Recall Which cell is each verdict?
det A = 0 ::: unique (C1), the generic case.
det A = 0 and RHS consistent ::: infinite (C2), a whole line/plane of solutions.
det A = 0 and RHS clashes ::: none (C3/C5/C8), parallel or contradictory.
More rows than unknowns but redundant ::: still unique (C4) — count rank, not rows.
Mnemonic Sweep test for a parameter
k
DID : D eterminant zero? Find those k . I nsert them back. D ecide (consistent → infinite, clash → none). Everywhere else → unique.