深入浅出矩阵的秩

深入浅出矩阵的秩

文章目录

一、矩阵是什么?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}

[14​25​36​] 这个矩阵就有两行三列,我们称它为“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=[a11​a21​​a12​a22​​a13​a23​​] 这里的

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}

​887991​928587​859088​

​ 这个矩阵:

有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}

[11​22​] 这个矩阵显然有一行是多余的,因此它的秩为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=

​123​246​369​

​ 可以发现第二行是第一行的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=

​100​210​341​

​ 这里面每一行都是独立的,没有一行可以由其他行通过线性组合得到,因此这个矩阵的秩为 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}

[12​36​]

(2)

[

1

0

1

0

1

0

2

1

2

]

\begin{bmatrix} 1 & 0 & 1\\ 0 & 1 & 0\\ 2 & 1 & 2 \end{bmatrix}

​102​011​102​

参考答案:(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=

​100​210​341​

上面的矩阵

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=

​121​241​371​

​ 我们用高斯消元法详细步骤如下:

第一步: 用第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}

​100​20−1​31−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}

​100​2−10​3−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=

​141​314​231​412​

​ 我们选择第一、第二行和第二、第四列:

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​=

​31​41​

​=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=

​100​210​301​010​

矩阵

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

​100​210​301​

​=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=

​a11​a21​⋮an1​​a12​a22​⋮an2​​⋯⋯⋱⋯​a1n​a2n​⋮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∣=

​a11​a21​⋮an1​​a12​a22​⋮an2​​⋯⋯⋱⋯​a1n​a2n​⋮ann​​

行列式用『| |』表示,区别于矩阵的方括号『[ ]』。行列式的结果是一个具体的数值,而非矩阵。

4.2.4.2、二阶行列式的计算方法(最简单)

对于二阶矩阵:

A

=

[

a

b

c

d

]

A= \begin{bmatrix} a & b \\[6pt] c & d \end{bmatrix}

A=[ac​bd​] 则它的行列式值:

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

​21​34​

​=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=

​adg​beh​cfi​

​ 则它的行列式:

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}

​105​216​340​

​ 根据公式:

主对角线方向:

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∣=ai1​Ai1​+ai2​Ai2​+⋯+ain​Ain​

按第

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∣=a1j​A1j​+a2j​A2j​+⋯+anj​Anj​

其中:

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∣=

​1002​2103​3014​4101​

​ 选择按第一行展开(你也可选择其他任意行列):

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

​103​014​101​

​=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=[13​24​],∣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×n​Vn×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=

​100​010​000​

​ (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=

​100​010​001​

​,Σ=

​100​010​000​

​,VT=

​100​010​001​

​ (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=[12​24​]

可以发现第二列向量是第一列的两倍,两列向量在一条直线上,因此矩阵的秩为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=

​100​010​001​

三个列向量分别指向三维空间的三个坐标轴,它们构成了完整的三维空间,因此矩阵的秩为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=[00​00​],秩(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​=

​100​010​001​

​,秩(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=

​200​000​005​

​,秩(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)

两个矩阵相加后的秩不超过它们各自秩的和。

你可能也喜欢

菱形切片
盒子365靠谱吗

菱形切片

09-08 7987
《梦幻西游手游》召唤灵守护系统全解,满级满品伤害提升可达120点!
118种化学元素读音及中英文名称(包括最新公布的四种元素)