深入浅出矩阵的秩

一、矩阵是什么?

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 ABC )来表示矩阵,比如:
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} 22×1231×13

消去后:
[ 1 2 3 0 0 1 0 − 1 − 2 ] \begin{bmatrix} 1 & 2 & 3\\[6pt] 0 & 0 & 1\\[6pt] 0 & -1 & -2 \end{bmatrix} 100201312

  • 第二步: 交换第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} 100210321

  • 第三步: 此时矩阵已呈阶梯型,无需再消元,非零行数为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×14×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×10×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= a11a21an1a12a22an2a1na2nann
它的行列式记作:
∣ 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= a11a21an1a12a22an2a1na2nann

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

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=adbc
例: 计算以下二阶行列式的值:
∣ 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×43×1=83=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+cdhcegbdiafh
也可记忆为:

  • 主对角线乘积之和(向右下方对角线): 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=4039=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=1A11+2A12+3A13+4A14
逐个计算:

  • 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×10×0×3+1×0×41×1×31×0×40×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+08=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×42×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
对角矩阵仅主对角线可能有非零元素主对角线上非零元素的个数

七、矩阵秩的常用性质

矩阵秩的五个常用性质:

  1. 秩的上下限性质:

0 ≤ R ( A ) ≤ m i n ( m , n ) 0 \leq R(A) \leq min(m,n) 0R(A)min(m,n)

也就是说,任意一个 m × n m \times n m×n 的矩阵的秩都不可能超过矩阵行数和列数的较小者。

  1. 矩阵转置秩不变:

R ( A ) = R ( A T ) R(A)=R(A^T) R(A)=R(AT)

一个矩阵的秩和它的转置矩阵(即行列互换后的矩阵)秩是完全相同的。

  1. 矩阵乘以非零常数,秩不变:

R ( k A ) = R ( A ) , ( k ≠ 0 ) R(kA)=R(A), (k\ne 0) R(kA)=R(A),(k=0)

一个矩阵的秩不会因为乘上一个非零常数而改变。

  1. 矩阵为零矩阵的充要条件:

R ( A ) = 0    ⟺    A = O R(A)=0 \iff A=O R(A)=0A=O

一个矩阵只有在所有元素均为0(零矩阵)时,它的秩才为0。

  1. 矩阵相加秩的性质:

R ( A + B ) ≤ R ( A ) + R ( B ) R(A+B)\leq R(A)+R(B) R(A+B)R(A)+R(B)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xy_optics

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值