文章目录
一、矩阵是什么?
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。
例: 假设我们有一个学生期末考试成绩表:
学生姓名 | 数学 | 英语 | 物理 |
---|---|---|---|
小明 | 88 | 92 | 85 |
小红 | 79 | 85 | 90 |
小刚 | 91 | 87 | 88 |
在这个表格中:
- 每一行代表了一个学生。
- 每一列代表了一门学科。
- 每个元素(比如『小明』的数学成绩『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、特殊矩阵秩的快速判断规律总结
特殊矩阵种类 | 特点 | 秩 |
---|---|---|
零矩阵 | 所有元素为0 | 0 |
单位矩阵 | 主对角线为1,其他为0 | n |
对角矩阵 | 仅主对角线可能有非零元素 | 主对角线上非零元素的个数 |
七、矩阵秩的常用性质
矩阵秩的五个常用性质:
- 秩的上下限性质:
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)
两个矩阵相加后的秩不超过它们各自秩的和。