跳转至

四个基本子空间⚓︎

约 1885 个字 预计阅读时间 6 分钟

概要

  1. 基本认识
  2. 列空间、零空间、行空间、左零空间
  3. 子空间的维数与基

基本认识和纠正一个错误⚓︎

上一节课讲 R3R^3 空间的时候,我们曾经用 [112],[225],[338]\begin{bmatrix} 1 \\ 1 \\ 2 \end{bmatrix} , \begin{bmatrix} 2 \\ 2 \\ 5 \end{bmatrix} , \begin{bmatrix} 3 \\ 3\\ 8 \end{bmatrix} 表示一个基。但是如果对这三个向量进行处理,会发现它们并不是线性无关的。[123123258]\begin{bmatrix} 1 & 2 & 3 \\ 1 & 2 & 3 \\ 2 & 5 & 8 \end{bmatrix} 这个矩阵不是可逆的。

四个基本子空间⚓︎

这个部分是线性代数的核心内容。

  • 矩阵 AA 的列空间,记作 C(A)C(A), 就是矩阵 AA 的列向量的线性组合构成的;
  • 矩阵 AA 的零空间,记作 N(A)N(A),就是 Ax=0Ax = 0 的所有解 xx 的线性组合构成的线性空间;
  • 与列空间对应,矩阵 AA 的所有行向量的线性组合,构成了矩阵的行空间 (row space)。它们不一定就是基,但我们希望用类似列向量的方式对它进行处理,所以我们对矩阵 AA 进行转置,也就是 AA 的转置的列空间,写作 C(AT)C(A^T)
  • 同样地我们可以给出“左零空间”的计算方法,也就是 AA 的转置所对应的零空间, N(AT)N(A^T)

我们可以用如下的示意图反映它们之间的关系

 _________________                       __________
|                 |                     |          |
|    row space    |                     |  Column  |
|                 |                     |  space   |
|_________________|___________          |          |
                  |           |         |          |
                  |           |         |__________|__________
                  |   null    |                    |          |
                  |   space   |                    |          |
                  |           |                    |   left   |
                  |___________|                    |   Null   |
                                                   |   space  |
                                                   |          |
                                                   |__________|    

如果 A 是 m×nm \times n 矩阵,那么这些子空间分别在哪些空间中?

N(A)N(A) : Rn\mathcal{R}^n 空间的一个子空间; C(A)C(A)Rm\mathcal{R}^m 空间的一个子空间; C(AT)C(A^T)Rn\mathcal{R}^n 空间的一个子空间; N(AT)N(A^T) : Rm\mathcal{R}^m 空间的一个子空间;

对基本子空间的进一步理解⚓︎

首先我们从矩阵入手。当 AAn×nn \times n的可逆矩阵时,可逆意味着满秩,显然,列空间与行空间都是构成了 R3\mathcal{R}^3, 而且两个零空间只是包含0向量而已。

那么,我们怎么为这些子空间分别求一组基呢?如何确定它们各自的维数?

对于列空间

dim(C(A))=r\text{dim}(C(A)) = r,列空间的维数就是矩阵的秩,矩阵的主列构成了C(A) 的一组基;

对于行空间

dim(C(AT))=r\text{dim}(C(A^T)) = r ,行空间的维数也是矩阵的秩,主元所在的行向量,构成了 C(AT)C(A^T) 的一组基;

矩阵的列空间和行空间的维数是相同的。

对上述情况的解释

考虑矩阵 A=[123111211231]A = \begin{bmatrix} \textcolor{red}{1} & 2 & 3 & 1 \\ 1 & \textcolor{red}{1} & 2 & 1 \\ 1 & 2 &3 & 1 \end{bmatrix},主元已经标注在图中,所以,其行空间的基是:[1231],[1121]\begin{bmatrix} 1 & 2 & 3 & 1 \end{bmatrix} , \begin{bmatrix} 1 & 1 & 2 & 1 \end{bmatrix},列空间的基是 [111],[212]\begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}, \begin{bmatrix} 2 \\ 1 \\ 2 \end{bmatrix}.

AAn×nn\times n的矩阵,秩为 r<nr < n 时,列空间与行空间都是 RnR^n 空间中的一个 RrR^r 的子空间,但是两者不是一个空间。比如 R3\mathcal{R}^3 空间里,r=2r=2, 表示列空间与行空间分别是2个平面,这两个平面可能差别很大。

我们再看这个矩阵的行简化梯形矩阵:R=[101101100000]R = \begin{bmatrix} 1 & 0 & 1 & 1 \\ 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix},很明显 R 和 A的列空间是不同的。但是它们具有相同的行空间。因为不管 AA 的行向量怎么线性组合,总能通过 RR 的行向量线性组合表示出来,换句话说,只需要做从 AARR 矩阵的逆运算,就可以直接从 RR 变成 AA。一言以蔽之就是: 行变换对行空间没有影响,但是列空间发生了变化。

我们同样可以得出结论,矩阵 A 行空间的基,就是 R 的前 r 行的向量。(first r rows of R)

对于零空间

dim(N(A))=nr\text{dim}(N(A)) = n - r,也就是自由变量的数量。可以想到,如果列不满秩,我们对自由变量任意取值,总能找到特殊解,满足Ax=0Ax = 0

零空间的基是特殊解们

对于左零空间

dim(N(AT))=mr\text{dim}(N(A^T)) = m - r,推导过程类似:因为是对原来矩阵做了转置,所以维数等于行数减去秩。

解答疑问:为什么是“左零空间”这个叫法:

原来应该写作A^Ty = 0,y 在 N(A^T) 中。现在我们希望把 y 放到左边来,用 A 来代替 ATA^T(回忆:矩阵左乘向量表示行变换),有 yTA=0y^TA = 0,y^T 左乘 A 得到 0,原来的零空间是 Ax=0Ax = 0, 是A 右乘一个向量,现在乘到左边来了。

如何求左零空间的基

在之前从A到R的简化过程中,也包含了左零空间的一些信息。这不是显而易见的,但的确如此。

我们利用Gauss-Jordan Elimination,进行计算。回忆从 A 到 R 的过程。

rref[Am×nIm×m][Rm×nEm×m]\text{rref} \begin{bmatrix} A_{m \times n} & I_{m \times m} \end{bmatrix} \rightarrow\begin{bmatrix} R_{m \times n} & E_{m \times m} \end{bmatrix},在这里如果把中间所有的行变换累积起来用 E 表示,我们有E[Am×nIm×m]=[Rm×nEm×m]E \begin{bmatrix} A_{m \times n} & I_{m \times m} \end{bmatrix} = \begin{bmatrix} R_{m \times n} & E_{m \times m} \end{bmatrix}EA=REA = R。在之前讲逆矩阵求法的时候,我们知道一个可逆矩阵的rref=I\text{rref} = I,此时边上的Em×mE_{m \times m} 就是最终的 A1A^{-1}。现在我们换一个视角,A不是可逆的情况下,EA=RREA = R,R 下面有一些0行,而能够使得这些行为0的行变换,其实早就已经存储在了EE矩阵中。

举个例子:

[120110101][123111211231]=[101101100000]\begin{bmatrix} -1 & 2 & 0 \\ 1& -1&0 \\ \color{red}{-1} & \color{red}{0} & \color{red}{1} \end{bmatrix} \begin{bmatrix} 1 & 2 & 3 & 1 \\ 1 & 1 & 2 &1 \\ 1 & 2 & 3 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 0 & 1 & 1 \\ 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix}

这里我们想知道是什么变换导致了 RR 最后一行的零向量,这恰恰对应了,EE 矩阵中 rr 行以后的所有行向量,(row1×1+row2×0+row3×1=[000]\text{row1} \times -1 + \text{row2} \times 0 + \text{row3} \times 1 = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix},加红的这一行,也就是左零空间的基。


所以,结论如下:

  1. 左零空间的维数是 mrm - r,m是矩阵行数,r是矩阵的秩;
  2. 通过 Gauss-Jordan Elimination,我们不仅可以直接求得左零空间的基,还可以求得左零空间本身;

对零空间、左零空间的一个小总结:

  1. 求零空间,实际上是在找一个产生零的列向量的线性组合;
  2. 求左零空间,实际上是在找一个产生零的行向量的线性组合;

一个延伸⚓︎

我们之前的讨论集中在向量空间上;现在我们把视野拓宽到矩阵维度上,把矩阵看作一个向量(遵守向量的运算法则),我们通过一个矩阵,可以想到哪些它的子空间:

  1. 所有上三角矩阵组成的子空间;
  2. 所有对称矩阵组成的子空间;
  3. 对角矩阵的子空间;

对于第三个,一个 m×mm \times m 的对角矩阵的子空间,其维数为3(可以找到三个基:$\begin{bmatrix} 1 & 0 & 0 \ 0 & 0 & 0 \ 0 & 0 & 0 \end{bmatrix}, \begin{bmatrix} 0 & 0 & 0 \ 0 & 1 & 0 \ 0 & 0 & 0 \end{bmatrix}, \begin{bmatrix} 0 & 0 & 0 \ 0 & 0 & 0 \ 0 & 0 & 1 \end{bmatrix} $

这里主要讲的就是,把 RnR^n 的概念拓展到 Rm×nR^{m \times n}