Theorem 1: The rank of A is equal to the rank of AT
.
We first defined the rank of A to be the number of leading 1's in rref(A). Later we learned that this tells us how many linearly independent columns the matrix A has and therefore is equal to the dimension of the image of the linear map defined by A. Since the columns of the transpose of A are the same as the rows of A, our theorem 1 is equivalent to
Theorem 2: The rank of A is equal to the number of linearly independent rows in A. That is, the rank of A tells us the dimension of the row space of A.
Example: Find a basis for the row space and for the column space of
[ 1 0 -1 1 ]
A = [ 0 1 1 1 ]
[ 1 1 0 2 ]
[ 2 3 1 5 ]In order to understand the column space of A we need to understand any linear relations that hold among the columns. This is the same as finding the kernel of A and we do this by bringing A into reduced form:
[ 1 0 -1 1 ] [ 1 0 -1 1 ] [ 1 0 -1 1 ]
[ 0 1 1 1 ] -----> [ 0 1 1 1 ] ----> [ 0 1 1 1 ]
[ 1 1 0 2 ] [ 0 1 1 1 ] [ 0 0 0 0 ]
[ 2 3 1 5 ] [ 0 3 3 3 ] [ 0 0 0 0 ]The same relations hold among the columns of A as hold among the columns of rref(A) because A and rref(A) have the same kernel. Since in rref(A) we see that column 3 = column 2 - column 1 and column 4 = column 1 + column 2, we conclude that the same relations hold among the columns of A. Since column 1 and column 2 of rref(A) are clearly independent, the same must be true back in A. Thus the column space of A is a plane in 4-space, with basis
[ 1 ] [ 0 ]
[ 0 ] and [ 1 ]
[ 1 ] [ 1 ]
[ 2 ] [ 3 ]To find a basis for the row space of A we could proceed in two ways:
[ 1 0 1 2 ] row reduces to [ 1 0 1 2 ]
transpose(A) = [ 0 1 1 3 ] ----------------> [ 0 1 1 3 ]
[ -1 1 0 1 ] [ 0 0 0 0 ]
[ 1 1 2 5 ] [ 0 0 0 0 ]So we see that column 3 of AT is the sum of columns 1 and 2 and column 4 is the 2*column 1 + 3*column 2. Thus if we go back to A we now know that row 3 of A is the sum of rows 1 and 2 and row 4 of A is 2*row1 + 3*row2 and thus we know that the row space of A has dimension 2 as the theorem predicts. Our basis for the row space of A is
row1 of A = [ 1 0 -1 1] and row2 of A = [ 0 1 1 1]Method 2 for finding a basis for the row space of A: We found a basis for the column space of A by computing rref(A). Can we find a basis for the row space of A from rref(A)? In order to answer this question, we must understand how row operations change the row space of a matrix. It turns out that row operations do not change the row space at all. In other words:
In other words if we look at the row vectors of A {(1,0,-1,1),
(0,1,1,1), (1,1,0,2) (2,3,1,5)} have exactly the same span as the
row vectors of rref(A) {(1,0,-1,1), (0,1,1,1), (0,0,0,0), (0,0,0,0)}.
Here the first two vectors are clearly independent and the last two contribute
nothing to the span. Again we find that the row space of A is two
dimensional and has as its basis the nonzero rows of rref(A).
Once we know that the row space of A is equal to the row space of rref(A), then we will have our theorems. The nonzero rows of a matrix in reduced row echelon form are clearly independent and therefore will always form a basis for the row space of A. Thus the dimension of the row space of A is the number of leading 1's in rref(A).
Theorem: The row space of A is equal to the row space of rref(A).
Proof:
Let r_1,r_2,...,r_n be the rows of the matrix A. How do the three standard row operations change this set of vectors?
We can interchange two rows -- we can list the row vectors in a different order. Clearly this will not change the span.
We can multiply any row by a nonzero scalar k, replacing the set {r_1,r_2,...,r_n } by { r_1, r_2, ..., k*r_i, ..., r_n}, where i is any index between 1 and n. This will not change the span since any vector that is a linear combination of the first set is automatically a linear combination of the second set and vice versa. All it takes is a minor adjustment in the ith coefficient:
x = a_1*r_1 + a_2*r_2 + ... + a_i*r_i + ... + a_n*r_n where the a_i's are scalars
= a_1*r_1 + a_2*r_2 + ... + (a_i/k)*k*r_i + ... + a_n*r_nWe can add a nonzero multiple of r_i to r_j, converting the original set of row vectors {r_1,r_2,...,r_n } to a new set
x = a_1*r_1 + a_2*r_2 + ... + a_i*r_i + ... + a_j*(r_j + k*r_i) + ... + a_n*r_n
= a_1*r_1 + a_2*r_2 + ... + (a_i + k*a_j)*r_i + a_j*r_j + ... + a_n*r_nSo if x is a linear combination of { r_1, r_2, ..., r_j + k*r_i, ..., r_n} then we can rearrange it as a linear combination of
x = a_1*r_1 + a_2*r_2 + ... + a_i*r_i + ... + a_j*r_j + ... + a_n*r_n
= a_1*r_1 + a_2*r_2 + ... + a_i*r_i + ... + a_j*r_j + ... + a_n*r_n
+ k*a_j*r_i - k*a_j*r_i
= a_1*r_1 + a_2*r_2 +...+(a_i - k*a_j)*r_i +...+ a_j(r_j + k*r_i) +...+ a_n*r_nThus any vector that can be written as a linear combination of {r_1,r_2,...,r_n } can be written as a linear combination of
This proves that row operations do not change the row space of a matrix.
So all our theorems are proved.