Over an algebraically closed field we can always find an upper-triangular matrix for any linear endomorphism. Over the real numbers we’re not quite so lucky, but we can come close.
Let be a linear transformation from a real vector space of dimension to itself. We might not be able to find an eigenvector — a one-dimensional invariant subspace — but we know that we can find either a one-dimensional or a two-dimensional invariant subspace . Just like before we get an action of on the quotient space . Why? Because if we have two representatives and of the same vector in the quotient space, then we can write . Acting by , we find . And since , the vectors and are again equivalent in the quotient space.
Now we can find a subspace which is invariant under this action of . Is this an invariant subspace of ? No, it’s not even a subspace of . But we could pick some containing a unique representative for each vector in . For instance, we could pick a basis of , a representative for each basis vector, and let be the span of these representatives. Is this an invariant subspace? Still, the answer is no. Let’s say is the identified representative of . Then all we know is that is a representative of , not that it’s the identified representative. It could have some components spilling out into .
As we proceed, picking up either a one- or two-dimensional subspace at each step, we can pick a basis of each subspace. The action of sends each basis vector into the current subspace and possibly earlier subspaces. Writing it all out, we get a matrix that looks like
where each is either a matrix or a matrix with no eigenvalues. The blocks come from the one-dimensional invariant subspaces in the construction, while the blocks come from the two-dimensional invariant subspaces in the construction, though they may not be invariant once we put them back into . Above the diagonal we have no control (yet) over the entries, but below the diagonal almost all the entries are zero. The only exceptions are in the blocks, where we poke just barely down by one row.
We can note here that if there are two-dimensional blocks and one-dimensional blocks, then the total number of columns will be . Thus we must have at least blocks, and at most blocks. The latter extreme corresponds to an actual upper-triangular matrix.