Why Solve from the Bottom Up?
Forward elimination turns a linear system into one whose equations have a staircase structure. In an echelon system, the last nonzero equation involves only a few variables; the equation above it may involve those variables and one more; continuing upward gradually determines the remaining variables. This is called back substitution. The order matters: solve the lowest equation first, then use its answer in the equation above.
Throughout, the scalars are real numbers. Write the unknown vector as a column \(\mathbf{x}=(x_1,\dots,x_n)^{\top}\). An augmented matrix records the coefficients of a system together with its right-hand side. For example, the row \([\,2\;\; -1\mid 5\,]\) represents \(2x_1-x_2=5\). An echelon form has its nonzero rows above any zero rows, and the first nonzero entry of each nonzero row—the pivot—lies farther to the right than the pivot in the row above it.
This tutorial starts with a system already in echelon form and assumes it is consistent, meaning that at least one choice of the variables satisfies all its equations. The task is to find that solution, or describe all solutions if some variables are free. A free variable is a variable whose column has no pivot; it is not solved for by its own pivot equation and may be assigned an arbitrary real value, provided the system is consistent.
The Upward-Solving Rule
Suppose a nonzero equation has pivot variable \(x_j\), and its pivot coefficient is \(a\ne0\). Once the variables to the right of \(x_j\) have values, the equation has the form \(a x_j+d=b\), where \(d\) is the combined contribution of those already assigned variables. Then \(x_j=(b-d)/a\). The nonzero pivot coefficient is essential: it makes division possible. In echelon form, variables to the left of the pivot have coefficient zero in that row, so the equation does not require their values yet.
Proof. Assume the system is consistent and in echelon form. Consider its nonzero rows in order from bottom to top. The last nonzero row has no variables with pivots farther to its right: if it did, a later nonzero row would have to contain a pivot farther right, contrary to its being the last nonzero row. Its variables without pivots can be assigned their chosen free-variable values. Thus the last row’s equation has only its pivot variable left to determine, and the pivot coefficient is nonzero, so dividing by it gives exactly one value for that pivot variable. In the row immediately above, any variable with a pivot to the right has already been determined; free variables already have assigned values. The same nonzero-coefficient calculation therefore determines the pivot variable in that row. Repeating this argument upward determines every pivot variable. Substitution into each row shows that its equation is satisfied, so the resulting values solve the system. For the converse, take any solution of the system and use its values for the free variables. The last nonzero row forces its pivot variable to be the value obtained by the stated division. Each row above then forces its pivot variable in turn, since all variables to its right already have the values in the solution. Thus the procedure recovers that solution. \(\square\)
This result explains why back substitution gives all the solutions, not just one plausible answer. The free-variable assignments are the choices; the equations then fix the pivot variables. If there are no free variables, the same procedure determines every variable without any arbitrary choices.
Worked Examples
Worked Example: A System with One Solution
Solve the consistent system represented by the echelon augmented matrix
The last row gives \(2x_3=-2\), so divide both sides by \(2\): \(x_3=-1\). Substitute this into the second row, \(x_2+3x_3=4\):
Now use the first row, \(x_1+2x_2-x_3=3\), with \(x_2=7\) and \(x_3=-1\):
Therefore \(\mathbf{x}=(-12,7,-1)^{\top}\). Check: the three left-hand sides are \(-12+2(7)-(-1)=3\), \(7+3(-1)=4\), and \(2(-1)=-2\), respectively. Each matches its right-hand side.
Worked Example: One Free Variable
Solve the consistent echelon system
Column 4 has no pivot, so let \(x_4=t\), where \(t\) may be any real number. Begin in the last row: \(2x_3+x_4=6\). Substituting \(x_4=t\) gives \(2x_3+t=6\), hence \(x_3=3-\tfrac12t\).
Next, use the second row, \(x_2+3x_3-2x_4=1\). Substitute both known expressions:
Finally, the first row is \(x_1+2x_2-x_3+x_4=5\). Therefore
All solutions are therefore
Check: in the last row, \(2(3-\tfrac12t)+t=6\). In the second row, \((-8+\tfrac72t)+3(3-\tfrac12t)-2t=1\). In the first row, \((24-\tfrac{17}{2}t)+2(-8+\tfrac72t)-(3-\tfrac12t)+t=5\). The parameter terms cancel in each equation, leaving its stated right-hand side.
Worked Example: A Free Variable Between Pivot Variables
Solve the consistent system
The third row is the equation \(0=0\), so it imposes no additional condition. There are no pivots in columns 2 and 4; assign \(x_2=t\) and \(x_4=s\), where \(t,s\in\mathbb{R}\). Begin with the last nonzero row, the second row: \(x_3+x_4=5\). It gives \(x_3=5-s\). The first row, \(x_1-x_3+2x_4=0\), then gives
Thus
Check: the first equation gives \((5-3s)-(5-s)+2s=0\), and the second gives \((5-s)+s=5\). The final row is \(0=0\) for every choice of \(s\) and \(t\), so every vector in the displayed family satisfies all three equations.
Common Mistakes and How to Avoid Them
Substituting too early or losing a sign. In the second worked example, a tempting but incorrect step is to read \(2x_3+x_4=6\), set \(x_4=t\), and write \(x_3=3+\tfrac12t\). The equation actually gives \(2x_3=6-t\), so dividing by \(2\) yields \(x_3=3-\tfrac12t\). Checking the result in the row catches the error: \(2(3+\tfrac12t)+t=6+2t\), which is not \(6\) for every \(t\). The corrected value gives \(2(3-\tfrac12t)+t=6\).
Do not assign values to pivot variables arbitrarily. In the third example, \(x_3\) is a pivot variable even though its equation also contains \(x_4\). Once the free variable \(x_4=s\) is chosen, the row forces \(x_3=5-s\). Assigning \(x_3\) independently would generally fail to satisfy that equation.
Keep track of the order of the variables. A parameter belongs in the coordinate for the variable it represents. In the third example, \(x_2=t\) and \(x_4=s\), so the second and fourth entries of the solution vector are \(t\) and \(s\), respectively. Writing them in the wrong positions changes the proposed solution.
A reliable check is to substitute the completed expressions into every nonzero equation, including the equations used earlier in the upward process. This verifies both the arithmetic and the placement of parameters. For a system with free variables, the check should hold for every allowed parameter value, not just one convenient choice.
Use the last nonzero row to solve for its pivot variable.
In each row above, insert the values already found and solve for that row’s pivot variable.
Use the same parameter wherever that variable occurs in the equations.
Substitute the final expressions back into the system and simplify each left-hand side.
Check Your Understanding
For each system, work from the last nonzero row upward and check your answer by substitution.
- Solve \(\left[\begin{array}{cc|c}1&2&7\\0&3&6\end{array}\right]\).
- Solve \(\left[\begin{array}{ccc|c}1&-1&2&4\\0&1&3&5\end{array}\right]\), stating which variable you choose as a parameter.
- In an echelon system, explain why the pivot coefficient must be nonzero before dividing to solve for a pivot variable.
- For the system \(\left[\begin{array}{ccc|c}1&0&2&3\\0&1&-1&4\\0&0&0&0\end{array}\right]\), identify the free variable and solve in terms of it.
- Check by substitution whether \((2,1,3)^{\top}\) satisfies \(x_1+x_2=3\) and \(2x_1-x_2=3\).