Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

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

  1. 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. 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. 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. 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. 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.