矩阵的行秩与列秩相等,是线性代数基本定理的重要组成部分。其基本证明思路是,矩阵可以看作线性映射的变换矩阵,列秩为像空间的维度,行秩为非零原像空间的维度,因此列秩与行秩相等,即像空间的维度与非零原像空间的维度相等(这里的非零原像空间是指约去了零空间后的商空间:原像空间)。这从矩阵的奇异值分解就可以看出来。
给出这一结果的两种证明. 第一个证明是简短的,仅用到向量的线性组合的基本性质. 第二个证明利用了正交性[1]. 第一个证明利用了列空间的基, 第二个证明利用了行向量空间的基. 第一个证明适用于定义在标量域上的矩阵,第二个证明适用于内积空间。二者都适用于实或复的欧氏空间,也都易于修改去证明当A是线性变换的情形.
证明一
编辑
令
A
{\displaystyle A}
是一个
m
×
n
{\displaystyle m\times n}
的矩阵,其列秩为
r
{\displaystyle r}
. 因此矩阵
A
{\displaystyle A}
的列空间的维度是
r
{\displaystyle r}
. 令
c
1
,
c
2
,
…
,
c
r
{\displaystyle c_{1},c_{2},\ldots ,c_{r}}
是
A
{\displaystyle A}
的列空间的一组基,构成
m
×
r
{\displaystyle m\times r}
矩阵
C
{\displaystyle C}
的列向量
C
=
[
c
1
,
c
2
,
…
,
c
r
]
{\displaystyle C=[c_{1},c_{2},\ldots ,c_{r}]}
,并使得
A
{\displaystyle A}
的每个列向量是
C
{\displaystyle C}
的
r
{\displaystyle r}
个列向量的线性组合. 由矩阵乘法的定义,存在一个
r
×
n
{\displaystyle r\times n}
矩阵
R
{\displaystyle R}
, 使得
A
=
C
R
{\displaystyle A=CR}
. (
A
{\displaystyle A}
的
(
i
,
j
)
{\displaystyle (i,j)}
元素是
c
i
{\displaystyle c_{i}}
与
R
{\displaystyle R}
的第
j
{\displaystyle j}
个行向量的点积.)
现在,由于
A
=
C
R
{\displaystyle A=CR}
,
A
{\displaystyle A}
的每个行向量是
R
{\displaystyle R}
的行向量的线性组合,这意味着
A
{\displaystyle A}
的行向量空间被包含于
R
{\displaystyle R}
的行向量空间之中. 因此
A
{\displaystyle A}
的行秩 ≤
R
{\displaystyle R}
的行秩. 但
R
{\displaystyle R}
仅有
r
{\displaystyle r}
行, 所以
R
{\displaystyle R}
的行秩 ≤
r
{\displaystyle r}
=
A
{\displaystyle A}
的列秩. 这就证明了
A
{\displaystyle A}
的行秩 ≤
A
{\displaystyle A}
的列秩.
把上述证明过程中的“行”与“列”交换,利用对偶性质同样可证
A
{\displaystyle A}
的列秩 ≤
A
{\displaystyle A}
的行秩。更简单的方法是考虑
A
{\displaystyle A}
的转置矩阵
A
T
{\displaystyle A^{\mathrm {T} }}
,则
A
{\displaystyle A}
的列秩 =
A
T
{\displaystyle A^{\mathrm {T} }}
的行秩 ≤
A
T
{\displaystyle A^{\mathrm {T} }}
的列秩 =
A
{\displaystyle A}
的行秩. 这证明了
A
{\displaystyle A}
的列秩等于
A
{\displaystyle A}
的行秩. 证毕.
证明二
编辑
令
A
{\displaystyle A}
是
m
×
n
{\displaystyle m\times n}
矩阵,其行秩是
r
{\displaystyle r}
. 因此
A
{\displaystyle A}
的行向量空间的维度是
r
{\displaystyle r}
,设
x
1
,
x
2
,
…
,
x
r
{\displaystyle x_{1},x_{2},\ldots ,x_{r}}
是
A
{\displaystyle A}
的行向量空间的一组基. 如果把这组基当作原像列向量看待,则向量集
A
x
1
,
A
x
2
,
…
,
A
x
r
{\displaystyle Ax_{1},Ax_{2},\ldots ,Ax_{r}}
是线性独立的。 这是因为对一组标量系数
c
1
,
c
2
,
…
,
c
r
{\displaystyle c_{1},c_{2},\ldots ,c_{r}}
,如果:
c
1
A
x
1
+
c
2
A
x
2
+
⋯
c
r
A
x
r
=
A
(
c
1
x
1
+
c
2
x
2
+
⋯
+
c
r
x
r
)
=
A
v
=
0
,
{\displaystyle c_{1}Ax_{1}+c_{2}Ax_{2}+\cdots c_{r}Ax_{r}=A(c_{1}x_{1}+c_{2}x_{2}+\cdots +c_{r}x_{r})=Av=0,}
其中
v
=
c
1
x
1
+
c
2
x
2
+
…
,
c
r
x
r
{\displaystyle v=c_{1}x_{1}+c_{2}x_{2}+\ldots ,c_{r}x_{r}}
. 则可以推出有两个事实: (a)
v
{\displaystyle v}
是
A
{\displaystyle A}
行向量空间的线性组合, 即
v
{\displaystyle v}
属于
A
{\displaystyle A}
的行向量空间;(b) 由于
A
v
{\displaystyle Av}
= 0,
v
{\displaystyle v}
正交于
A
{\displaystyle A}
的所有行向量,从而正交于
A
{\displaystyle A}
的行向量空间的所有向量. 事实(a)与(b)结合起来,则
v
{\displaystyle v}
正交于自身,这意味着
v
{\displaystyle v}
= 0. 由
v
{\displaystyle v}
的定义:
c
1
x
1
+
c
2
x
2
+
…
,
c
r
x
r
=
0.
{\displaystyle c_{1}x_{1}+c_{2}x_{2}+\ldots ,c_{r}x_{r}=0.}
再由
x
i
{\displaystyle x_{i}}
是
A
{\displaystyle A}
的行向量空间的一组线性独立的基,可知
c
1
=
c
2
=
⋯
=
c
r
=
0
{\displaystyle c_{1}=c_{2}=\cdots =c_{r}=0}
.
A
x
1
,
A
x
2
,
…
,
A
x
r
{\displaystyle Ax_{1},Ax_{2},\ldots ,Ax_{r}}
因而是线性独立的.
A
x
i
{\displaystyle Ax_{i}}
是
A
{\displaystyle A}
的列空间中的向量. 因此
A
x
1
,
A
x
2
,
…
,
A
x
r
{\displaystyle Ax_{1},Ax_{2},\ldots ,Ax_{r}}
是
A
{\displaystyle A}
的列空间中
r
{\displaystyle r}
个线性独立的向量. 所以
A
{\displaystyle A}
的列向量空间的维数(
A
{\displaystyle A}
的列秩)必然不小于
r
{\displaystyle r}
. 这证明了
A
{\displaystyle A}
的行秩r ≤
A
{\displaystyle A}
的列秩. 把这一结果应用于
A
{\displaystyle A}
的转置矩阵可以得到:
A
{\displaystyle A}
的列秩 =
A
T
{\displaystyle A^{\mathrm {T} }}
的行秩 ≤
A
T
{\displaystyle A^{\mathrm {T} }}
列秩 =
A
{\displaystyle A}
的行秩. 这证明了
A
{\displaystyle A}
的列秩等于
A
{\displaystyle A}
的行秩,证毕.
最后, 还可以证明rk(A) = rk(A*), 其中A*是A的共轭转置或称施密特转置. 当A的元素都是实数, 这一结果变为rk(A) = rk(AT). 然而对于复系数矩阵,rk(A) = rk(A*)并不等价于行秩等于列秩, 需要用到上述两个证明.
证明三
编辑
令A是一个m×n矩阵. 定义rk(A)为A的列秩,A*为A的共轭转置或称施密特转置. 首先可知A*Ax = 0当且仅当Ax = 0.
A*Ax = 0 ⇒ x*A*Ax = 0 ⇒ (Ax)*(Ax) = 0 ⇒ ‖Ax‖2 = 0 ⇒ Ax = 0,
其中‖·‖是欧氏范数. 这说明A的零空间与A*A的零空间相同. 由秩-零化度定理, 可得rk(A) = rk(A*A). A*A的每一个列向量是A*的列向量的线性组合. 所以A*A的列空间是A*的列空间的子空间. 从而rk(A*A) ≤ rk(A*). 即: rk(A) = rk(A*A) ≤ rk(A*). 应用这一结果于A*可获得不等式: 由于(A*)* = A, 可写作rk(A*) ≤ rk((A*)*) = rk(A). 这证明了rk(A) = rk(A*). 证毕.