The rank of a matrix is one of the key characteristics that tells you how much independent information the matrix contains. Why is this so important for solving problems? Because with the help of the rank we can understand whether a matrix is singular or not, whether an inverse matrix exists, and how the related systems of linear equations behave. In other words, this number helps us evaluate the structure of a matrix and its role in computations. In this article, we will explore what the rank of a matrix is, give a formal definition using minors, and look at a classical method for computing it that directly relies on this definition.
Rank of a Matrix: Definition via Minors
Let’s start with a rectangular matrix \( A \) of size \( m \times n \). Imagine that we choose any \( k \) rows and the same number of columns from this matrix. The elements that lie at the intersection of these selected rows and columns form a square submatrix. The determinant of this submatrix is called a minor of order \( k \) of the matrix \( A \).
Note that the number \( k \) cannot be greater than the number of rows or the number of columns of the matrix. In other words, we always have
\[ k \le \min(m, n); \]
Now a natural question appears: how do we get the rank from these minors? By definition, the rank of a matrix \( A \) is the largest order of a nonzero minor of this matrix. That is, we look for the maximum possible \( k \) for which there is at least one minor of order \( k \) with a nonzero determinant.
From this definition, several important properties follow immediately:
- First, the rank of a rectangular matrix \( A \) of size \( m \times n \) cannot exceed the smaller of the numbers \( m \) and \( n \): \( 0 \le \operatorname{rank} A \le \min(m,n) \).
- Moreover, the rank of a matrix is equal to zero, that is \( \operatorname{rank} A = 0 \), if and only if all its elements are equal to zero. In all other cases, the rank of a matrix is some positive number.
- Finally, for a square matrix of order \( n \) the rank is equal to \( n \) if and only if the matrix is non-singular, that is, its determinant is not equal to zero. In this situation, we have the largest possible rank.
So, the rank of a matrix naturally connects minors, the zero or nonzero structure of its elements, and the property of a matrix being singular or non-singular. It is not just a formal textbook definition, but a practical tool that constantly appears when we analyze systems of linear equations, vector spaces, and numerical methods.
Method of Bordering Minors: How to Find the Rank of a Matrix Step by Step
Once the definition in terms of minors is clear, a natural next question appears: how do we actually find the rank of a specific matrix in practice? Theory gives us the foundation, but to solve real problems we need a clear step-by-step algorithm. One of the classical approaches is the method of bordering minors.
Where do we start? First, we look for any nonzero minor of order one, \( M_1 \ne 0 \). In simple terms, we search for at least one element of the matrix that is not equal to zero. If no element of the matrix is different from zero, then all such minors are equal to zero, and we immediately get \( \operatorname{rank} A = 0 \).
Next, if we have found a nonzero minor of order one, we move on to minors of order two. We consider those minors of order two that border \( M_1 \), meaning they contain it inside as part of a larger submatrix. If among these minors of order two there is no nonzero one, we conclude that \( \operatorname{rank} A = 1 \).
However, if there exists a nonzero minor of order two, \( M_2 \ne 0 \), we continue and move on to minors of order three, then four, and so on. At each step we check the following:
- If among the minors of order \( k \) that border the nonzero minor of the previous order \( M_{k-1} \), all are equal to zero or such minors do not exist at all, then \( \operatorname{rank} A = k – 1 \).
- On the other hand, if there is at least one minor \( M_k \ne 0 \), then \( \operatorname{rank} A \ge k \), and we continue the process further.
This method is in complete agreement with the formal definition of rank and guarantees an exact result. At the same time, it is important to remember that for matrices of large size it requires computing a significant number of determinants. Because of this, the method of bordering minors is very illustrative from a theoretical point of view, but in practice it is usually used for matrices of small order or to demonstrate the very definition of the rank of a matrix.
Practice with Rank of a Matrix: Step-by-Step Examples
So that the topic does not stay only at the level of definitions, it is very helpful to see how the rank of a matrix is calculated on concrete numerical examples. In this section, we will apply the method of bordering minors step by step and show how, in practice, to answer the question “how to find the rank of a matrix” for different types of problems. Pay attention not only to the final result, but also to the logic of how the minors are chosen — this is exactly what builds real understanding of the topic and later transfers easily to other examples.
Example 1: Find the rank of a 3×3 matrix
\[ A = \begin{pmatrix} 1 & 0 & 2 \\ 0 & 1 & 3 \\ 4 & 5 & 6 \end{pmatrix}; \]
First, we check that the matrix is definitely not the zero matrix. The element \( 1 \) in the first row and first column already gives a nonzero minor of order one, so we can say that \( \operatorname{rank} A \ge 1 \). Next, it is easy to find a nonzero minor of order two. For example, consider the first two rows and the first two columns:
\[ M_2 = \begin{vmatrix} 1 & 0 \\ 0 & 1 \end{vmatrix} = 1 \cdot 1 – 0 \cdot 0 = 1 \ne 0; \]
This result means that there exists a nonzero minor of order two, so \( \operatorname{rank} A \ge 2 \).
To understand whether the rank can be equal to three, we need to check a minor of order three, that is, the determinant of the whole matrix. To do this, we use Sarrus’ rule:
\[ M_3 = \begin{vmatrix} 1 & 0 & 2 \\ 0 & 1 & 3 \\ 4 & 5 & 6 \end{vmatrix} = 1 \cdot 1 \cdot 6 + 0 \cdot 3 \cdot 4 + 2 \cdot 0 \cdot 5 – 2 \cdot 1 \cdot 4 – 0 \cdot 0 \cdot 6 – 1 \cdot 3 \cdot 5 = -17 \neq 0; \]
A nonzero minor of order three shows that the largest order of a nonzero minor is three. Therefore, \( \operatorname{rank} A = 3 \).
Example 2: Find the rank of a 3×3 matrix
\[ A = \begin{pmatrix} 2 & -1 & 4 \\ 4 & -2 & 8 \\ 6 & -3 & 12 \end{pmatrix}; \]
As before, we start with minors of order one. The element \( 2 \) in the first row and first column gives a minor \( M_1 = 2 \ne 0 \), so \( \operatorname{rank} A \ge 1 \). Next, we need to find out whether there is a nonzero minor of order two to check the possibility of a higher rank.
First, we calculate the minor for the first two rows and the first two columns:
\[ M_2 = \begin{vmatrix} 2 & -1 \\ 4 & -2 \end{vmatrix} = 2 \cdot (-2) – 4 \cdot (-1) = 0; \]
Then we analyse submatrices with other columns:
\[ \begin{aligned} M_2 &= \begin{vmatrix} 2 & 4 \\ 4 & 8 \end{vmatrix} = 2 \cdot 8 – 4 \cdot 4 = 0; \\ M_2 &= \begin{vmatrix} -1 & 4 \\ -2 & 8 \end{vmatrix} = (-1) \cdot 8 – 4 \cdot (-2) = 0; \end{aligned} \]
In each of these cases we get zero, because the second row is an exact multiple of the first.
Now we bring the third row into consideration and write down all the necessary minors of order two that include it:
\[ \begin{aligned} M_2 &= \begin{vmatrix} 2 & -1 \\ 6 & -3 \end{vmatrix} = 2 \cdot (-3) – 6 \cdot (-1) = 0; \\ M_2 &= \begin{vmatrix} 4 & -2 \\ 6 & -3 \end{vmatrix} = 4 \cdot (-3) – 6 \cdot (-2) = 0; \\ M_2 &= \begin{vmatrix} 2 & 4 \\ 6 & 12 \end{vmatrix} = 2 \cdot 12 – 4 \cdot 6 = 0; \end{aligned} \]
All possible minors of order two are equal to zero, because all three rows of the matrix are proportional to each other. Therefore, there exists a nonzero minor of order one, but no nonzero minor of order two can be found. This means that the maximum order of a nonzero minor is one, so \( \operatorname{rank} A = 1 \).
Example 3: Find the rank of a 4×5 matrix
\[ A = \begin{pmatrix} 0 & -1 & 3 & 0 & 2 \\ 2 & -4 & 1 & 5 & 3 \\ -4 & 5 & 7 & -10 & 0 \\ -2 & 1 & 8 & -5 & 3 \end{pmatrix}; \]
The first step in the method of bordering minors is always the same: we look for a nonzero minor of order one. In this matrix, such a minor can be, for example, the element \( -1 \) in the first row and second column, that is, \( M_1 = -1 \ne 0 \). This means that the rank of the matrix is definitely at least one.
Next, we move on to minors of order two that border the element we found. Consider the submatrix formed by the first two rows and the first two columns:
\[ M_2 = \begin{vmatrix} 0 & -1 \\ 2 & -4 \end{vmatrix} = 0 \cdot (-4) – 2 \cdot (-1) = 2 \ne 0; \]
We get a nonzero minor of order two, so \( \operatorname{rank} A \ge 2 \).
The next logical step is to check whether we can increase the rank to three. For this, we look at all minors of order three that contain the previously found \( M_2 \) inside. Such submatrices are obtained by adding one more row to the first two rows and one more column to the first two columns. Then we calculate the corresponding determinants one by one:
\[ \begin{aligned} M_3 &= \begin{vmatrix} 0 & -1 & 3 \\ 2 & -4 & 1 \\ -4 & 5 & 7 \end{vmatrix} = 0 \cdot (-4) \cdot 7 – 1 \cdot 1 \cdot (-4) + 2 \cdot 5 \cdot 3 – (3 \cdot (-4) \cdot (-4) + 1 \cdot 2 \cdot 7 – 1 \cdot 5 \cdot 0) = 0; \\ M_3 &= \begin{vmatrix} 0 & -1 & 0 \\ 2 & -4 & 5 \\ -4 & 5 & -10 \end{vmatrix} = 0 \cdot (-4) \cdot (-10) – 1 \cdot 5 \cdot (-4) + 2 \cdot 5 \cdot 0 – (0 \cdot (-4) \cdot (-4) + 1 \cdot 2 \cdot (-10) – 5 \cdot 5 \cdot 0) = 0; \\ M_3 &= \begin{vmatrix} 0 & -1 & 2 \\ 2 & -4 & 3 \\ -4 & 5 & 0 \end{vmatrix} = 0 \cdot (-4) \cdot 0 – 1 \cdot 3 \cdot (-4) + 2 \cdot 5 \cdot 2 – (2 \cdot (-4) \cdot (-4) + 1 \cdot 2 \cdot 0 – 3 \cdot 5 \cdot 0) = 0; \\ M_3 &= \begin{vmatrix} 0 & -1 & 3 \\ 2 & -4 & 1 \\ -2 & 1 & 8 \end{vmatrix} = 0 \cdot (-4) \cdot 8 – 1 \cdot 1 \cdot (-2) + 2 \cdot 1 \cdot 3 – (3 \cdot (-4) \cdot (-2) + 1 \cdot 2 \cdot 8 – 1 \cdot 1 \cdot 0) = 0; \\ M_3 &= \begin{vmatrix} 0 & -1 & 0 \\ 2 & -4 & 5 \\ -2 & 1 & -5 \end{vmatrix} = 0 \cdot (-4) \cdot (-5) – 1 \cdot 5 \cdot (-2) + 2 \cdot 1 \cdot 0 – (0 \cdot (-4) \cdot (-2) + 1 \cdot 2 \cdot (-5) – 5 \cdot 1 \cdot 0) = 0; \\ M_3 &= \begin{vmatrix} 0 & -1 & 2 \\ 2 & -4 & 3 \\ -2 & 1 & 3 \end{vmatrix} = 0 \cdot (-4) \cdot 3 – 1 \cdot 3 \cdot (-2) + 2 \cdot 1 \cdot 2 – (2 \cdot (-4) \cdot (-2) + 1 \cdot 2 \cdot 3 – 3 \cdot 1 \cdot 0) = 0. \end{aligned} \]
As a result, every possible minor of order three that borders \( M_2 \) turns out to be equal to zero. This means that there is no nonzero minor of order three, so the maximum order of a nonzero minor is two. Finally, we conclude that \( \operatorname{rank} A = 2 \).
Next Step After Rank: What to Read Next
If you already feel more confident with the Rank of a Matrix, this is a great point to move on. The next logical step is to explore topics that show how ranks, determinants, and systems of equations work together in real linear algebra problems. Below are three recommended directions that make it easy to continue your learning.
- Rank of a Matrix in Practice: Elementary Row Operations Step by Step — In this article, you will see how to change the rows of a matrix without changing its rank and how to determine the rank quickly, without long minor calculations.
- Determinant and Gaussian Elimination: From Step-by-Step Transformations to Triangular Form — This material explains how to transform a matrix step by step into an upper triangular form and how to find the determinant using the product of the diagonal elements.
- Cramer’s Rule in Action: The Determinant as a Tool for Solving Systems — In this article, you will learn how to use determinants to solve small systems of linear equations and quickly find the values of all unknowns.
Rank of a Matrix in Code: A Flowchart as a Starting Point
If you are interested in programming, a flowchart of the algorithm for computing the rank of a matrix using the method of bordering minors can be a great starting point for a small program in your favourite language. Look carefully at the diagram, follow the path from the input matrix to the final rank, and imagine how each block of the flowchart turns into a separate command in code. Isn’t it exciting to implement this algorithm in Python, C++, Java, or another language and get the rank of matrices of different sizes with a single program run? This kind of exercise helps you reinforce the topic “Rank of a matrix” and trains your ability to transfer logic from a flowchart into real working code.
