文章目录
一、矩阵是什么?1. 什么是矩阵?2. 矩阵的表示方法3. 矩阵的大小(阶数)
二、什么是矩阵的秩?(直观讲解)三、理解矩阵秩前的必备概念(适合零基础)1、什么是向量?2、什么是线性组合?3、线性相关与线性无关的区别4、矩阵的秩
四、如何计算矩阵的秩?4.1、行阶梯变换法(高斯消元法)4.2、行列式法4.2.1、子式与k阶子式4.2.2、矩阵秩的严格定义(子式法定义)4.2.3、计算方法和具体步骤4.2.4、行列式的计算方法4.2.4.1、行列式的定义4.2.4.2、二阶行列式的计算方法(最简单)4.2.4.3、三阶行列式的计算方法(对角线法则)4.2.4.4、高阶行列式的计算方法(代数余子式展开)4.2.4.5、行列式计算小技巧
4.2.5、满秩矩阵4.2.6、行列式法总结
4.3、奇异值分解法(SVD法,适合数值计算)4.3.1、基本概念4.3.2、奇异值的含义4.3.3、如何用SVD求矩阵的秩?4.3.4、奇异值分解法求秩步骤4.3.5、奇异值分解法的优点与缺点4.3.6、如何使用计算机求解SVD
4.4、对三种方法的对比与建议
五、矩阵秩的几何意义六、特殊矩阵的秩6.1、 零矩阵6.2、 单位矩阵6.3、 对角矩阵6.4、特殊矩阵秩的快速判断规律总结
七、矩阵秩的常用性质
一、矩阵是什么?
1. 什么是矩阵?
矩阵(Matrix)其实就是一个用数字排列而成的表格,就是我们平时常见的表格那样,只不过我们将表格里的数据都换成了数字。更正式地讲,矩阵就是把一些数字排成了行和列的形式。例如:
[
1
2
3
4
5
6
]
\begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}
[142536] 这个矩阵就有两行三列,我们称它为“2×3矩阵”。
2. 矩阵的表示方法
我们通常用大写字母(如
A
、
B
、
C
A、B、C
A、B、C )来表示矩阵,比如:
A
=
[
a
11
a
12
a
13
a
21
a
22
a
23
]
A = \begin{bmatrix} a_{11} & a_{12} & a_{13}\\[6pt] a_{21} & a_{22} & a_{23} \end{bmatrix}
A=[a11a21a12a22a13a23] 这里的
a
i
j
a_{ij}
aij 代表矩阵第
i
i
i 行、第
j
j
j 列的元素,例如
a
12
a_{12}
a12 就表示矩阵中第1行第2列的那个数。
3. 矩阵的大小(阶数)
行数和列数构成了矩阵的大小,也叫矩阵的阶数。如上面的矩阵
A
A
A 有2行3列,因此它的阶数(或尺寸)是 2×3。
例: 假设我们有一个学生期末考试成绩表:
学生姓名数学英语物理小明889285小红798590小刚918788
在这个表格中:
每一行代表了一个学生。每一列代表了一门学科。每个元素(比如『小明』的数学成绩『88』)都对应了一个具体的位置:例如『小红』的英语成绩是第二行、第三列的位置。
如果我们去掉具体的人名和科目名称,仅保留数字,我们会得到如下的一个数字矩阵:
[
88
92
85
79
85
90
91
87
88
]
\begin{bmatrix} 88 & 92 & 85\\[6pt] 79 & 85 & 90\\[6pt] 91 & 87 & 88 \end{bmatrix}
887991928587859088
这个矩阵:
有3行,分别对应了3个学生;有3列,分别对应了3门学科。
我们通常用以下符号表示位置关系:
a
11
=
88
a_{11}=88
a11=88:表示第1行第1列,即小明的数学成绩。
a
23
=
90
a_{23}=90
a23=90:表示第2行第3列,即小红的物理成绩。
a
32
=
87
a_{32}=87
a32=87:表示第3行第2列,即小刚的英语成绩。
下图能更好的说明从表格到矩阵的转换过程
图1. 从表格到矩阵的转换过程
二、什么是矩阵的秩?(直观讲解)
矩阵的秩(Rank),简单来说,就是一个矩阵中所含有的“有效信息”的大小,或者说是“独特行或列”的数量。
你可以想象一下,如果一个矩阵中有两行完全一样,那么其中一行就是“多余”的,因为它没有带来新信息。这种情况下,矩阵的秩就肯定会比行数少。例如:
[
1
2
1
2
]
\begin{bmatrix} 1 & 2\\ 1 & 2 \end{bmatrix}
[1122] 这个矩阵显然有一行是多余的,因此它的秩为1(而不是2)。
矩阵的秩通常用“行秩”和“列秩”来定义:
行秩:矩阵中互相不重复、不依赖(即线性无关)的行的最大数目。列秩:矩阵中互相不重复、不依赖的列的最大数目。
事实上,行秩和列秩总是相等的,因此我们通常直接称之为“矩阵的秩”。
例如下面的矩阵:
B
=
[
1
2
3
2
4
6
3
6
9
]
B = \begin{bmatrix} 1 & 2 & 3\\[6pt] 2 & 4 & 6\\[6pt] 3 & 6 & 9 \end{bmatrix}
B=
123246369
可以发现第二行是第一行的2倍,第三行是第一行的3倍,因此这三行之间并没有提供新的信息,只有一行是有效的,因此这个矩阵的秩就是 1。
而再看一个矩阵:
C
=
[
1
2
3
0
1
4
0
0
1
]
C = \begin{bmatrix} 1 & 2 & 3\\[6pt] 0 & 1 & 4\\[6pt] 0 & 0 & 1 \end{bmatrix}
C=
100210341
这里面每一行都是独立的,没有一行可以由其他行通过线性组合得到,因此这个矩阵的秩为 3。
下图更能形象的看出矩阵
B
B
B和矩阵
C
C
C的秩:
图2. 秩为1的矩阵
B
B
B和秩为3的矩阵
C
C
C。
如果能明白上面的关系,那么就能清楚看出下面矩阵的秩是多少?
(1)
[
1
3
2
6
]
\begin{bmatrix} 1 & 3\\ 2 & 6 \end{bmatrix}
[1236]
(2)
[
1
0
1
0
1
0
2
1
2
]
\begin{bmatrix} 1 & 0 & 1\\ 0 & 1 & 0\\ 2 & 1 & 2 \end{bmatrix}
102011102
参考答案:(1)秩为1。(2)秩为3。
三、理解矩阵秩前的必备概念(适合零基础)
矩阵秩的严格理解离不开几个基础概念:向量、线性组合、线性相关与无关。
1、什么是向量?
向量简单来说就是在空间中有大小、有方向的量。
二维向量就是平面上的箭头(带有方向和长度)。三维空间向量,可以理解为空间中的箭头,包含方向和大小。
比如说:
a
⃗
=
(
3
,
2
)
\vec{a} = (3, 2)
a
=(3,2):表示在二维空间中,从原点向右3单位、向上2单位的向量。
b
⃗
=
(
0
,
4
)
\vec{b} = (0, 4)
b
=(0,4):表示只向上移动4个单位的向量。
向量
a
⃗
=
(
3
,
2
)
\vec{a} = (3, 2)
a
=(3,2)和向量
b
⃗
=
(
0
,
4
)
\vec{b} = (0, 4)
b
=(0,4)可以用下图表示
图3.(a)向量
a
⃗
=
(
3
,
2
)
\vec{a} = (3, 2)
a
=(3,2),(b)向量
b
⃗
=
(
0
,
4
)
\vec{b} = (0, 4)
b
=(0,4)。
2、什么是线性组合?
线性组合:就是几个向量乘一个数再相加。
例如,有向量
a
⃗
=
(
1
,
2
)
\vec{a}=(1, 2)
a
=(1,2)、
b
⃗
=
(
3
,
0
)
\vec{b}=(3, 0)
b
=(3,0),我们做一次线性组合:
2
a
⃗
+
3
b
⃗
=
2
(
1
,
2
)
+
3
(
3
,
0
)
=
(
2
,
4
)
+
(
9
,
0
)
=
(
11
,
4
)
2\vec{a}+3\vec{b}=2(1,2)+3(3,0)=(2,4)+(9,0)=(11,4)
2a
+3b
=2(1,2)+3(3,0)=(2,4)+(9,0)=(11,4) 这个结果
(
11
,
4
)
(11,4)
(11,4)就是
a
⃗
\vec{a}
a
和
b
⃗
\vec{b}
b
的一个线性组合。图形表示如下,
图4.(a)向量
a
⃗
=
(
1
,
2
)
\vec{a}=(1, 2)
a
=(1,2)和
b
⃗
=
(
3
,
0
)
\vec{b}=(3, 0)
b
=(3,0),(b)向量的线性组合
2
a
⃗
+
3
b
⃗
2\vec{a}+3\vec{b}
2a
+3b
。
3、线性相关与线性无关的区别
线性相关:通俗来讲,就是多个向量之间有明显的“重复”或“依赖”关系,其中一个或多个向量能由其它向量线性组合而来。线性无关:不存在这种相互倍数关系,向量的方向互相独立。
例:
线性相关向量(如
(
1
,
2
)
(1,2)
(1,2)与
(
2
,
4
)
(2,4)
(2,4)):因为后者是前者的2倍,他们在本质上没有增加新的方向或维度的信息。线性无关向量(如
(
1
,
0
)
(1,0)
(1,0)与
(
0
,
1
)
(0,1)
(0,1)):两个向量分别指向不同方向,因此能构成二维空间的两个维度。
图5.(a)线性相关,(b)线性无关。
4、矩阵的秩
矩阵的秩,就是指矩阵的行(或列)中最大线性无关的行数(或列数)。换句话说,矩阵的秩等于它的行(或列)向量组中线性无关的向量的最大个数。
注意: 这里的“线性无关的最大个数”可以理解为矩阵中没有冗余信息的最大行(或列)数。
为什么行秩和列秩总是相等?
对于任何矩阵,它的行所代表的“独立信息”和列所代表的信息数量是一致的。尽管行和列看起来不同,但数学上已经被证明,它们所反映的有效维度信息实际上是一致的。
例:
D
=
[
1
2
3
0
1
4
0
0
1
]
D = \begin{bmatrix} 1 & 2 & 3\\[6pt] 0 & 1 & 4\\[6pt] 0 & 0 & 1 \end{bmatrix}
D=
100210341
上面的矩阵
D
D
D显然三行都是独特的(无法互相通过倍数组合得到),所以行秩为3;同样,从列看,每一列也无法通过其他列线性组合得到,因此列秩也为3。
图6. 行秩和列秩总是相等。
四、如何计算矩阵的秩?
4.1、行阶梯变换法(高斯消元法)
行阶梯变换法,也称高斯消元法(Gaussian Elimination),其思想非常直观:
通过对矩阵进行初等行变换(即:行互换、某一行乘以非零数、某行加上另一行的倍数),最终把矩阵变成一个阶梯形矩阵(类似楼梯形式)。
阶梯形矩阵的特征:
全零行(如果有)都在矩阵最下方。每行第一个非零元素(称为“主元”)右下方的元素都为零。
例如计算矩阵
A
A
A 的秩:
A
=
[
1
2
3
2
4
7
1
1
1
]
A=\begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 7 \\ 1 & 1 & 1 \end{bmatrix}
A=
121241371
我们用高斯消元法详细步骤如下:
第一步: 用第1行消去第2、3行第1列元素:
第2行
−
2
×
第1行
→
第2行
第3行
−
1
×
第1行
→
第3行
\begin{aligned} &\text{第2行}-2\times\text{第1行}\rightarrow\text{第2行}\\ &\text{第3行}-1\times\text{第1行}\rightarrow\text{第3行} \end{aligned}
第2行−2×第1行→第2行第3行−1×第1行→第3行
消去后:
[
1
2
3
0
0
1
0
−
1
−
2
]
\begin{bmatrix} 1 & 2 & 3\\[6pt] 0 & 0 & 1\\[6pt] 0 & -1 & -2 \end{bmatrix}
10020−131−2
第二步: 交换第2行与第3行(便于进一步消元):
[
1
2
3
0
−
1
−
2
0
0
1
]
\begin{bmatrix} 1 & 2 & 3\\[6pt] 0 & -1 & -2\\[6pt] 0 & 0 & 1 \end{bmatrix}
1002−103−21
第三步: 此时矩阵已呈阶梯型,无需再消元,非零行数为3,秩为3。
图形表示如下
图7. 高斯消元法。
4.2、行列式法
行列式法又称子式判别法,是计算矩阵秩的一种经典方法,特别适用于规模较小的矩阵或方阵。
4.2.1、子式与k阶子式
首先明确几个重要的基本概念:
子式:从原矩阵中选取任意若干行与若干列,这些行和列交叉位置上的元素构成的较小的方阵的行列式,称为原矩阵的子式。k阶子式:如果从原矩阵中选取的行数和列数均为k,则称这个子式为矩阵的k阶子式。
通俗点理解,就是从原矩阵中任意选择k行k列,构成一个更小的
k
×
k
k \times k
k×k方阵,再求出这个小矩阵的行列式,这个结果就是一个k阶子式的值。
例:设有矩阵:
A
=
[
1
3
2
4
4
1
3
1
1
4
1
2
]
A=\begin{bmatrix} 1 & 3 & 2 & 4\\[6pt] 4 & 1 & 3 & 1\\[6pt] 1 & 4 & 1 & 2 \end{bmatrix}
A=
141314231412
我们选择第一、第二行和第二、第四列:
D
2
=
∣
3
4
1
1
∣
=
3
×
1
−
4
×
1
=
−
1
D_2 = \begin{vmatrix} 3 & 4\\[6pt] 1 & 1 \end{vmatrix}=3\times 1-4\times 1=-1
D2=
3141
=3×1−4×1=−1 这个结果为-1的子式就是矩阵
A
A
A的一个二阶子式。
图8. 二阶子式。
4.2.2、矩阵秩的严格定义(子式法定义)
矩阵的秩也可以通过子式来严格定义:
若矩阵
A
A
A中存在至少一个不等于零的r阶子式,并且所有的(
r
+
1
r+1
r+1)阶子式(如果存在的话)均等于零,那么就称矩阵
A
A
A的秩为
r
r
r,记作:
R
(
A
)
=
r
R(A) = r
R(A)=r
通俗地说,矩阵的秩就是矩阵中不等于零的子式的最大阶数。
4.2.3、计算方法和具体步骤
利用子式判别法计算矩阵秩的详细步骤如下:
(1)从最大可能阶数(矩阵行列数的最小值)开始,逐渐降低子式的阶数。
(2)计算该阶子式的值,看是否存在一个子式不为零:
若存在,矩阵的秩就是当前阶数。若不存在,再继续降低阶数,重复此过程,直到找到非零子式。
以实际矩阵为例,计算矩阵秩:
A
=
[
1
2
3
0
0
1
0
1
0
0
1
0
]
A=\begin{bmatrix} 1 & 2 & 3 & 0 \\[6pt] 0 & 1 & 0 & 1 \\[6pt] 0 & 0 & 1 & 0 \end{bmatrix}
A=
100210301010
矩阵
A
A
A大小为
3
×
4
3\times 4
3×4,最大可能阶数为3,我们先看三阶子式:
例如,取前面3列构成的子式:
∣
1
2
3
0
1
0
0
0
1
∣
=
1
×
(
1
×
1
−
0
×
0
)
=
1
≠
0
\begin{vmatrix} 1 & 2 & 3\\[6pt] 0 & 1 & 0\\[6pt] 0 & 0 & 1 \end{vmatrix}=1\times(1\times1-0\times0)=1\ne 0
100210301
=1×(1×1−0×0)=1=0 存在非零的三阶子式,因此矩阵的秩为3。
4.2.4、行列式的计算方法
行列式(Determinant)是矩阵秩计算过程中经常需要用到的数学工具,特别是在子式法(行列式法)中起到关键作用。
下面详细介绍2阶、3阶以及更高阶行列式的计算方法。
4.2.4.1、行列式的定义
对于方阵(行数与列数相等)的矩阵
A
A
A,记作:
A
=
[
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
n
1
a
n
2
⋯
a
n
n
]
A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\[6pt] a_{21} & a_{22} & \cdots & a_{2n}\\[6pt] \vdots & \vdots & \ddots & \vdots\\[6pt] a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}
A=
a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann
它的行列式记作:
∣
A
∣
=
∣
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
n
1
a
n
2
⋯
a
n
n
∣
|A|=\begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\[6pt] a_{21} & a_{22} & \cdots & a_{2n}\\[6pt] \vdots & \vdots & \ddots & \vdots\\[6pt] a_{n1} & a_{n2} & \cdots & a_{nn} \end{vmatrix}
∣A∣=
a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann
行列式用『| |』表示,区别于矩阵的方括号『[ ]』。行列式的结果是一个具体的数值,而非矩阵。
4.2.4.2、二阶行列式的计算方法(最简单)
对于二阶矩阵:
A
=
[
a
b
c
d
]
A= \begin{bmatrix} a & b \\[6pt] c & d \end{bmatrix}
A=[acbd] 则它的行列式值:
∣
A
∣
=
a
d
−
b
c
|A| = ad - bc
∣A∣=ad−bc 例: 计算以下二阶行列式的值:
∣
2
3
1
4
∣
=
2
×
4
−
3
×
1
=
8
−
3
=
5
\begin{vmatrix} 2 & 3\\[6pt] 1 & 4 \end{vmatrix} = 2\times4 - 3\times1 = 8 - 3 = 5
2134
=2×4−3×1=8−3=5
4.2.4.3、三阶行列式的计算方法(对角线法则)
设三阶矩阵:
B
=
[
a
b
c
d
e
f
g
h
i
]
B=\begin{bmatrix} a & b & c \\[6pt] d & e & f \\[6pt] g & h & i \end{bmatrix}
B=
adgbehcfi
则它的行列式:
∣
B
∣
=
a
e
i
+
b
f
g
+
c
d
h
−
c
e
g
−
b
d
i
−
a
f
h
|B| = aei + bfg + cdh - ceg - bdi - afh
∣B∣=aei+bfg+cdh−ceg−bdi−afh 也可记忆为:
主对角线乘积之和(向右下方对角线):
a
e
i
+
b
f
g
+
c
d
h
aei+bfg+cdh
aei+bfg+cdh减去次对角线乘积之和(向左下方对角线):
c
e
g
+
a
f
h
+
b
d
i
ceg+afh+bdi
ceg+afh+bdi
该法则可参考下图记忆
图9. 三阶行列式计算规则。
例: 计算以下三阶行列式的值:
∣
1
2
3
0
1
4
5
6
0
∣
\begin{vmatrix} 1 & 2 & 3\\[6pt] 0 & 1 & 4\\[6pt] 5 & 6 & 0 \end{vmatrix}
105216340
根据公式:
主对角线方向:
1
×
1
×
0
+
2
×
4
×
5
+
3
×
0
×
6
=
0
+
40
+
0
=
40
1\times1\times0 + 2\times4\times5 + 3\times0\times6 = 0 +40+0=40
1×1×0+2×4×5+3×0×6=0+40+0=40次对角线方向:
3
×
1
×
5
+
1
×
4
×
6
+
2
×
0
×
0
=
15
+
24
+
0
=
39
3\times1\times5 + 1\times4\times6 + 2\times0\times0=15+24+0=39
3×1×5+1×4×6+2×0×0=15+24+0=39
则结果为:
∣
B
∣
=
40
−
39
=
1
|B|=40 - 39=1
∣B∣=40−39=1
4.2.4.4、高阶行列式的计算方法(代数余子式展开)
对于更高阶(如4阶及以上)行列式,我们通常采用代数余子式展开法:
基本公式:对
n
n
n 阶行列式:
按第
i
i
i 行展开:
∣
A
∣
=
a
i
1
A
i
1
+
a
i
2
A
i
2
+
⋯
+
a
i
n
A
i
n
|A|=a_{i1}A_{i1}+a_{i2}A_{i2}+\cdots+a_{in}A_{in}
∣A∣=ai1Ai1+ai2Ai2+⋯+ainAin
按第
j
j
j 列展开:
∣
A
∣
=
a
1
j
A
1
j
+
a
2
j
A
2
j
+
⋯
+
a
n
j
A
n
j
|A|=a_{1j}A_{1j}+a_{2j}A_{2j}+\cdots+a_{nj}A_{nj}
∣A∣=a1jA1j+a2jA2j+⋯+anjAnj
其中:
A
i
j
=
(
−
1
)
i
+
j
M
i
j
A_{ij}=(-1)^{i+j}M_{ij}
Aij=(−1)i+jMij 为元素
a
i
j
a_{ij}
aij 的代数余子式。
M
i
j
M_{ij}
Mij 为元素
a
i
j
a_{ij}
aij对应位置的元素所在行列划掉后剩余元素组成的小行列式。
例如
M
12
M_{12}
M12的获取如下图所示:
图10.
M
12
的获取
M_{12}的获取
M12的获取。
例: 计算四阶行列式:
∣
C
∣
=
∣
1
2
3
4
0
1
0
1
0
0
1
0
2
3
4
1
∣
|C|=\begin{vmatrix} 1 & 2 & 3 & 4\\[6pt] 0 & 1 & 0 & 1\\[6pt] 0 & 0 & 1 & 0\\[6pt] 2 & 3 & 4 & 1 \end{vmatrix}
∣C∣=
1002210330144101
选择按第一行展开(你也可选择其他任意行列):
∣
C
∣
=
1
⋅
A
11
+
2
⋅
A
12
+
3
⋅
A
13
+
4
⋅
A
14
|C|=1\cdot A_{11}+2\cdot A_{12}+3\cdot A_{13}+4\cdot A_{14}
∣C∣=1⋅A11+2⋅A12+3⋅A13+4⋅A14 逐个计算:
A
11
=
(
−
1
)
2
∣
1
0
1
0
1
0
3
4
1
∣
=
1
×
[
1
×
1
×
1
−
0
×
0
×
3
+
1
×
0
×
4
−
1
×
1
×
3
−
1
×
0
×
4
−
0
×
0
×
1
]
=
−
2
A_{11}=(-1)^{2}\begin{vmatrix}1&0&1\\0&1&0\\3&4&1\end{vmatrix}=1\times[1\times1\times1-0\times0\times3+1\times0\times4-1\times1\times3-1\times0\times4-0\times0\times1]=-2
A11=(−1)2
103014101
=1×[1×1×1−0×0×3+1×0×4−1×1×3−1×0×4−0×0×1]=−2同理计算出
A
12
=
2
,
A
13
=
0
,
A
14
=
−
2
A_{12}=2,\quad A_{13}=0,\quad A_{14}=-2
A12=2,A13=0,A14=−2
(计算略,可按三阶行列式方法计算)
则最终:
∣
C
∣
=
1
×
(
−
2
)
+
2
×
2
+
3
×
0
+
4
×
(
−
2
)
=
−
2
+
4
+
0
−
8
=
−
6
|C|=1\times(-2)+2\times2+3\times0+4\times(-2)=-2+4+0-8=-6
∣C∣=1×(−2)+2×2+3×0+4×(−2)=−2+4+0−8=−6
4.2.4.5、行列式计算小技巧
有零元素较多的行列,优先按该行或列展开。行列式的值不变的基本性质:
两行(或两列)交换,行列式值变号。某行(或某列)所有元素乘以某一数k,行列式的值变为原来的k倍。某行加上另一行的倍数,行列式值不变。
4.2.5、满秩矩阵
当一个矩阵为方阵(行数=列数=
n
n
n),如果其秩等于
n
n
n(即存在
n
n
n阶子式不为0),则称为满秩矩阵(又称非奇异矩阵)。满秩矩阵的一个重要特征是行列式
∣
A
∣
≠
0
|A|\ne0
∣A∣=0。
例:
B
=
[
1
2
3
4
]
,
∣
B
∣
=
1
×
4
−
2
×
3
=
−
2
≠
0
B=\begin{bmatrix} 1 & 2\\[6pt] 3 & 4 \end{bmatrix},\quad |B|=1\times4-2\times3=-2\ne 0
B=[1324],∣B∣=1×4−2×3=−2=0 所以矩阵
B
B
B是满秩矩阵,且秩为2。
4.2.6、行列式法总结
优点缺点对于小型矩阵(尤其方阵)非常直观计算量大,阶数高时难度增大概念严谨,利于掌握矩阵本质含义不适用于大规模矩阵
对规模较小的矩阵,尤其方阵,可以快速地使用行列式法求解秩;对于复杂或较大矩阵,一般推荐高斯消元法或奇异值分解法。
4.3、奇异值分解法(SVD法,适合数值计算)
奇异值分解法(Singular Value Decomposition, SVD)是一种现代数值计算中非常重要的方法。相比于前面的高斯消元法和行列式法,SVD有更好的数值稳定性和广泛适用性,尤其适用于计算机环境。
4.3.1、基本概念
奇异值分解是把任意一个矩阵
A
m
×
n
A_{m \times n}
Am×n 表示成以下三个矩阵相乘的形式:
A
m
×
n
=
U
m
×
m
Σ
m
×
n
V
n
×
n
T
A_{m \times n} = U_{m \times m}\Sigma_{m \times n}V_{n \times n}^{T}
Am×n=Um×mΣm×nVn×nT
其中
U
U
U 与
V
V
V 是正交矩阵,即满足:
U
T
U
=
U
U
T
=
I
,
V
T
V
=
V
V
T
=
I
U^T U = UU^T = I,\quad V^T V = VV^T = I
UTU=UUT=I,VTV=VVT=I
(
I
I
I 为单位矩阵)
Σ
\Sigma
Σ 是一个对角矩阵(非方阵情况下称为广义对角矩阵),它的对角线上元素称为矩阵
A
A
A 的奇异值(Singular Values)。
简单来说,奇异值分解的思想就是:
把一个复杂的矩阵分解成两个正交矩阵和一个对角矩阵相乘,来清晰地展示出矩阵本身的本质信息。
4.3.2、奇异值的含义
矩阵的奇异值代表了矩阵沿不同方向的 “重要程度”或“信息强度” 。一般从大到小排序,较大的奇异值表示更显著的信息量。
例如,矩阵分解后可能奇异值是:[8, 2, 0],说明矩阵主要信息集中在前两个方向上,第三个方向没有提供额外的信息(奇异值为0)。
4.3.3、如何用SVD求矩阵的秩?
矩阵的秩,就是矩阵中有效信息的多少。奇异值恰好表示了矩阵的信息量,因此:
矩阵
A
A
A 的秩就等于它的奇异值中非零奇异值的个数。
更严谨地说:
R
a
n
k
(
A
)
Rank(A)
Rank(A) = 矩阵
A
A
A 的奇异值中大于零的奇异值的数量。
4.3.4、奇异值分解法求秩步骤
(1)对矩阵
A
A
A 进行奇异值分解:
A
=
U
Σ
V
T
A = U\Sigma V^T
A=UΣVT (2)确定奇异值:将
Σ
\Sigma
Σ矩阵对角线元素(奇异值)按从大到小排序。
(3)判断矩阵的秩:
统计非零奇异值(通常实际中非零的判断标准:数值大于某个极小阈值,如10⁻¹⁰)。非零奇异值的个数即为矩阵秩。
例如,考虑下面的矩阵:
A
=
[
1
0
0
0
1
0
0
0
0
]
A = \begin{bmatrix} 1 & 0 & 0\\[6pt] 0 & 1 & 0\\[6pt] 0 & 0 & 0 \end{bmatrix}
A=
100010000
(1)对矩阵A进行SVD分解:我们用计算工具(如Python的numpy库或MATLAB)可快速得到:
U
=
[
1
0
0
0
1
0
0
0
1
]
,
Σ
=
[
1
0
0
0
1
0
0
0
0
]
,
V
T
=
[
1
0
0
0
1
0
0
0
1
]
U = \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{bmatrix},\quad \Sigma = \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 0 \end{bmatrix},\quad V^T = \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{bmatrix}
U=
100010001
,Σ=
100010000
,VT=
100010001
(2)确定奇异值:
奇异值为
Σ
\Sigma
Σ对角线上的元素:[1, 1, 0]
(3)计算矩阵秩:
非零奇异值有2个,因此矩阵
A
A
A 的秩为2。
4.3.5、奇异值分解法的优点与缺点
优点缺点数值稳定性高,不易受误差影响手算困难,需要软件适合数值计算与工程应用概念理解较抽象
适用场景:
大型矩阵数值分析、数据科学领域(如数据降维、图像压缩)
4.3.6、如何使用计算机求解SVD
奇异值分解主要靠计算机完成,比如:
Python
import numpy as np
A = np.array([[1,0,0],[0,1,0],[0,0,0]])
U, S, Vt = np.linalg.svd(A)
print(S) # 奇异值
MATLAB
A = [1,0,0;0,1,0;0,0,0];
[U,S,V] = svd(A);
diag(S) % 奇异值
4.4、对三种方法的对比与建议
方法适用范围易学性准确性推荐指数行阶梯变换法所有矩阵⭐⭐⭐⭐⭐较好⭐⭐⭐⭐⭐行列式法小规模方阵⭐⭐⭐⭐一般⭐⭐⭐奇异值分解法所有矩阵(特别适合计算机)⭐⭐极高⭐⭐⭐⭐
五、矩阵秩的几何意义
矩阵的秩可以直观地理解为:
矩阵的列向量或行向量所能构成的空间的维数。
换句话说,就是这些向量占据了多少维度的空间。
秩为 1 的矩阵:所有向量在同一条直线上(1维空间)。秩为 2 的矩阵:向量分布在一个平面内(2维空间)。秩为 3 的矩阵:向量构成一个三维空间,以此类推。
假设我们有矩阵:
A
=
[
1
2
2
4
]
A=\begin{bmatrix} 1 & 2\\[6pt] 2 & 4 \end{bmatrix}
A=[1224]
可以发现第二列向量是第一列的两倍,两列向量在一条直线上,因此矩阵的秩为1。
再例如:
B
=
[
1
0
0
0
1
0
0
0
1
]
B=\begin{bmatrix} 1 & 0 & 0\\[6pt] 0 & 1 & 0\\[6pt] 0 & 0 & 1 \end{bmatrix}
B=
100010001
三个列向量分别指向三维空间的三个坐标轴,它们构成了完整的三维空间,因此矩阵的秩为3。
图11. 秩1的矩阵向量都在一条直线上,秩2的矩阵的向量能构成整个平面,秩3的矩阵的向量能构成完整三维空间。
在实际数据分析中,往往需要对大量数据进行『降维』,以便提炼出最重要的信息。例如:
你有1000个特征(维度)的数据,但其中大量特征都是相互重复的。通过矩阵秩判断,我们能够识别出哪些特征是多余的,进而大大减少计算复杂度,同时不损失重要信息。
例如,原本矩阵的秩为10,说明所有数据实际只分布在10维空间内,我们可以放心将数据由1000维降到10维,而不会丢失本质信息。
六、特殊矩阵的秩
6.1、 零矩阵
所有元素都是零的矩阵称为零矩阵,记为
O
O
O。
例如:
O
=
[
0
0
0
0
]
,
秩
(
O
)
=
0
O=\begin{bmatrix} 0 & 0\\ 0 & 0 \end{bmatrix},\quad 秩(O)=0
O=[0000],秩(O)=0 零矩阵没有任何有效信息,因此它的秩恒为 0。
6.2、 单位矩阵
对角线上元素为1,其他位置全为0的矩阵称为单位矩阵,记为
I
I
I。
例如:
I
3
=
[
1
0
0
0
1
0
0
0
1
]
,
秩
(
I
3
)
=
3
I_3=\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{bmatrix},\quad 秩(I_3)=3
I3=
100010001
,秩(I3)=3 单位矩阵的每个列向量都互相独立,因此n阶单位矩阵的秩始终是n。
6.3、 对角矩阵
只有主对角线上可能有非零元素,其他位置均为0的矩阵称为对角矩阵。
例如:
D
=
[
2
0
0
0
0
0
0
0
5
]
,
秩
(
D
)
=
2
D=\begin{bmatrix} 2 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 5 \end{bmatrix},\quad 秩(D)=2
D=
200000005
,秩(D)=2 对角矩阵的秩等于它对角线上非零元素的个数,本例中有两个非零元素,因此秩为2。
6.4、特殊矩阵秩的快速判断规律总结
特殊矩阵种类特点秩零矩阵所有元素为00单位矩阵主对角线为1,其他为0n对角矩阵仅主对角线可能有非零元素主对角线上非零元素的个数
七、矩阵秩的常用性质
矩阵秩的五个常用性质:
秩的上下限性质:
0
≤
R
(
A
)
≤
m
i
n
(
m
,
n
)
0 \leq R(A) \leq min(m,n)
0≤R(A)≤min(m,n)
也就是说,任意一个
m
×
n
m \times n
m×n 的矩阵的秩都不可能超过矩阵行数和列数的较小者。
矩阵转置秩不变:
R
(
A
)
=
R
(
A
T
)
R(A)=R(A^T)
R(A)=R(AT)
一个矩阵的秩和它的转置矩阵(即行列互换后的矩阵)秩是完全相同的。
矩阵乘以非零常数,秩不变:
R
(
k
A
)
=
R
(
A
)
,
(
k
≠
0
)
R(kA)=R(A), (k\ne 0)
R(kA)=R(A),(k=0)
一个矩阵的秩不会因为乘上一个非零常数而改变。
矩阵为零矩阵的充要条件:
R
(
A
)
=
0
⟺
A
=
O
R(A)=0 \iff A=O
R(A)=0⟺A=O
一个矩阵只有在所有元素均为0(零矩阵)时,它的秩才为0。
矩阵相加秩的性质:
R
(
A
+
B
)
≤
R
(
A
)
+
R
(
B
)
R(A+B)\leq R(A)+R(B)
R(A+B)≤R(A)+R(B)
两个矩阵相加后的秩不超过它们各自秩的和。