Wolfram Research

Function Repository Resource:

Adjugate

Source Notebook

Give the adjugate matrix of a square matrix

Contributed by: Daniel Lichtblau

ResourceFunction["Adjugate"][mat]

gives the transpose of the cofactor matrix of mat.

Details and Options

The adjugate is also sometimes called the classical adjoint or the adjunct matrix.
The matrix product of a matrix m with its adjugate is diagonal, with all diagonal entries equal to the determinant of m.

Examples

Basic Examples

Form the adjugate of a matrix of dimension 2:

In[1]:=
ResourceFunction["Adjugate"][{{1, 2}, {-3, 1}}]
Out[1]=

Scope

The adjugate is a square matrix of the same dimension:

In[2]:=
SeedRandom[1234]
In[3]:=
mat = RandomInteger[{-10, 10}, {4, 4}]
Out[3]=
In[4]:=
adj = ResourceFunction["Adjugate"][mat]
Out[4]=

The product of the adjugate with the matrix is a diagonal matrix with the same values on the diagonal:

In[5]:=
adj.mat
Out[5]=

The values on the diagonal are the determinant of the matrix:

In[6]:=
det = Det[mat]
Out[6]=

When a matrix is invertible, the adjugate divided by the determinant gives the inverse:

In[7]:=
adj/det === Inverse[mat]
Out[7]=

The adjugate is defined for symbolic as well as numeric matrices:

In[8]:=
ResourceFunction[
 "Adjugate"][{{x + 1, x^2 - 3}, {x^2 - 3 x + 7, -5 x}}]
Out[8]=

A square matrix need not be invertible:

In[9]:=
m = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

This matrix is not invertible because it does not have full rank:

In[10]:=
MatrixRank[m]
Out[10]=

The adjugate is defined even when the inverse does not exist:

In[11]:=
ResourceFunction["Adjugate"][m]
Out[11]=

Properties and Relations

The adjugate satisfies a simple identity:

In[12]:=
mat = Array[a, {4, 4}];
In[13]:=
ResourceFunction["Adjugate"][mat] - Inverse[mat] Det[mat] // Simplify
Out[13]=

The adjugate and the matrix of minors are the same up to reordering and signs:

In[14]:=
SeedRandom[1234]
In[15]:=
mat = RandomInteger[{-10, 10}, {3, 3}]
Out[15]=
In[16]:=
ResourceFunction["Adjugate"][mat]
Out[16]=
In[17]:=
Minors[mat]
Out[17]=

Requirements

Wolfram Language 11.3 (March 2018) or above

Resource History

License Information