You eliminate a system and the last row reads . You look for the two parallel planes that must cause it, and there are none. The usual picture of "no solution" is wrong for three planes, and elimination shows why.
Before you move anything, commit to an answer.
In the scene below, set a₃₃ = 7 and b₃ = 2. No row of A is a multiple of another, so no two planes are parallel. How many points lie on all three planes?
The row picture of a 3 × 3 system: each row of [A | b] is a plane, cut to a box. A thin line marks where each pair of planes crosses, and a dot or a dashed line marks the points on all three. The slider t runs elimination: row 2 − 2 × row 1 from t = 0 to 1, row 3 − 4 × row 1 from 1 to 2, and row 3 − 3 × row 2 from 2 to 3. The sliders a₃₃ and b₃ set the last entry of A and of b. t = 0, a₃₃ = 8, b₃ = 2. Row 1 [2, 1, 1 | 1]. Row 2 [4, 3, 3 | 1]. Row 3 [8, 7, 8 | 2]. All three planes meet at (1, −2, 1). Each pair of planes crosses in a line.
Each translucent sheet is one row of , the thin dark lines are where two planes cross, and the dot is where all three meet. Slide from to to run elimination one step at a time. The point does not move. Then set to and change between and .
Elimination on the scene's system#
The scene opens on the first below. Gaussian elimination uses each pivot to clear the entries under it. Pivot gives multipliers and . Then pivot gives :
Back-substitution gives , and .
Why the point stays. Row 2 becomes row 2 − 2 × row 1. Any on planes 1 and 2 satisfies that combination, so the new plane 2 swings about the line where the old planes 1 and 2 crossed. Adding row 1 back undoes the step, so no point is gained either. The original planes are only to apart and read as one thick sheet. The planes of are to apart. Elimination does not move the answer. It makes the answer legible.
Elimination as matrices, and A = LU#
Subtracting times row from row is left-multiplication by , the identity with at . So with . Each is undone by , so is invertible: the algebra of "the point stays".
is unit lower triangular and holds the multipliers below its diagonal. That is the LU factorization :
Factoring costs once. Each new then costs a forward solve and a back solve , about operations. With no row exchanges, is the product of the pivots, here .
When a pivot is zero#
Keep the first two rows and let vary. Elimination gives a third pivot of and a third right side of , so
Rows 1 and 2 never change, so the point slides along their crossing line as nears . At plane 3 turns parallel to that line, and the left side of row 3 is row 1 row 2. The right side decides:
- : row 3 reduces to , and the planes share the line through along .
- : row 3 reads , and the three crossing lines are parallel.
Neither case needs parallel planes. Strang's instructor manual (5th ed., Problem Set 2.2, Problem 20) puts it this way: "No parallel planes but still no solution. The three planes in the row picture form a triangular tunnel."
A zero pivot with a nonzero entry below it is a different problem. The matrix is fine and the rows are in the wrong order. Exchange them with a permutation matrix and factor . Libraries always pick the largest entry below (partial pivoting), so their and can differ from yours and still be correct.
Knowledge Check#
Set t = 1, so row 2 − 2 × row 1 is done. The caption shows Row 2 [0, 1, 1 | −1]. Where do the three planes meet now?
Browser lab: elimination on the scene's system#
Run plain elimination (no pivoting) on the scene's matrix for any and , then read the last row.
import numpy as np
def eliminate(a33, b3):
M = np.array([[2., 1., 1., 1.],
[4., 3., 3., 1.],
[8., 7., a33, b3]])
L = np.eye(3)
for k in range(2):
for i in range(k + 1, 3):
L[i, k] = M[i, k] / M[k, k]
M[i] -= L[i, k] * M[k]
return L, M
L, M = eliminate(8, 2)
U, c = M[:, :3], M[:, 3]
print("L =\n", L)
print("U =\n", U, "\nc =", c)
print("pivots:", np.diag(U), " LU == A:", np.allclose(L @ U, [[2, 1, 1], [4, 3, 3], [8, 7, 8]]))
print("x =", np.linalg.solve(U, c))
for a33, b3 in [(7.5, 2), (7, 2), (7, 1)]:
_, M = eliminate(a33, b3)
print(f"a33 = {a33}, b3 = {b3}: last row {M[2].round(3)}")
It prints pivots , , and , then last rows , and : one point, no point, a line. Match each to the scene at .
Key takeaways#
Elimination replaces a plane with another plane through the same crossing line, so the solution never moves. The multipliers fill and the result is , with . A zero last pivot makes singular without any parallel planes: the last row of reads for a common line, or nonzero for a triangular tunnel.
Further reading#
- Gilbert Strang, Introduction to Linear Algebra (6th ed., Wellesley-Cambridge Press, 2023), Chapter 2. Elimination, the row picture and .
- Gilbert Strang, Introduction to Linear Algebra, 5th ed.: Manual for Instructors, Problem Sets 2.1 and 2.2. The triangular tunnel.
- Lloyd N. Trefethen & David Bau, Numerical Linear Algebra (SIAM, 1997), Lectures 20–21. with partial pivoting.
Reading is free. PDF and ePub unlock with the newsletter. Join once and every lesson opens in this browser.