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 minimal polynomial of a matrix

Use when: you have a square matrix A and need the unique monic polynomial of smallest degree with p(A)=0

Goal: the minimal polynomial m_A, confirmed to annihilate A with no smaller degree working

Taught in The minimal polynomial

  1. 1

    For each distinct number on A's main diagonal, write down the linear factor (x-a); these are your starting candidates.

    Example

    For A=\begin{pmatrix}2&0\\0&2\end{pmatrix}, the diagonal entries are both 2, giving one candidate factor, (x-2). For the Jordan block A=\begin{pmatrix}2&1\\0&2\end{pmatrix}, the diagonal entries are also both 2, the same single candidate.

    • A is diagonal or upper/lower triangular — the diagonal entries are exactly its eigenvalues, so they're exactly the right candidates.
    • A isn't triangular — the eigenvalues aren't visible on the diagonal, so solve \det(A-xI)=0 for the characteristic polynomial and use its roots as your candidates instead.

    Why: if \lambda is an eigenvalue with eigenvector \mathbf v, then p(A)\mathbf v=p(\lambda)\mathbf v for any polynomial p, so p(A)=0 forces p(\lambda)=0, meaning every eigenvalue must be a root of whatever you're testing.

  2. 2

    Build the monic polynomial from your candidate factors at the lowest total degree, and substitute A into it.

    Example

    For A=2I: test p(x)=x-2, giving p(A)=A-2I. For the Jordan block: the same first candidate, p(x)=x-2, giving p(A)=A-2I again.

    Why: the minimal polynomial is defined as the smallest-degree monic annihilator, so testing the cheapest candidate first finds it as soon as possible.

  3. 3

    Multiply out (or just substitute, at degree 1) and see whether every entry comes out to zero.

    Example

    A-2I=\begin{pmatrix}2&0\\0&2\end{pmatrix}-\begin{pmatrix}2&0\\0&2\end{pmatrix}=\begin{pmatrix}0&0\\0&0\end{pmatrix} for the diagonal case, a success; but A-2I=\begin{pmatrix}0&1\\0&0\end{pmatrix}\ne0 for the Jordan block, a failure.

    • the result is the zero matrix — this candidate is m_A; stop here.
    • the result is nonzero — raise the exponent on the failing factor by one, and repeat this step on the new candidate.

    Why: a monic polynomial is the minimal polynomial exactly when it's the first, lowest-degree candidate that actually annihilates A.

  4. 4

    Check that every strictly smaller monic degree, down to a nonzero constant, was already ruled out by a test in Step 3.

    Example

    For the Jordan block, a nonzero constant never annihilates a nonzero matrix, and degree 1 already failed above, so degree 2 is genuinely minimal.

    Why: the definition of minimal polynomial is about degree, not just about working, so a working candidate only counts once every smaller degree is eliminated.

  5. 5

    Substitute the alternative candidate polynomial into A and show it does NOT vanish, ruling it out at that same degree.

    Example

    For A=2I with m_A(x)=x-2, test q(x)=x-3: q(A)=A-3I=\begin{pmatrix}-1&0\\0&-1\end{pmatrix}\ne0, so q fails.

    Why: uniqueness of the minimal polynomial means no other monic polynomial at that same minimal degree can also annihilate A, and one failing example already disproves it.

Common mistakes

  • Assuming a non-triangular matrix's minimal-polynomial candidates are visible on the diagonal, when they aren't.
  • Trusting a candidate polynomial by inspection instead of actually substituting A into it in Step 3.
  • Testing a higher exponent on a factor before ruling out the smaller exponent for that same factor.
  • Declaring a working candidate minimal without checking that every smaller degree genuinely failed first.