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

Find the matrix of a transformation relative to a basis

Use when: you have T:\mathbb R^n\to\mathbb R^n, a basis \mathcal B=\{\mathbf b_1,\dots,\mathbf b_n\}, and need the matrix A with A[\mathbf x]_{\mathcal B}=[T(\mathbf x)]_{\mathcal B}

Goal: the matrix A that runs T entirely in \mathcal B-coordinates, with no detour through standard coordinates

Taught in The matrix of a transformation relative to a basis

  1. 1

    Evaluate T(\mathbf b_1), T(\mathbf b_2), \dots, T(\mathbf b_n) from T's ordinary formula, exactly as you would evaluate T at any other vector.

    Example

    Let T(x_1,x_2)=(x_1+x_2,\ 2x_2) and \mathcal B=\{\mathbf b_1=(1,1),\ \mathbf b_2=(2,1)\}. Then T(\mathbf b_1)=T(1,1)=(1+1,\ 2(1))=(2,2) and T(\mathbf b_2)=T(2,1)=(2+1,\ 2(1))=(3,2).

    Why: A's columns are defined in terms of what T does to \mathcal B's own vectors, so this is the only place to start.

  2. 2

    For each T(\mathbf b_i), solve c_1\mathbf b_1+c_2\mathbf b_2+\cdots+c_n\mathbf b_n=T(\mathbf b_i) for the coefficients c_1,\dots,c_n — an ordinary linear system, one for each basis vector.

    Example

    For T(\mathbf b_1)=(2,2): solve c_1(1,1)+c_2(2,1)=(2,2), i.e. c_1+2c_2=2 and c_1+c_2=2. Subtracting gives c_2=0, so c_1=2: [T(\mathbf b_1)]_{\mathcal B}=(2,0). For T(\mathbf b_2)=(3,2): solve c_1+2c_2=3, c_1+c_2=2, giving c_2=1, c_1=1: [T(\mathbf b_2)]_{\mathcal B}=(1,1).

    • \mathcal B is the standard basis — skip this step entirely, since a vector's standard-basis coordinates are just its own entries.
    • \mathcal B is any other basis — solving the system above is unavoidable, every time.

    Why: a coordinate vector relative to \mathcal B is, by definition, the list of weights on \mathcal B's own vectors — there's no shortcut around solving for those weights.

  3. 3

    [T(\mathbf b_1)]_{\mathcal B} becomes column 1 of A, [T(\mathbf b_2)]_{\mathcal B} becomes column 2, and so on.

    Example

    A=\begin{pmatrix} 2 & 1 \\ 0 & 1\end{pmatrix}

    Column 1 is [T(\mathbf b_1)]_{\mathcal B}=(2,0); column 2 is [T(\mathbf b_2)]_{\mathcal B}=(1,1).

    Why: this is exactly the same column-stacking construction as the ordinary standard matrix, just with every vector measured in \mathcal B-coordinates instead of standard ones.

  4. 4

    Pick [\mathbf x]_{\mathcal B} you haven't used yet, compute A[\mathbf x]_{\mathcal B}, then independently convert \mathbf x to standard coordinates, apply T's formula directly, and convert the result back to \mathcal B-coordinates — both routes must land on the same vector.

    Example

    Take [\mathbf x]_{\mathcal B}=(3,1), so A[\mathbf x]_{\mathcal B}=\begin{pmatrix}2&1\\0&1\end{pmatrix}\begin{pmatrix}3\\1\end{pmatrix}=\begin{pmatrix}7\\1\end{pmatrix}. Independently: \mathbf x=3(1,1)+1(2,1)=(5,4), so T(\mathbf x)=(5+4,\ 2(4))=(9,8), which in \mathcal B-coordinates solves c_1+2c_2=9,\ c_1+c_2=8 to give (7,1) — matching A[\mathbf x]_{\mathcal B} exactly.

    Why: A is the unique matrix satisfying A[\mathbf x]_{\mathcal B}=[T(\mathbf x)]_{\mathcal B} for every \mathbf x, so any disagreement here traces back to an arithmetic slip, not a genuine exception.

Common mistakes

  • Evaluating T at \mathbf b_i's coordinates instead of at \mathbf b_i itself — T's formula always takes a standard-coordinate input.
  • Forgetting Step 2 entirely and stacking T(\mathbf b_i)'s standard coordinates straight into A — that builds the ordinary standard matrix, not the \mathcal B-relative one.
  • Solving Step 2's system with the wrong basis vectors (mixing up which column of \mathcal B is \mathbf b_1 versus \mathbf b_2).
  • Skipping the final check and trusting a matrix that was never tested against T's own formula.