The adjugate of an matrix is defined by
where denotes the submatrix of obtained by deleting row and column . It is the transposed matrix of cofactors. The adjugate is sometimes called the (classical) adjoint and is sometimes written as .
For nonsingular ,
and this equation is often used to give a formula for in terms of determinants.
Since the adjugate is a scalar multiple of the inverse, we would expect it to share some properties of the inverse. Indeed we have
These properties can be proved by first assuming the matrices are nonsingular—in which case they follow from properties of the determinant and the inverse—and then using continuity of the entries of and the fact that every matrix is the limit of a sequence of nonsingular matrices. Another property that can be proved in a similar way is
If has rank or less then is just the zero matrix. Indeed in this case every submatrix of is singular, so in the definition of . In particular, and for any rank-1 matrix
Less obviously, if then has rank 1. This can be seen from the formula below that expresses the adjugate in terms of the singular value decomposition (SVD).
If , then for nonsingular ,
Again it follows by continuity that for any ,
This expression is useful when we need to deal with a rank-1 perturbation to a singular matrix. A related identity is
Let be an SVD, where and are unitary and , with . Then
It is easy to see that is diagonal, with
Since and are unitary and hence nonsingular,
If then and so
where has modulus and and are the last columns of and , respectively.
The definition of does not provide a good means for computing it, because the determinant computations are prohibitively expensive. The following MATLAB function (which is very similar to the function
adjoint in the Symbolic Math Toolbox) uses the SVD formula.
function X = adj(A) %ADJ Adjugate of a matrix. % X = ADJ(A) computes the adjugate of the square matrix A via % the singular value decomposition. n = length(A); [U,S,V] = svd(A); D = zeros(n); for i=1:n d = diag(S); d(i) = 1; D(i,i) = prod(d); end X = conj(det(V))*det(U)*V*D*U';
Note that, in common with most SVD codes, the
svd function does not return and , so we must compute them. This function is numerically stable, as shown by Stewart (1998).
Finally, we note that Richter (1954) and Mirsky (1956) obtained the Frobenius norm bound
This is a minimal set of references, which contain further useful references within.
- Roger A. Horn and Charles R. Johnson, Matrix Analysis, second edition, Cambridge University Press, 2013. Section 0.8.2.
- L. Mirsky, The Norms of Adjugate and Inverse Matrices, Archiv der Mathematik 7(4), 276–277, 1956.
- Hans Richter, Bemerkung zur Norm der Inversen einer Matrix, Archiv der Mathematik 5, 447–448, 1954.
- G. W. Stewart, On the Adjugate Matrix, Linear Algebra Appl. 283, 151–164, 1998.