Recipe
Build block-triangular form from one invariant subspace
Use when: you have one invariant subspace U for an operator T, with no complement required, and want a basis in which T's matrix has a forced zero block
Goal: a basis of V and T's matrix relative to it, with the zero block explicitly identified and confirmed
Taught in Block-triangular form from an invariant subspace
Quick recipe
-
1
Take a basis \{\mathbf u_1,\dots,\mathbf u_p\} of U, apply T to each one, and check that every image stays a combination of \mathbf u_1,\dots,\mathbf u_p alone.
Example
For A=\begin{pmatrix}2&1\\0&3\end{pmatrix} and U=\operatorname{span}\{(1,0)\}: A(1,0)=(2,0)=2(1,0), which stays inside U, so U is invariant.
Why: everything else in this recipe depends on U genuinely being invariant, so this has to be confirmed before extending any basis.
-
2
Add vectors \{\mathbf v_1,\dots,\mathbf v_q\} outside U until the combined list \{\mathbf u_1,\dots,\mathbf u_p,\mathbf v_1,\dots,\mathbf v_q\} is a basis of all of V.
Example
For V=\mathbb R^2 and U=\operatorname{span}\{(1,0)\}, adding \mathbf v_1=(0,1) gives the full standard basis \{(1,0),(0,1)\}.
Why: the forced zero block only shows up relative to a basis that starts with a basis of U itself.
-
3
Compute T on each basis vector, in order, and place each image's coordinates as a column of T's matrix, using the same basis order throughout.
Example
For T(1,0,0)=(3,0,0), T(0,1,0)=(1,2,0), T(0,0,1)=(4,1,5), the matrix is T=\begin{pmatrix}3&1&4\\0&2&1\\0&0&5\end{pmatrix}
Why: the matrix only shows the forced zero pattern once every column is written in the same fixed basis order used to check invariance.
-
4
Look at the first p columns, the ones coming from U's own basis vectors. Every entry in those columns, in any row past row p, must be zero.
- every one of those entries is zero — T's matrix is genuinely block-triangular, matching U's invariance.
- a nonzero entry shows up below row p in one of the first p columns — U was not actually invariant, and Step 1 needs to be rechecked.
Why: this zero pattern is exactly what "T(\mathbf u_i) stays inside U" looks like once written in coordinates.
-
5
Test whether the span of the added vectors \mathbf v_1,\dots,\mathbf v_q is also invariant under T, using the same check as Step 1.
Example
For the same A, test W=\operatorname{span}\{(0,1)\}: A(0,1)=(1,3), which is not a scalar multiple of (0,1), so W is not invariant.
- the added span is also invariant — both blocks are forced to zero, and the matrix is actually block-diagonal, one notch stronger than triangular.
- the added span is not invariant — only the one-way zero block survives, and the matrix stays triangular but never becomes diagonal.
Why: block-triangular form only guarantees one zero block, and whether the other block also vanishes depends on a second, independent invariance check.
Common mistakes
- Extending the basis of U with vectors that aren't actually independent from U's own basis.
- Writing the matrix columns in a different order than the basis order used to check invariance.
- Assuming the top-right block must also be zero, when only the bottom-left block is guaranteed by one invariant subspace.
- Checking invariance for only one vector in U's spanning set, instead of every basis vector of U.