The Adjoint Matrix
We dig into triangular and Vandermonde matrices, crack their determinants, then build up to the adjoint matrix — which is about to become super important for what's coming next.
So far we’ve been computing determinants for general matrices. Now I want to look at some special ones: determinants of weird, unusual matrices.
As we go, the topic will naturally drift toward “diagonalization”… so look forward to a total mind-melt.
Triangular matrices
There are upper triangular matrices and lower triangular matrices. In an upper triangular matrix, everything below the diagonal is 0. Let’s look at its determinant.
Example:

You already saw it coming, didn’t you? For a triangular matrix, you just multiply all the diagonal entries together, and bam, that’s the determinant! Same deal for a lower triangular matrix.
Vandermonde matrices
Let me show you another weirdo.

This kind of matrix is called a Vandermonde matrix. I want to look at its determinant. If we treat
as variables, then det A is a polynomial.
So what’s the degree of that polynomial?
degree of det A = deg(det A) = ?
The highest degree would be:
![]()
I guess, yeah. Degree settled; now let’s actually look at the determinant. I’ll start with the 2×2 case and grow it.


Now let’s go full n x n.

The number of ways to pick j > i on the right-hand side is exactly the degree of det A, so:
![]()
Just like that! Here’s what the product means:
![]()
If all of
are different, det A ≠ 0. If even one pair among
is equal, det A = 0.
The goal wasn’t actually to compute the Vandermonde determinant. It was to nail down these properties, because we’re going to use them later. Yep, more waiting.
Building the adjoint
OK, now I’m going to build one weird matrix, and this is really the point of the post. It’s getting used directly in what comes next: the adjoint (also called the adjugate).
First, let me write out the formula for expanding det A along row i.

If this is unfamiliar, here’s an example: expansion along row 3.
![]()
Can you picture it? Pull each element out of row 3, one by one, and whoosh-whoosh through the calculation. OK, moving on.
We were going to build a new matrix, right? How?
We’ll use information from matrix A to construct a matrix B, and call the product A times B the matrix C.


You’re following this picture, right? lol. Here’s the definition of B:
![]()
That’s our B, clearly built from information in A, because the minor matrices M come from A. There’s an easier way to think about the recipe: take the matrix of minor determinants, transpose it, and multiply by the sign factors. I’ll show you an example in a second.
Back to the main thread. Since C = AB, let’s use that definition of B and look at the diagonal entries first.
![]()
Huh? Where have I seen this before? Right, we wrote this formula way up there:

So:
![]()
Build B from A’s information, multiply to get C, and every diagonal entry of C comes out as det A!
Let’s run this on a concrete matrix and see how it works.

We’ll build B from this A, then check the diagonal entries of C. First, B: start with the determinants of A’s minor matrices. Just follow the picture; we’re building it step by step. Begin!

First, make this. Plugging in actual numbers:

Next, multiply by the sign factors
. Apply the rule:

And finally, take the transpose!

That right there is B. The B we just built is:
![]()
Look: b’s subscript is kj, and M’s is jk. Opposite orders! That final transpose was already baked into the formula. This B is what we call adjoint A.
Eh, let’s just call it adjoint and move on.
![]()
Does “adjoint” mean “crack someone’s joint”? Kidding, kidding. Think “assistant”: given A, adjoint A follows along behind it.
So if you multiply A by adjoint A, we already know what happens on C’s diagonal: det A. Try multiplying these two matrices. Every diagonal entry comes out as 33, lol.
Well, obviously; that’s how we designed it. If it didn’t, there’d be a ghost in here.
Why the other entries are zero
Now for the off-diagonal entries. Actually, let me spoil the punchline: they all become 0. Heh.

Let’s unpack that secret. Time to flex some cleverness!
I personally struggled with this one. Math majors are seriously something else, lol. Anyway, here goes.
Let’s reuse the matrix from before.

We made its adjoint:

Multiply them out.

It works. Now look at the entry highlighted in red: row 2, column 3. If we can figure out algebraically why that one is 0, we’ll understand every other off-diagonal entry too.

OK, time to mess with matrix A. Here’s the clever bit: replace row 3 with a copy of row 2, leaving row 2 where it is. In general, replace row j with row i. Call the resulting matrix A'.

Once we do that:

And also:

We organized the expression this way above:
![]()
First, substitute the a’ entries using the equality we just wrote.
![]()
And replace M with M’ too.
![]()
Wait! Written this way, the right-hand side is just det A'.
![]()
How did we tamper with A to make A'?
We gave it two equal rows, making its rows linearly dependent. So det A’ = 0. Therefore,
.
That’s why everything comes out 0 whenever i and j aren’t equal. See the trick? For any i different from j, we can replace a row to make two rows equal, turn that expression into det A’, and get 0. Every off-diagonal entry of A times adjoint A is 0.
Everything we’ve been saying comes together here:

We got this by expanding along rows. Expanding along columns instead gives (adj A)A = (det A)I as well.
When det A is nonzero, divide by it and we have a two-sided inverse. That proves our earlier claim: a nonzero determinant means A is invertible.

The familiar inverse formula
Let’s check it by building adjoint A for this matrix:
![]()
The recipe:
- Build the matrix of minor determinants.
- Multiply by the sign factors.
- Finish with a transpose.

And then,
. We’ve been doing that one over and over already, haven’t we?
So, provided ad - bc is nonzero:
![]()
Whoa. That inverse-matrix formula I blindly memorized in high school had this meaning behind it all along. That’s pretty wild, lol.
Heads-up. The figures here are the original notes, slips and all. A few things to watch for:
- In the $3 \times 3$ Vandermonde picture, the bottom row should read $1,\ x_3,\ x_3^2$ (the picture writes $x_3^3$); the product on the right is right.
- In the matrix of minors (and in its handwritten copy after it), two entries lost their minus sign: $\det M_{14} = -32$ and $\det M_{32} = -9$. The adjoint matrix and $A\cdot\operatorname{adj}A = 33I$ that follow are right.
- In the summary picture, $(\operatorname{adj}A)_{kj} = (-1)^{j+k}M_{jk}$ should read $(-1)^{j+k}\det M_{jk}$: $M_{jk}$ is the minor matrix, and the entry uses its determinant, as in the definition of $B$ above.
- In the line $C_{23} = A'\cdot\operatorname{adj}A' = \det A'$, the middle term means the $(3,3)$ entry of $A'\cdot\operatorname{adj}A'$, which is $\det A'$.
- In the $2 \times 2$ recipe, step 2 should start from the result of step 1, $\begin{pmatrix}d & c\\b & a\end{pmatrix}$ (the picture starts it with $b$).
Comments
Discussion happens via GitHub Discussions. You'll need a GitHub account to comment.