Matrix rank is an important concept in linear algebra. While rank deficiency can be a sign of an incompletely or improperly specified problem (a singular system of linear equations, for example), in some problems low rank of a matrix is a desired property or outcome. Here we present some fundamental rank relations in a concise form useful for reference. These are all immediate consequences of the singular value decomposition (SVD), but we give elementary (albeit not entirely self-contained) proofs of them.
The rank of a matrix is the maximum number of linearly independent columns, which is the dimension of the range space of , . An important but non-obvious fact is that this is the same as the maximum number of linearly independent rows (see (5) below).
A rank- matrix has the form , where and are nonzero vectors. Every column is a multiple of and every row is a multiple of . A sum of rank- matrices has the form
Each column of is a linear combination of the vectors , , …, , so has at most linearly independent columns, that is, has rank at most . In fact, if and have rank , as follows from (4) below. Any rank- matrix can be written in the form with and of rank ; indeed this is the full-rank factorization below.
Here are some fundamental rank equalities and inequalities.
The rank-nullity theorem says that
where is the null space of .
The rank cannot exceed the number of columns, or, by (5) below, the number of rows:
Rank of a Sum
For any and of the same dimension,
The upper bound follows from the fact that the dimension of the sum of two subspaces cannot exceed the sum of the dimensions of the subspaces. Interestingly, the upper bound is also a corollary of the bound (3) for the rank of a matrix product, because
For the lower bound, writing and applying the upper bound gives , and likewise with the roles of and interchanged.
Rank of and
For any ,
Indeed implies , and implies , which implies . Hence the null spaces of and are the same. The equality (2) follows from the rank-nullity theorem.
Rank of a General Product
For any and for which the product is defined,
If then , so the columns of are linear combinations of those of and so cannot have more linearly independent columns than , that is, . Using (5) below, we then have
The latter inequality can be proved without using (5) (our proof of which uses (3)), as follows. Suppose . Let the columns of span , so that has columns and for some matrix with columns. Now by the first part, so for some nonzero . But then , which contradicts the linear independence of the columns of , so we must have .
Rank of a Product of Full-Rank Matrices
We note that and are both nonsingular matrices by (2), so their product has rank . Using (3),
and hence .
Another important relation is
This is a consequence of the equality for nonsingular and .
Ranks of and
By (2) and (3) we have . Interchanging the roles of and gives and so
In other words, the rank of is equal to the maximum number of linearly independent rows as well as the maximum number of linearly independent columns.
has rank if and only if for some and , both of rank , and this is called a full-rank factorization. The existence of such a factorization implies that by (4). Conversely, suppose that has rank . Let the columns of form a basis for the range space of . Then there are -vectors such that , , and with we have . Finally, by (3), and since we have .
Rank and Minors
A characterization of rank that is sometimes used as the definition is that it is the size of the largest nonsingular square submatrix. Equivalently, the rank is the size of the largest nonzero minor, where a minor of size is the determinant of a submatrix.
rank(AB) and rank(BA)
Although and have some properties in common when both products are defined (notably they have the same nonzero eigenvalues), is not always equal to . A simple example is and with and orthogonal vectors: but . An example with square and is
Note that and , where has in the th position and zeros everywhere else. Such matrices are easy to manipulate in this form (e.g., ) and are useful for constructing examples.
How to Find Rank
If we have a full-rank factorization of then we can read off the rank from the dimensions of the factors. But finding a full-rank factorization is a nontrivial task. The ultimate full-rank factorization is the SVD
where and are orthogonal, , where , and . The rank of is , the number of nonzero singular values.
In floating-point arithmetic, the standard algorithms for computing the SVD are numerically stable, that is, the computed singular values are the exact singular values of a matrix with , where is a constant and is the unit roundoff. Unfortunately, will typically be full rank when is rank deficient. For example, consider this computation.
>> n = 4; A = zeros(n); A(:) = 1:n^2, svd(A) A = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 ans = 3.8623e+01 2.0713e+00 1.5326e-15 1.3459e-16
The matrix has rank and the two zero singular values are approximated by computed singular values of order . In general, we have no way to know whether tiny computed singular values signify exactly zero singular values. In practice, one typically defines a numerical rank based on a threshold and regards computed singular values less than the threshold as zero. Indeed the MATLAB
rank function computes the rank as the number of singular values exceeding , where is the largest computed singular value. If the data from which the matrix is constructed is uncertain then the definition of numerical rank should take into account the level of uncertainty in the data. Dealing with rank deficiency in the presence of data errors and in finite precision arithmetic is a tricky business.
An excellent reference for further rank relations is Horn and Johnson. Stewart describes some of the issues associated with rank-deficient matrices in practical computation.