A system of m linear equations in n unknowns can be written as Ax = b, where A is m × n, x is the unknown vector, and b is the constant vector. A system is consistent (has solutions) if and only if b is in the column space of A. The solution set forms an affine subspace.
The matrix equation Ax = b is the organizing structure of linear algebra. When you have a system of equations — say, 2x + y = 5 and x − y = 1 — you can package it as a single matrix equation where A holds the coefficients, x holds the unknowns, and b holds the right-hand sides. This notation is not just shorthand; it reveals the geometry of the problem.
Whether a solution exists depends on a single geometric question: is b in the column space of A? The columns of A are vectors, and their span is the column space. If b can be expressed as a linear combination of those columns (with combination coefficients given by x), then a solution exists. If b lies outside that span, no value of x will make Ax = b true.
When solutions do exist, the full solution set is an affine subspace — a linear subspace shifted by a particular solution. Any solution to Ax = b has the form x = x_particular + x_null, where x_null satisfies Ax = 0. If A has full column rank (no free variables), the null space is just {0}, giving exactly one solution. If A has free variables, the null space has positive dimension, and infinitely many solutions exist, forming a line, plane, or higher-dimensional flat through any particular solution.
This framework unifies cases you may have treated separately. Two equations in two unknowns — parallel lines have no solution (b outside the column space), intersecting lines have exactly one solution (full rank), and identical lines have infinitely many solutions (rank-deficient, consistent). The Ax = b language says the same thing for any number of equations and unknowns simultaneously, and sets up the tools — Gaussian elimination, rank, and the null space — that answer every question about existence and uniqueness of solutions.