© 2015-2020 Jacob Ström, Kalle Åström, and Tomas Akenine-Möller

正在加载和构建章节...

第8章:秩





本章介绍了一个称为的概念,它是矩阵的一个属性。 实际上,它揭示了矩阵的若干方面。这里的一些示例可能仅对方阵进行说明,但本章的所有内容也适用于矩形矩阵,例如大小为 $m \times n$ 的矩阵。 我们从一个应用示例开始,该示例涉及所谓的声音结构推断。

示例8.1: 声音结构推断
有许多应用数学的示例涉及到的概念。一个这样的例子是所谓的声音结构推断问题。在该示例中,声音在多个静止但未知位置的麦克风处被记录下来。未知的声源在未知的位置和时间发出声音。仅使用麦克风测得的声信号,就可以计算出 (i) 麦克风的位置,(ii) 声源的移动轨迹,以及 (iii) 声源发声的时间。在这里, 起着重要作用。
图8.1: 测量情况的示意图。声源(左手持)在移动,而八个麦克风保持静止。
图8.1: 测量情况的示意图。声源(左手持)在移动,而八个麦克风保持静止。
图8.1 显示了测量情况。八个麦克风在一个声源在房间内移动时捕捉声音。 这八个声音文件用于计算麦克风位置和声源运动。 另请参阅以下Video 剪辑。 计算出的3D声源路径和麦克风位置也在交互式插图 8.2中可视化。
交互说明 8.2: 蓝色圆点表示八个麦克风的位置。但这些位置以及声源的移动轨迹对我们而言是未知的。点击/按下“前进”以查看声源路径。
交互说明 8.2: 红色的声源路径与蓝色的麦克风位置是从 30 秒的录音中估算得到的。点击左上角的旋转图标可旋转点云,或使用右键拖拽以从任意角度观察模型。
我们首先解释矩阵的 零空间列空间行空间。正如下文所示,这三类空间本身都是线性向量空间。它们是线性子空间的例子,下一节将对此作进一步解释。
8.1 线性子空间


一个向量空间的线性子空间是该空间的一个子集,它本身也是一个线性空间。 要证明一个线性空间的子集是一个线性子空间,只需检查三件事。 这由以下定理捕捉。

定理 8.1:
设$V$是标量$F$上的一个线性向量空间。 (这里我们通常只使用$F=\R $或$F=\mathbb{C}$)。 子集$W \subset V$是一个线性向量空间,即子空间,当且仅当$W$满足以下三个条件:
  1. 零向量$\vc{0} \in W$。
  2. 如果$\vc{v}_1 \in W$且$\vc{v}_2 \in W$,则$\vc{v}_1+\vc{v}_2 \in W$。
  3. 如果$\vc{v} \in W$且$\lambda \in F$,则$\lambda \vc{v}\in W$。

首先证明:若三条条件成立,则 $W$ 为向量空间。由条件 1 可知 $W$ 非空。条件 2 与条件 3 保证了向量加法和数乘的结果仍属于该子集。由于 $W$ 的元素已经是向量空间 $V$ 的元素,因此 定理 2.1 中的其他运算律同样成立。

其次证明:若子集 $W$ 本身是向量空间,则三条条件必然成立。因为 $W$ 为向量空间,性质 2 和 3 自动满足;又因 $W$ 非空,存在某 $\vc{w}\in W$,从而可构造零向量 $\vc{0}=0\vc{w}\in W$,因此性质 1 成立。

$\square$


示例 8.2:
设 $\mx{A}$ 为 $m\times n$ 矩阵。令 $V$ 为线性向量空间 $\R^n$,令 $W\subset V$ 为满足 $\mx{A}\vc{v}=\vc{0}$ 的向量集合。则 $W$ 是一个线性向量空间,理由如下:
  1. 零向量 $\vc{0} \in W$,因为 $\mx{A}\vc{0}=\vc{0}$。
  2. 若 $\vc{v}_1,\vc{v}_2\in W$,则 $\mx{A}(\vc{v}_1+\vc{v}_2)=\mx{A}\vc{v}_1+\mx{A}\vc{v}_2=\vc{0}+\vc{0}$,因此 $\vc{v}_1+\vc{v}_2\in W$。
  3. 若 $\vc{v}\in W$ 且 $\lambda\in F$,则 $\mx{A}(\lambda\vc{v})=\lambda\mx{A}\vc{v}=\lambda\vc{0}=\vc{0}$,因此 $\lambda\vc{v}\in W$。
这意味着齐次方程组的解集合构成一个线性空间。

示例 8.3:
设 $\mx{A}$ 为 $m\times n$ 矩阵。令 $V$ 为线性向量空间 $\R^m$,令 $W\subset V$ 为所有可以表示为 $\vc{v}=\mx{A}\vc{u}$(某 $\vc{u}\in\R^n$)的向量集合。则 $W$ 是一个线性向量空间,理由如下:
  1. 零向量 $\vc{0}\in W$,因为 $\vc{0}\in\R^m$ 可由 $\vc{0}\in\R^n$ 生成,且 $\vc{0}=\mx{A}\vc{0}$。
  2. 若 $\vc{v}_1,\vc{v}_2\in W$,则存在 $\vc{u}_1,\vc{u}_2\in\R^n$ 使 $\vc{v}_1=\mx{A}\vc{u}_1$ 与 $\vc{v}_2=\mx{A}\vc{u}_2$,因此 $\vc{v}_1+\vc{v}_2=\mx{A}(\vc{u}_1+\vc{u}_2)\in W$。
  3. 若 $\vc{v}=\mx{A}\vc{u}\in W$ 且 $\lambda\in F$,则 $\lambda\vc{v}=\mx{A}(\lambda\vc{u})\in W$。
这意味着一组向量的线性组合所构成的集合是一个线性空间。
8.2 零空间与零维数


正如我们在 第 5.5 节 中所见,形如 $\mx{A}\vc{x}=\vc{0}$ 的方程组称为齐次系统。下面我们将展示这类系统的解如何揭示矩阵 $\mx{A}$ 的若干有用性质。首先从一个例子出发。 假设有如下矩阵
\begin{equation} \mx{A} = \begin{pmatrix} 2 & \hid{-}5 & \hid{-}3 \\ 4 & \hid{-}2 & \hid{-}1 \\ 2 & -3 & -2 \end{pmatrix}, \end{equation} (8.1)
并且我们要求解 $\mx{A}\vc{x}=\vc{0}$,其中 $\vc{x}=(x_1,x_2,x_3)$ 是一个 列向量。 这就是 方程 (5.34) 中的相同例子,即:
\begin{equation} \begin{cases} \begin{array}{rrrl} 2 x_1 + 5 & \bs x_2 + 3 & \bs x_3 = 0, \\ 4 x_1 + 2 & \bs x_2 +\hid{3}& \bs x_3 = 0, \\ 2 x_1 - 3 & \bs x_2 - 2 & \bs x_3 = 0, \\ \end{array} \end{cases} \end{equation} (8.2)
经过若干步的 高斯消元,我们得到
\begin{equation} \begin{cases} \begin{array}{rrrl} 2 x_1 + 5 & \bs x_2 + 3 & \bs x_3 = 0, \\ 8 & \bs x_2 + 5 & \bs x_3 = 0, \\ & & \bs 0 = 0. \\ \end{array} \end{cases} \end{equation} (8.3)
接下来令 $x_3=t$,则 $x_2=-\frac{5}{8}t$,最终得 $x_1=\frac{1}{16}t$,即
\begin{equation} \vc{x}(t) = \begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix} = \begin{pmatrix} \frac{1}{16}t \\ -\frac{5}{8}t \\ t \end{pmatrix} \end{equation} (8.4)
如上所示,该解是一条仅由一个参数 $t$ 决定的直线。有时用 $\vc{x}_\mathrm{h}$ 来表示它,以表明这是齐次系统 $\mx{A}\vc{x}=\vc{0}$ 的解。整个解集称为矩阵 $\mx{A}$ 的零空间,在本例中零空间的维数为 1,因为解只依赖于一个参数 $t$。我们也把向量 $(1/16,-5/8,1)$ 称为零向量。接下来将给出形式化的定义。

定义 8.1: 零空间
设 $\mx{A}$ 为 $m\times n$ 矩阵(即有 $m$ 行 $n$ 列)。矩阵方程 $\mx{A}\vc{x}=\vc{0}$ 的所有解所组成的集合称为 $\mx{A}$ 的零空间
按定义,零空间是 $\R^n$ 的一个子空间,因此 $\nullity(\mx{A})\le n$。它是一个线性子空间(参见 示例 8.2)。该子空间的维数很重要,下面给出相应定义。

定义 8.2: 零维数
零空间的维数记作 $\nullity(\mx{A})$。
由于零空间是 $\R^n$ 的子空间,我们有 $\nullity(\mx{A})\le n$。那么零空间比原来少了多少维呢?这可以从方程组 $\mx{A}\vc{x}=\vc{0}$ 中的约束数量来大致理解,但需注意并非简单地用行数 $m$ 去减维就能得到结论:存在 $m$ 条方程并不必然意味着 $\nullity(\mx{A})=n-m$。矩阵中实际有效约束的数量正是由矩阵的秩(rank)来刻画的。我们稍后将证明 $\nullity(\mx{A})=n-r$,也就是说维数被降了 $r$(即 $\mx{A}$ 的秩)。

定义 8.3: 零向量
设 $\vc{p}_1,\ldots,\vc{p}_k$ 为零空间的一组基向量。 任意解 $\vc{x}$ 都可写成 $\vc{x}(t_1,\dots,t_k)=t_1\vc{p}_1+\dots+t_k\vc{p}_k$,其中 $k$ 为零空间的维数。基向量 $\vc{p}_i$ 有时被称为“零向量”,但有时零空间中的任意向量也可被称为零向量。
通过高斯消元可以得到零空间的一个基,从而确定零空间的维数。解中独立参数的个数决定了零空间的维数。

示例 8.4: 零空间
这里我们再次考察形如 $\mx{A}\vc{x}=\vc{0}$ 的方程组的解。 下面的方程组
\begin{equation} \begin{cases} \begin{array}{rrrrrl} 2 x_1\hid{+} & \bs \hid{x_2} + \hid{1} & \bs x_3 - 2 & \bs x_4 +\hid{1} & \bs x_5 = 0, \\ 2 x_1+ & \bs x_2 + 5 & \bs x_3 \hid{+}\hid{2} &\bs \hid{x_4} + 2 & \bs x_5 = 0, \\ & \bs x_2+ 4 & \bs x_3 + 2 & \bs x_4 +\hid{1} & \bs x_5 = 0, \\ & & \hid{1} & \bs x_4 + 2 & \bs x_5 = 0, \\ \end{array} \end{cases} \end{equation} (8.5)
因此可重写为
\begin{equation} \underbrace{ \left( \begin{array}{rrrrr} 2 & 0 & 1 & -2 & 1 \\ 2 & 1 & 5 & 0 & 2 \\ 0 & 1 & 4 & 2 & 1 \\ 0 & 0 & 0 & 1 & 2 \\ \end{array} \right) }_{\mx{A}} \underbrace{ \begin{pmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ x_5 \\ \end{pmatrix} }_{\vc{x}} = \underbrace{ \begin{pmatrix} 0 \\ 0 \\ 0 \\ 0 \\ \end{pmatrix} }_{\vc{0}}. \end{equation} (8.6)
接下来我们将使用 例 6.11 中的简洁符号,并通过高斯消元来求解 $\mx{A}\vc{x}=\vc{0}$,
\begin{equation} \left( \begin{array}{rrrrr|r} 2 & 0 & 1 & -2 & 1 & 0\\ 2 & 1 & 5 & 0 & 2 & 0\\ 0 & 1 & 4 & 2 & 1 & 0\\ 0 & 0 & 0 & 1 & 2 & 0\\ \end{array} \right) \Leftrightarrow \left( \begin{array}{rrrrr|r} 2 & 0 & 1 & -2 & 1 & 0\\ 0 & 1 & 4 & 2 & 1 & 0\\ 0 & 1 & 4 & 2 & 1 & 0\\ 0 & 0 & 0 & 1 & 2 & 0\\ \end{array} \right), \end{equation} (8.7)
上一步从第 2 行减去了第 1 行。由此可见,第 2 行和第 3 行现在相同,因此在它们相减时会得到一行全零,即:
\begin{equation} \left( \begin{array}{rrrrr|r} 2 & 0 & 1 & -2 & 1 & 0\\ 0 & 1 & 4 & 2 & 1 & 0\\ 0 & 0 & 0 & 1 & 2 & 0\\ 0 & 0 & 0 & 0 & 0 & 0\\ \end{array} \right). \end{equation} (8.8)
如我们在 第 5.5 节 所述,处理此类情形的做法是将部分未知数设为自由参数,例如令 $x_5=t$。由第 3 行得 $x_4+2x_5=0$,即 $x_4=-2t$。对于第 2 行,我们再引入一个自由参数 $x_3=s$,从而得到 $x_2=-4s+3t$。最后由第 1 行可得 $x_1=-\frac{1}{2}s-\frac{5}{2}t$。因此解为
\begin{equation} \vc{x}_\mathrm{h} = s \underbrace{ \left( \begin{array}{r} -\frac{1}{2} \\ -4 \\ 1 \\ 0 \\ 0 \\ \end{array} \right) }_{\vc{m}} + t \underbrace{ \left( \begin{array}{r} -\frac{5}{2} \\ 3 \\ 0 \\ -2 \\ 1 \\ \end{array} \right) }_{\vc{n}} =s\vc{m} + t\vc{n}. \end{equation} (8.9)
根据 定义 8.1,上面的解就是矩阵 $\mx{A}$ 的零空间。由于解依赖于两个自由参数 $s$ 和 $t$,因此零空间的维数为 2,即 $\nullity(\mx{A})=2$。进一步地,我们也说向量 $\vc{m}$ 和 $\vc{n}$ 跨越该零空间,也就是说它们是零空间的一组基向量。
8.3 列空间、行空间与秩


对于一个 $m\times n$ 矩阵 $\mx{A}$,回顾 定义 6.2 中对行 $\vc{a}_{i,}^\T$($i=1,\dots,m$)与列 $\vc{a}_{,j}$ 的访问方式,即
\begin{equation} \mx{A} = \bigl(\vc{a}_{,1} \,\,\, \vc{a}_{,2} \,\,\,\dots\,\,\, \vc{a}_{,n}\bigr) = \left( \begin{array}{c} \vc{a}_{1,}^\T\\ \vc{a}_{2,}^\T\\ \vdots \\ \vc{a}_{m,}^\T\\ \end{array} \right). \end{equation} (8.10)
另外,重申本书中列向量与行向量的记法:默认情况下所有向量都视为列向量。若需要使用一个行向量,可将列向量 $\vc{x}$ 转置得到行向量 $\vc{x}^\T$。 例如,$(x_1,x_2,x_3)$(用逗号分隔)也表示一个列向量,而 $(x_1 \spc x_2 \spc x_3)$ 则表示一个行向量,详见 定义 2.5

现在我们已经知道了零空间,可以引入两个相关概念:列空间行空间

定义 8.4: 列空间
设 $\mx{A}= \left(\vc{a}_{,1} \vc{a}_{,2} \dots \vc{a}_{,n}\right)$ 为一个 $m\times n$ 矩阵。 矩阵 $\mx{A}$ 的列空间 定义为所有由矩阵的各列向量 $\vc{a}_{,i}$ 生成的 线性组合 的集合。
下面我们注意到,矩阵与向量相乘 $\mx{A}\vc{x}$ 可以表示为
\begin{equation} \mx{A}\vc{x}= \left(\vc{a}_{,1}\,\,\, \vc{a}_{,2}\,\,\, \dots\,\,\, \vc{a}_{,n}\right)\vc{x} = x_1\vc{a}_{,1} + x_2\vc{a}_{,2} + \dots +x_n\vc{a}_{,n}, \end{equation} (8.11)
也就是说,它可以看作是一个 线性组合(参见 定义 5.1) 是矩阵 $\mx{A}$ 的 列向量。 也就是说,列空间由矩阵列向量的线性组合生成(参见 定义 5.1)。 换言之,列空间包含所有可以由取第一个列向量乘以某一常数、再加上第二个列向量乘以另一常数、以此类推所生成的向量。 注意,按定义列空间是 $\\R^m$ 的一个子空间,因为矩阵 $\mx{A}$ 的所有列向量都具有 $m$ 个分量。

定义 8.5: 行空间
设 $\mx{A}= \left(\begin{array}{c} \vc{a}_{1,}^\T\\ \vc{a}_{2,}^\T\\ \vdots \\\vc{a}_{m,}^T \end{array}\right)$ 为一个 $m\times n$ 矩阵。 矩阵 $\mx{A}$ 的行空间 定义为所有由行向量 $\vc{a}_{i,}^\T$ 的线性组合构成的集合。
列空间 类似,我们也可以将其写成向量-矩阵相乘的形式,不过这次使用 a 行向量 $\vc{x}^\T$,它有 $m$ 个分量并从右侧与矩阵相乘,即:
\begin{equation} \vc{x}^\T\mx{A}= \vc{x}^\T \left(\begin{array}{c} \vc{a}_{1,}^\T\\ \vc{a}_{2,}^\T\\ \vdots \\\vc{a}_{m,}^T \end{array}\right) = \left(\begin{array}{c} x_1\ \ x_2\ \ \dots\ \ x_m \end{array}\right) \left(\begin{array}{c} \vc{a}_{1,}^\T\\ \vc{a}_{2,}^\T\\ \vdots \\\vc{a}_{m,}^T \end{array}\right) = x_1\vc{a}_{1,}^\T + x_2 \vc{a}_{2,}^\T + \dots + x_m \vc{a}_{m,}^\T. \end{equation} (8.12)
因此,这也是由行向量的线性组合所生成的集合(参见 定义 5.1)。不过这次所用的是矩阵 $\mx{A}$ 的行向量。 换言之,行空间包含所有可以由取第一个行向量乘以某一常数、再加上第二个行向量乘以另一常数、以此类推所生成的向量。 注意,按定义行空间是 $\\R^n$ 的一个子空间,因为矩阵 $\mx{A}$ 的所有行向量都具有 $n$ 个分量。

例 8.5 列空间(一)
本例延续例 8.4中的矩阵。回想我们已将方程组变换为
\begin{equation} \left( \begin{array}{rrrrr|r} 2 & 0 & 1 & -2 & 1 & 0\\ 0 & 1 & 4 & 2 & 1 & 0\\ 0 & 0 & 0 & 1 & 2 & 0\\ 0 & 0 & 0 & 0 & 0 & 0\\ \end{array} \right). \end{equation} (8.13)
在上一例中我们已计算出该例的零空间,此处展示如何得到矩阵的列空间。 实际上,经过高斯消元得到的行阶梯形矩阵中,每一非零行的首个非零元所在的列对应的列向量,就是列空间的一组基向量。因此可以直接从上式矩阵中取出这些列向量,得到以下向量:
\begin{align} \begin{pmatrix} 2 \\ 0 \\ 0 \\ 0 \end{pmatrix} , \ \ \ \ \begin{pmatrix} 0 \\ 1 \\ 0 \\ 0 \end{pmatrix} , \ \ \ \ \mathrm{and}\ \ \ \ \left( \begin{array}{r} -2 \\ 2 \\ 1 \\ 0 \end{array} \right). \end{align} (8.14)
由于列空间有三个基向量,因此 $\mx{A}$ 的列空间维数为 3。该方法为何可行将在本章后文中解释。

例 8.6 列空间(二)
\begin{equation} \mx{A} = \left(\vc{a}_{,1}\,\,\, \vc{a}_{,2}\,\,\, \vc{a}_{,3}\right)= \left( \begin{array}{rrr} 1 & \hid{-}4 & -10 \\ 2 & \hid{-}1 & 1\\ 3 & -3 & 15 \end{array} \right). \end{equation} (8.15)
可验证 $\vc{a}_{,3} = 2\vc{a}_{,1}-3\vc{a}_{,2}$,因此该矩阵的列空间至多由两个向量的线性组合生成。 这意味着若 $\vc{a}_{,1}$ 与 $\vc{a}_{,2}$ 共线,则列空间只依赖于一个向量;否则,列空间依赖于两个向量。举例来说,计算可得 $\vc{a}_{,1}\cdot\vc{a}_{,2}=1\cdot(-4)+2\cdot(-1)+3\cdot(-3)=-3$(参见 定义 3.1),由此可以判断向量并不共线,故列空间由两个向量张成。 例如,列空间可以表示为
\begin{equation} s \begin{pmatrix} 1\\ 2\\ 3 \end{pmatrix} +t \left( \begin{array}{r} 4\\ 1\\ -3 \end{array} \right), \end{equation} (8.16)
where $s$ and $t\in \R$。 也就是说,列空间 可以由 $\vc{a}_{,1}$ 与 $\vc{a}_{,2}$ 的线性组合生成。 因此,我们可以断言 $\rank(\mx{A})=2$,因为列空间由两个向量的线性组合生成。 几何上,这表明 列空间 构成一个平面(参见 定义 3.8),这也可从 方程 (8.16) 看出。

定义 8.6: 行秩与列秩
设 $\mx{A}$ 为任意矩阵。矩阵 $\mx{A}$ 的行秩,记为 $\rowrank(\mx{A})$,定义为 $\mx{A}$ 中线性无关的行向量 的最大数量。类似地,列秩,记为 $\colrank(\mx{A})$,定义为矩阵 $\mx{A}$ 中线性无关的列向量 的最大数量。
接下来我们将逐步介绍一些步骤,最终可以方便地得到矩阵的列(或行)空间中的列向量/行向量。 下面给出第一个引导性的定理。

定理 8.2:
对于任一 $m\times n$ 矩阵 $\mx{A}$,高斯消元的任一基本操作(参见 定理 5.2)在应用后不会改变矩阵的行空间

矩阵 $\mx{A}$ 的行记作 $\vc{a}_{i,}^{\T}$,其中 $i\in\{1,\dots,m\}$。在本证明中,我们用下列符号表示 定理 5.2 中的三种变换:
  1. $(i)$:$\vc{a}_{i,}^{\T} \leftrightarrow \vc{a}_{j,}^{\T}$,表示交换两行的顺序;
  2. $(ii)$:$\vc{a}_{i,}^{\T} \rightarrow k\vc{a}_{i,}^{\T}$,表示将第 $i$ 行乘以非零常数 $k$;
  3. $(iii)$:$\vc{a}_{i,}^{\T} \rightarrow \vc{a}_{i,}^{\T} + \vc{a}_{j,}^{\T}$,表示将第 $j$ 行加到第 $i$ 行上。
(i):显然,交换两行仅改变行的顺序,因此行空间保持不变。
(ii):对于缩放某一行的操作,变换前后矩阵仅在第 $i$ 行不同。回想式 (8.12) 表示行空间为若干行向量的线性组合,
\begin{equation} \underbrace{ k_1 \vc{a}_{1,}^{\T} + \dots + k_i \vc{a}_{i,}^{\T} + \dots + k_m \vc{a}_{m,}^{\T} }_{\mathrm{row\ space}}, \end{equation} (8.17)
因此可重写为
\begin{gather} k_1 \vc{a}_{1,}^{\T} + \dots + k_i \vc{a}_{i,}^{\T} + \dots + k_m \vc{a}_{m,}^{\T}\\ \Longleftrightarrow \\ k_1 \vc{a}_{1,}^{\T} + \dots + \left(\frac{k_i}{k}\right) \left( k \vc{a}_{i,}^{\T}\right) + \dots + k_m \vc{a}_{m,}^{\T}. \end{gather} (8.18)
由于我们可以把 $k \vc{a}_{i,}^{\T}$ 视为一个“新”的 行向量,且将 $k_i/k$ 看作该新行向量前的任意常数, 因此可以看出,凡是在 式 (8.18) 的第一行中能够表示的量,亦可在该式的最后一行中表示,反之亦然。 因此第二条基本变换保持了矩阵的 行空间 不变。
$(iii)$:对于第三条规则 $\vc{a}_{i,}^{\T} \rightarrow \vc{a}_{i,}^{\T} + \vc{a}_{j,}^{\T}$,我们将 等式 (8.17) 重写为
\begin{gather} k_1 \vc{a}_{1,}^{\T} + \dots + k_i \vc{a}_{i,}^{\T} + \dots + k_j \vc{a}_{j,}^{\T} + \dots + k_m \vc{a}_{m,}^{\T}\\ \Longleftrightarrow \\ k_1 \vc{a}_{1,}^{\T} + \dots + k_i (\vc{a}_{i,}^{\T} + \vc{a}_{j,}^{\T}) + \dots + (k_j-k_i) \vc{a}_{j,}^{\T} + \dots + k_m \vc{a}_{m,}^{\T}. \end{gather} (8.19)
此处 $\vc{a}_{i,}^{\T}+\vc{a}_{j,}^{\T}$ 是更新后的行向量,并且如上所示,作用在 $\vc{a}_{j,}^{\T}$ 前的系数变为 $k_j-k_i$,因此通过适当调整 $k_j$ 可以得到任意所需的系数值。综上可知,经过规则 (iii) 变换后的矩阵的行空间包含了原矩阵 $\mx{A}$ 的行空间。 我们还需证明反方向也成立。由于
\begin{gather} k_1 \vc{a}_{1,}^{\T} + \dots + k_i (\vc{a}_{i,}^{\T} + \vc{a}_{j,}^{\T}) + \dots + k_j \vc{a}_{j,}^{\T} + \dots + k_m \vc{a}_{m,}^{\T}\\ \Longleftrightarrow \\ k_1 \vc{a}_{1,}^{\T} + \dots + k_i \vc{a}_{i,}^{\T} + \dots + (k_j+k_i) \vc{a}_{j,}^{\T} + \dots + k_m \vc{a}_{m,}^{\T}, \end{gather} (8.20)
通过类似的论证,可得应用了规则 (iii) 的矩阵的行空间也包含于原矩阵的行空间,从而两者相等。 证明完毕。
$\square$


注意:定理 8.2 仅适用于 行空间, 不适用于 列空间

下面我们需要一个专门术语来描述高斯消元得到的矩阵。下列定义给出该术语(行阶梯形)。

定义 8.7: 行阶梯形
若矩阵 $\mx{A}$ 的所有仅含零的行(若存在)被放在最下方,且对于编号为 $i$ 的每一行,其首个非零系数 $a_{ij}$ 所在的列位置使得任一编号 $i'$ 的行($i' < i$)的首个非零元所在列 $j'$ 满足 $j' < j$,则称 $\mx{A}$ 为行阶梯形矩阵。
注意:通过对矩阵进行 高斯消元(直至无法再约简),可将该矩阵化为行阶梯形。 这会产生一种类似三角形的结构,例如下式所示:
\begin{equation} \left( \begin{array}{rrrrr} \underline{2} & 0 & 1 & -2 & 1 \\ 0 & \underline{1} & 4 & 2 & 1 \\ 0 & 0 & 0 & \underline{1} & 2 \\ 0 & 0 & 0 & 0 & 0 \\ \end{array} \right). \end{equation} (8.21)
因此,这类矩阵有时被称为矩阵 $\mx{A}$ 的“阶梯等价”形式。 前述方阵中加下划线的首个非零系数称为主元。有些教材要求把这些主元化为 1,这可以通过将整行除以该主元来实现,但在这里我们不作此要求。

下面给出一个定理,说明如何从行阶梯形矩阵中直接找出行空间的基向量,并由此确定行空间的维数。

定理 8.3:
设线性方程组 $\mx{A}\vc{x}=\vc{0}$ 经高斯消元后得到行阶梯形矩阵 $\mx{R}$,即 $\mx{A}\vc{x}=\vc{0} \Longleftrightarrow \mx{R}\vc{x}=\vc{0}$。则:
  1. 矩阵 $\mx{R}$ 的所有非零行构成 $\mx{R}$ 的行空间的一组基;由 定理 8.2,这些行也构成原矩阵 $\mx{A}$ 的行空间基。
  2. 对于 $\mx{R}$,在每一非零行中首个非零元所在的列(即首个非零元所在的列号)对应的列向量,构成 $\mx{R}$ 的列空间的一组基;而 $\mx{A}$ 的列空间基则取自 $\mx{A}$ 中与这些列号相同的列向量。

要证明这些非零行构成一组基,需证明 (i) 它们张成该空间,以及 (ii) 它们线性无关。
(i) 任意行向量的线性组合都可以由这些非零行的线性组合表示,因此非零行张成了行空间。
(ii) 证明它们线性无关。对于行阶梯形矩阵中的任一非零行,其主元所在列在其他行中均为 0,因此该非零行不可能表示成其他行的线性组合,从而这些非零行线性无关。
$\square$


注意,行/列空间的 基向量 的数量等于对应的 行/列秩

接下来我们将证明 行空间 的维数(即 行秩)与 列空间 的维数(即 列秩)相同。 在下面的定理之后,我们将举例说明如何找到行空间与列空间的 基向量

定理 8.4: 列秩与行秩相等
矩阵 $\mx{A}$ 的行秩等于其列秩

设矩阵 $\mx{A}$ 的行秩为 $k$,且 $\{\vc{b}_{1,}^\T,\dots,\vc{b}_{k,}^\T\}$ 为 $\mx{A}$ 的一组行空间基。第 $i$ 行 $\vc{a}_{i,}^\T=(a_{i1},a_{i2},\dots,a_{in})^\T$ 可以用这些基表示为 $\vc{a}_{i,}^\T=\sum_{r=1}^k c_{ir}\vc{b}_{r,}^\T$,其中 $c_{ir}$ 为某些常数。于是 $\vc{a}_{i,}^\T$ 的第 $j$ 个分量为
\begin{equation} a_{ij} = \sum_{r=1}^k c_{ir} b_{rj}, \end{equation} (8.22)
上式对任意列号 $j$ 都成立。因此,第 $j$ 列向量可写为
\begin{equation} \vc{a}_{,j} = \begin{pmatrix} a_{1j}\\ \vdots \\ a_{mj} \end{pmatrix} = \sum_{r=1}^k b_{rj} \vc{d}_{r}, \ \ \mathrm{where}\ \ \vc{d}_{r} = \begin{pmatrix} c_{1r} \\ \vdots \\ c_{mr} \end{pmatrix}. \end{equation} (8.23)
可以解释为:矩阵 $\mx{A}$ 的每一列都是 $k$ 个向量的线性组合,因此 $\colrank(\mx{A})\le k$。即 $\colrank(\mx{A})\le\rowrank(\mx{A})$。对转置矩阵同时应用该结论可得 $\rowrank(\mx{A})\le\colrank(\mx{A})$,因此两者相等,得证。
$\\square$


此后我们无需再区分 $\rowrank(\mx{A})$ 与 $\colrank(\mx{A})$,通常统一称之为矩阵的,记为 $\rank(\mx{A})$。该定理亦可表示为 $\rank(\mx{A})=\rank(\mx{A}^\T)$。 因此若要找到矩阵 $\mx{A}$ 的列空间基,可先对其转置为 $\mx{A}^\T$,再使用 定理 8.3 得到对应的基。 下面给出一个例子,说明如何找到列空间的基。

例 8.7
例 8.4 可得
\begin{equation} \underbrace{ \left( \begin{array}{rrrrr|r} 2 & 0 & 1 & -2 & 1 & 0\\ 2 & 1 & 5 & 0 & 2 & 0\\ 0 & 1 & 4 & 2 & 1 & 0\\ 0 & 0 & 0 & 1 & 2 & 0\\ \end{array} \right) }_{\mx{A}} \Leftrightarrow \underbrace{ \left( \begin{array}{rrrrr|r} 2 & 0 & 1 & -2 & 1 & 0\\ 0 & 1 & 4 & 2 & 1 & 0\\ 0 & 0 & 0 & 1 & 2 & 0\\ 0 & 0 & 0 & 0 & 0 & 0\\ \end{array} \right) }_{\mx{R}}. \end{equation} (8.24)
使用 定理 8.3(第 1 条),我们可以直接从 $\mx{R}$ 中读出作为行空间基的非零行:
\begin{gather} \begin{pmatrix} 2 & 0 & 1 & -2 & 1 \end{pmatrix} \\ \begin{pmatrix} 0 & 1 & 4 & 2 & 1 \end{pmatrix} \\ \begin{pmatrix} 0 & 0 & 0 & 1 & 2 \end{pmatrix}, \end{gather} (8.25)
这些即为 $\mx{R}$ 的非零行,因此 $\rank(\mx{A})=3$。

定理 8.3(第 2 条)还告诉我们,$\mx{R}$ 的列空间的一组基向量为
\begin{equation} \left(\begin{array}{c} 2 \\ 0 \\ 0 \\ 0 \end{array} \right), \ \ \ \left(\begin{array}{c} 0 \\ 1 \\ 0 \\ 0 \end{array} \right), \ \ \ \textrm{and}\ \ \ \left(\begin{array}{r} -2 \\ 2 \\ 1 \\ 0 \end{array} \right), \end{equation} (8.26)
也就是说,观察每一行,找到该行的第一个非零元,然后取该元素所在列的列向量作为一组生成向量。 矩阵 $\mx{A}$ 的列空间可通过取与 $\mx{R}$ 的列空间基相同列号的 $\mx{A}$ 中列向量来获得,即:
\begin{equation} \left(\begin{array}{c} 2 \\ 2 \\ 0 \\ 0 \end{array} \right), \ \ \ \left(\begin{array}{c} 0 \\ 1 \\ 1 \\ 0 \end{array} \right), \ \ \ \textrm{and}\ \ \ \left(\begin{array}{r} -2 \\ 0 \\ 2 \\ 1 \end{array} \right). \end{equation} (8.27)
由于上述三个向量张成了该列空间,因此使用列空间也可得到 $\rank(\mx{A})=3$。 这是预期的结果,因为 $\colrank(\mx{A})=\rowrank(\mx{A})$。

定理 8.5:
矩阵的等于对该矩阵进行高斯消元后出现的主元元素的个数。

矩阵 $\mx{A}$ 的行秩等于对其做高斯消元后得到的约化矩阵 $\mx{R}$ 的行空间的维数。由于 $\mx{R}$ 的行空间基由那些含有主元的行构成,故该维数(也就是秩)等于主元的个数。
$\square$


下面我们给出一个定理,为矩阵乘积的提供一个上界。

定理 8.6: 乘积的秩
矩阵乘积 $\mx{A}=\mx{B}\mx{C}$ 的不超过因子矩阵的秩,即:
\begin{equation} \rank \mx{A} \leq \rank \mx{C}, \end{equation} (8.28)
并且
\begin{equation} \rank \mx{A} \leq \rank \mx{B}. \end{equation} (8.29)
证明:

如前所示,积矩阵 $\mx{A}$ 的每一行都是 $\mx{C}$ 的各行的一个 线性组合。因此 $\mx{A}$ 的所有行都属于 $\mx{C}$ 的行空间,于是 $\rank\mx{A} \leq \rank\mx{C}$。由此可得乘积的秩不超过其最右因子的秩。
另一条不等式可通过研究 $\mx{A}$ 的行,它们是 $\mx{B}$ 的行的线性组合来证明。或者也可用转置关系 $\mx{A}^T = \mx{C}^T \mx{B}^T$ 来证明:右侧的最右因子为 $\mx{B}^T$,于是 $\rank\mx{A}^T \leq \rank\mx{B}^T$。结合 $\rank\mx{A}=\rank\mx{A}^T$,得到 $\rank\mx{A} \leq \rank\mx{B}$。
$\square$



定理 8.7:
设 $\vc{x}_\mathrm{h}$ 为齐次方程 $\mx{A}\vc{x}=\vc{0}$ 的解,且 $\vc{x}_\mathrm{p}$ 为非齐次方程 $\mx{A}\vc{x}=\vc{y}$ 的一组特解,则方程 $\mx{A}\vc{x}=\vc{y}$ 的通解为
\begin{equation} \vc{x}_{\mathrm{tot}} = \vc{x}_\mathrm{p} + \vc{x}_\mathrm{h}. \end{equation} (8.30)

我们知道 $\mx{A}\vc{x}_\mathrm{h}=\vc{0}$ 且 $\mx{A}\vc{x}_\mathrm{p}=\vc{y}$。 由此可证该定理。
\begin{gather} \mx{A}\vc{x}_\mathrm{p}=\vc{y} \\ \Longleftrightarrow \\ \mx{A}\vc{x}_\mathrm{p} + \vc{0}=\vc{y} \\ \Longleftrightarrow \\ \mx{A}\vc{x}_\mathrm{p} + \mx{A}\vc{x}_\mathrm{h} =\vc{y} \\ \Longleftrightarrow \\ \mx{A}(\underbrace{\vc{x}_\mathrm{p} + \vc{x}_\mathrm{h}}_{\vc{x}_{\mathrm{tot}}}) =\vc{y}. \end{gather} (8.31)
$\square$


现在我们知道 $\vc{x}_h$ 属于矩阵 $\mx{A}$ 的 零空间,而 $\vc{y}$ 必须属于 $\mx{A}$ 的 列空间,否则它不能成为方程 $\mx{A}\vc{x}=\vc{y}$ 的解。在 交互式图示 8.3 中, 我们演示了这两类解如何相互作用。
$\vc{x}_h$
$\vc{x}_p$
$\vc{x}_{\mathrm{tot}}$
交互说明 8.3: 假设我们有齐次方程组 $\mx{A}\vc{x}=\vc{0}$,将其解记为 $\vc{x}_h$。在此情况下,解集如上所示为一条直线。拖动滑块可改变 $\vc{x}_h$ 的位置,然后点击/触摸 前进 继续。
交互说明 8.3: 假设我们有齐次方程组 $\hid{\mx{A}\vc{x}=\vc{0}}$,其解记为 $\hid{\vc{x}_h}$。在此情况下,解集如上所示为一条直线。拖动滑块可改变 $\hid{\vc{x}_h}$ 的位置,然后点击/触摸 前进 继续。
下面的维数定理非常有用:如果你已知 零空间 的维数或矩阵的 ,那么(在已知矩阵行数的前提下)就可以求出另一个。

定理 8.8: 维数定理
对于任意 $m\times n$ 矩阵 $\mx{A}$(即有 $n$ 列),成立关系:
\begin{equation} \rank(\mx{A}) + \nullity(\mx{A}) = n. \end{equation} (8.32)

若 $\rank(\mx{A})=n$,则矩阵可逆(行列式非零)。因此齐次方程 $\mx{A}\vc{x}=\vc{0}$ 的唯一解为 $\vc{x}=\vc{0}$, 即 $\nullity(\mx{A})=0$,从而 $\rank(\mx{A})+0=n$,定理在此情形成立。 下面我们假设 $\rank(\mx{A})示例 8.4 中,自由变量为 $s$ 与 $t$。我们把这些自由变量记作 $s_1,\dots,s_{n-r}$。 因此存在 $n-r$ 个线性无关的零向量,记为 $\vc{x}_1,\dots,\vc{x}_{n-r}$。 如前所述,齐次方程 $\mx{A}\vc{x}=\vc{0}$ 的通解由以下形式给出:
\begin{equation} \vc{x} = s_1\vc{x}_1 + \dots + s_{n-r}\vc{x}_{n-r}. \end{equation} (8.33)
因此,$\vc{x}_1,\dots,\vc{x}_{n-r}$ 构成了该矩阵零空间的一组 基向量, 故 $\nullity(\mx{A}) = n-r$,从而证得该定理。
$\square$


回顾一下,$\nullity(\mx{A})$ 表示描述齐次线性系统 解 $\mx{A}\vc{x}=\vc{0}$ 所需的参数个数,而 $\rank(\mx{A})$ 则表示当 $\mx{A}\vc{x}=\vc{y}$ 有解时,右端向量 $\vc{y}$ 中线性无关的个数。 最后,这两个数之和等于 $n$,也就是矩阵 $\mx{A}$ 的列数。

示例 8.8: 维数定理
示例 8.4示例 8.7 中, 我们考虑了一个 $4\times 5$ 的矩阵 $\mx{A}$,即 $m=4$ 且 $n=5$。我们首先观察到
\begin{equation} \nullity(\mx{A}) = 2 \end{equation} (8.34)
然后得到
\begin{equation} \rank(\mx{A}) = 3. \end{equation} (8.35)
定理 8.8(维数定理) 说明 $2+3=n$,其中 $n$ 为矩阵的列数。可见该式在矩阵的列数为 5 时成立。
注意,矩阵 $\mx{A}$ 可以被看作一种变换或线性映射(参见 第 9 章), 且 $n$ 是 $\mx{A}$ 的定义域(domain)的维数。 由此,$\rank(\mx{A})$ 可视为经过 $\mx{A}$ 变换后“保留下来”的维数,而 $\nullity(\mx{A})$ 则是被 $\mx{A}$ 压缩掉的维数。

例 8.9: 点到平面的正交投影 — 复习
例 3.10 中,点 $P$ 被投影到由 平面 所定义的平面上,该平面由 法向量 $\vc{n}$ 和平面上的一点 $S$ 所确定,在本例中我们假定 $S$ 为原点 $O$。 我们得到点 $P$ 在该 平面 上的正交投影可以表示为
\begin{equation} Q = P - \proj{\vc{n}}{\vc{v}}, \end{equation} (8.36)
这里 $Q$ 为投影点,$\vc{v}=P-O$。 正交投影的公式(参见 定义 3.2)为 $\proj{\vc{n}}{\vc{v}} = \left(\dfrac{\vc{v} \cdot \vc{n}}{\vc{n} \cdot \vc{n}}\right) \vc{n}$。 因此,点 $Q$ 的表达式可以重写为
\begin{equation} Q = P - \frac{\vc{v} \cdot \vc{n}}{\vc{n} \cdot \vc{n}} \vc{n}. \end{equation} (8.37)
为了用矩阵进行运算,我们需要使用向量而不是点,因此引入 $\vc{q} = \overrightarrow{OQ}$,而我们已有 $\vc{v} = \overrightarrow{OP}$。 由此得到
\begin{align} \vc{q} &= \vc{v} - \frac{\vc{v} \cdot \vc{n}}{\vc{n} \cdot \vc{n}} \vc{n} \\ &= \frac{1}{f} \begin{pmatrix} fv_x - n_x n_x v_x - n_x n_y v_y - n_x n_z v_z\\ fv_y - n_y n_x v_x - n_y n_y v_y - n_y n_z v_z\\ fv_z - n_z n_x v_x - n_z n_y v_y - n_z n_z v_z \end{pmatrix}, \end{align} (8.38)
其中 $f = \ln{\vc{n}}^2 = \vc{n} \cdot \vc{n}$。有趣的是,这可以表示为矩阵与向量的乘法
\begin{align} \vc{q} &= \underbrace{ \frac{1}{f} \begin{pmatrix} f - n_x^2 & - n_x n_y & - n_x n_z \\ - n_y n_x & f - n_y^2 & - n_y n_z \\ - n_z n_x & - n_z n_y & f - n_z^2 \end{pmatrix} }_{\mx{A}} \underbrace{ \begin{pmatrix} v_x \\ v_y \\ v_z \end{pmatrix} }_{\vc{v}} = \mx{A}\vc{v}. \end{align} (8.39)
定义域的维数为 3,因为输入为三维向量($\R^3$)。 由于只有位于该 平面 内的向量被“保留”,因此我们立刻得到 $\rank(\mx{A})=2$,进而 $\nullity(\mx{A})=1$。

$P$
$O$
$\vc{n}$
$\vc{v}$
$\proj{\vc{n}}{\vc{v}}$
$-\proj{\vc{n}}{\vc{v}}$
$Q$
$\vc{q}$
交互式图示 8.4: 本图演示如何将点 $P$(灰色圆点)正交投影到由法向量 $\vc{n}$ 和起点 $O$(原点)定义的平面上。点 $P$ 可在图中拖动。 点击或触摸 前进 开始演示。
交互式图示 8.4: 最后,点 $\hid{P}$ 已被正交投影到平面上,投影点 $\hid{Q}$ 用红色圆点显示。因此有 $\hid{\vc{q} = Q - O}$。注意之前得到的矩阵 $\hid{\mx{A}}$ 可直接计算 $\hid{\vc{q}} = \hid{\mx{A}}\hid{\vc{v}}$。 向量 $\hid{\vc{v}}$ 是三维的($\hid{\vc{v} \in \R^3}$),但投影后的点 $\hid{\vc{q}}$ 总位于浅蓝色平面上,因此所有 $\hid{\vc{q}}$ 的集合是二维的,故 $\hid{\rank(\mx{A}) = 2}$,零空间维数为 1($\hid{\nullity(\mx{A})=1}$)。
下面我们来研究矩阵 $\mx{A}$ 的 零空间。由第 8.2 节 可知, 可以通过对方程 $\mx{A}\vc{x}=\vc{0}$ 施以 高斯消元 来计算零空间的维数(零维数)。不失一般性, 我们可以假设 $\vc{n}=(0,0,1)$,即 $f=1$,并且 $S=O=(0,0,0)$。 由此得到
\begin{equation} \left( \begin{array}{rrr|r} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right), \end{equation} (8.40)
也就是说,结果已经处于 行阶梯形,由于最后一行全为零,因此 $\rank(\mx{A})=2$。 我们可以设 $p_z=t$,其中 $t\in\R$。这不会影响前两行,因此零空间由 $(0,0,t)$ 张成,即 $\nullity(\mx{A})=1$。 这与法向量 $\vc{n}=(0,0,1)$ 一致:矩阵 $\mx{A}$ 将所有向量塌缩到平面 $z=0$。 矩阵的列空间基向量为第一列与第二列向量,即:
\begin{gather} \vc{b}_1 = \begin{pmatrix} 1\\ 0\\ 0 \end{pmatrix} \ \ \ \mathrm{and}\ \ \ \vc{b}_2 = \begin{pmatrix} 0\\ 1\\ 0 \end{pmatrix}. \end{gather} (8.41)
因此,列空间 是由下列向量所描述的所有向量组成的集合:
\begin{equation} \vc{q} = u\vc{b}_1 + v\vc{b}_2 = \begin{pmatrix} u\\ v\\ 0 \end{pmatrix}, \end{equation} (8.42)
其中 $u\in\R$ 且 $v\in\R$,这也意味着 $\rank(\mx{A})=2$。 最后我们注意到 定理 8.8 说明 $\rank(\mx{A}) + \nullity(\mx{A}) = n$,在本例中确实成立,因为 $2+1=3$。

例 8.10:
下面给出另一个示例,展示如何计算矩阵的 零维数 等。我们从下面的矩阵开始: 例如下面的一个 $4\times 6$ 矩阵 $\mx{A}$:
\begin{equation} \mx{A}= \left( \begin{array}{rrrrrr} 1 & 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 0 & 1 & 0 \\ 1 & 1 & -1 & 0 & -1 & 2 \\ 1 & 1 & 1 & 0 & 1 & 2 \\ \end{array} \right). \end{equation} (8.43)
我们将对矩阵施以 高斯消元,以将矩阵化为行阶梯形(行阶梯形)。 首先,对第 2、3、4 行,将顶行减去各自的行,得到:
\begin{equation} \left( \begin{array}{rrrrrr} 1 & 1 & 1 & 1 & 1 & 1 \\ 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 2 & 1 & 2 & -1 \\ 0 & 0 & 0 & 1 & 0 & -1 \\ \end{array} \right). \end{equation} (8.44)
下一步是用第 2 行减去第 4 行,并将结果放入第 4 行,得到
\begin{equation} \left( \begin{array}{rrrrrr} 1 & 1 & 1 & 1 & 1 & 1 \\ 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 2 & 1 & 2 & -1 \\ 0 & 0 & 0 & 0 & 0 & 2 \\ \end{array} \right). \end{equation} (8.45)
最后一步,我们交换第 2 行与第 3 行的位置,得到一个行阶梯形矩阵(行阶梯形),即:
\begin{equation} \mx{R}= \left( \begin{array}{rrrrrr} 1 & 1 & 1 & 1 & 1 & 1 \\ 0 & 0 & 2 & 1 & 2 & -1 \\ 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 2 \\ \end{array} \right), \end{equation} (8.46)
接着将其代入 $\mx{R}\vc{x}=\vc{0}$。 从最下面一行我们立刻得到 $2 x_6 = 0$,即 $x_6=0$。 利用第 3 行可得 $x_4+x_6=0$,即 $x_4=0$。 第 2 行给出 $2x_3 + 0 + 2x_5 + 0 = 0$,即 $x_3+x_5=0$。 因此,设 $x_5=t$,得到 $x_3=-t$。 最顶行表示 $x_1 + x_2 + x_3 + x_4 + x_5 + x_6 = x_1+x_2 -t + 0 +t +0 =0$,即 $x_1+x_2=0$。 这一次我们令 $x_2=s$,因此 $x_1 = -s$。 综上,齐次方程组(homogeneous system)$\mx{A}\vc{x}=\vc{0}$ 的解为:
\begin{equation} \vc{x}_h= \left( \begin{array}{r} -s \\ s \\ -t \\ 0 \\ t \\ 0 \end{array} \right) = s \underbrace{ \left( \begin{array}{r} -1 \\ 1 \\ 0 \\ 0 \\ 0 \\ 0 \end{array} \right)}_{\vc{z}^1} + t \underbrace{ \left( \begin{array}{r} 0 \\ 0 \\ -1 \\ 0 \\ 1 \\ 0 \end{array} \right)}_{\vc{z}^2}. \end{equation} (8.47)
这意味着 $\nullity(\mx{A})=2$,因为该表达式中有两个变量($s$ 和 $t$)。 零向量为 $\vc{z}^1$ 和 $\vc{z}^2$。 由于 $n=6$ 且 $\nullity(\mx{A})=2$,因此 $\rank(\mx{A})= 6-2=4$。 跨越行空间的 行向量 是 $\mx{R}$ 的四个行向量,同时也是 $\mx{A}$ 的行向量,因为 高斯消元 不改变 行空间。 张成列空间的 列向量 的索引在 $\mx{R}$ 中已被识别, 即第 1、3、4 和 6 列,因为这些列在相应的位置上包含首个非零元。 因此,张成列空间的列向量就是 $\mx{A}$ 中编号为 1、3、4 和 6 的那些列向量。 注意 $\mx{A}\vc{z}^1=\vc{0}$ 和 $\mx{A}\vc{z}^2=\vc{0}$(可通过矩阵-向量相乘验证)。 最后,如果我们有线性系统 $\mx{A}\vc{x}=\vc{b}$,那么解 $\vc{x}$ 将位于 $\mx{A}$ 的行空间中。
8.4 秩与行列式


第7章 中,我们介绍了计算方阵行列式的不同方法。 利用余子式(见 定义 7.8),也可以求出矩阵的,如下定理所述。

定理 8.9:
矩阵 $\mx{A}$(大小 $m\times n$)的是最大的整数 $r$,使得存在某个 $r\times r$ 的 余子式不为 $0$。

证明分为两部分:首先证明矩阵的至少为 $r$,其次证明其至多为 $r$,从而完成证明。
$i)$ 设 $\mx{S}$ 为某个 $r\times r$ 子矩阵,其行列式记为 $d$,且 $d\neq 0$,即 $d=|\mx{S}|\neq 0$。 如所周知,这样的余子式可以通过删去 $m-r$ 行和 $n-r$ 列得到。 令 $\mx{B}$ 为由未被删去的行组成的矩阵,因此 $\mx{B}$ 由 $\mx{A}$ 的这 $r$ 行构成,且 $\mx{S}$ 的元素也包含于 $\mx{B}$ 中。 换言之,余子式 $d$ 也可以通过从 $\mx{B}$ 中再去掉若干列得到。由于 $d\neq 0$,$\mx{S}$ 的列必然是线性无关的。 因此,$\mx{B}$ 中至少有 $r$ 个线性无关的列向量,故 $\mx{B}$ 的秩至少为 $r$。 然而,$\mx{B}$ 只有 $r$ 行,因此其 必须恰好为 $r$,并且 $\mx{B}$ 的 行向量 必须是 线性无关 的。 因此,$\mx{A}$ 至少也要有 $r$ 个 线性无关行向量, 即 $\rank(\mx{A})\ge r$。
$ii)$ 此步骤的目的是证明 $\mx{A}$ 的至多为 $r$。 设 $\mx{A}$ 具有 $t$ 个 线性无关 的行。 取由这些行构成的矩阵 $\mx{C}$,则 $\mx{C}$ 的秩为 $t$,这意味着 $\mx{C}$ 中也存在 $t$ 个 线性无关 的列。 接着通过去掉其它列来保留这 $t$ 列,得到一个 $t\times t$ 的矩阵,其行列式不为零,因为这些列线性无关。该 余子式 同时也是 $\mx{A}$ 的一个余子式。 因此,若 $\mx{A}$ 的秩大于 $r$,将导致存在超过 $r$ 个线性无关的行,与假设矛盾。
$\square$


定理 8.9定理 7.8 可知(后者说明仅当行列式非零时矩阵才有逆), 若方阵 $n\times n$ 的矩阵 $\mx{A}$ 可逆,那么其秩必为 $n$,即 $\rank(\mx{A})=n$。

例 8.11:
假设我们要计算下面这个 $4\times 4$ 矩阵的
\begin{equation} \mx{A} = \left( \begin{array}{rrrr} 1 & 1 & 1 & 0 \\ 1 & 0 & 1 & 1 \\ 0 & 2 & 1 & -2 \\ 1 & 2 & 2 & -1 \\ \end{array} \right). \end{equation} (8.48)
矩阵 $\mx{A}$ 的行列式为零(留作练习),因此其 小于 4。 接下来我们计算其中一个 $3\times 3$ 的 余子式,例如:
\begin{equation} D_{11} = \left| \begin{array}{rrr} 0 & 1 & 1 \\ 2 & 1 & -2 \\ 2 & 2 & -1 \\ \end{array} \right| = 0, \end{equation} (8.49)
由于 $D_{11}=0$,我们并未获得新的信息,事实证明 $D_{12}=D_{13}=D_{14}=0$。 然而,若继续去掉第二行与第一列,我们得到
\begin{equation} D_{21} = \left| \begin{array}{rrr} 1 & 1 & 0 \\ 2 & 1 & -2 \\ 2 & 2 & -1 \\ \end{array} \right| = 1, \end{equation} (8.50)
因为至少存在一个 $3\times 3$ 的 余子式 非零(本例中 $D_{21}\neq 0$), 我们可得 $\rank(\mx{A})=3$。结合已知的 $4\times 4$ 行列式为 0(见 定理 8.9),该结论成立。
8.5 引言例子的后续讨论


例 8.12: 声音结构问题
交互式图示 8.2 中,我们研究了如何从测得的声音数据确定声源位置和麦克风位置。在该情形下,信号处理方法可以用于获得所谓的到达时间差测量值。为简化叙述,我们在此改为讨论到达时间问题的等价表述。

在本例中,我们有 $m=8$ 个麦克风。记 $\vc{r}_i$($i=1,\dots,m$)为这 8 个麦克风的三维位置的列向量表示。我们在若干时间点 $t_1,\dots,t_n$ 处记录声音,令 $\vc{s}_j$($j=1,\dots,n$)为声音在这些时间点发射时的三维位置坐标。 假设我们测量了每个麦克风在每个时间点的到达时间差 $t_{ij}$(发射与接收的时间差)。将其乘以声速 $v$ 后,可以得到测得的距离值
\begin{equation} d_{ij} = v t_{ij} = {\ln{\mathbf{r}_i - \mathbf{s}_j}}. \end{equation} (8.51)
现在的问题是如何从测得的距离 $d_{ij}$ 中恢复出 $\vc{r}_i$ 和 $\vc{s}_j$。

对测量方程 (8.51) 两边平方,
\begin{equation} d_{ij}^2= ( \mathbf{r}_{i} - \mathbf{s}_{j} )^T ( \mathbf{r}_{i} - \mathbf{s}_{j} ) = \mathbf{r}_{i}^T\mathbf{r}_{i} + \mathbf{s}_{j} ^T\mathbf{s}_{j} - 2 \mathbf{r}_{i}^T \mathbf{s}_{j} \end{equation} (8.52)
可得到关于未知量的一组 $mn$ 个多项式方程。

下面定义所谓的压缩矩阵 $\mathbf{B}$:
\begin{equation} \mathbf{B}= \begin{pmatrix} \frac{d_{22}^2 - d_{21}^2 - d_{12}^2 + d_{11}^2}{-2} &\dots& \frac{d_{2n}^2 - d_{21}^2 - d_{1n}^2 + d_{11}^2}{-2} \\ \vdots &\ddots& \vdots \\ \frac{d_{m2}^2 - d_{21}^2 - d_{12}^2 + d_{11}^2}{-2} &\dots& \frac{d_{2n}^2 - d_{21}^2 - d_{1n}^2 + d_{11}^2}{-2} \end{pmatrix} \end{equation} (8.53)
因此,$\mathbf{B}$ 的 最多为 3,下面将解释原因。

\begin{equation} \mathbf{q}_i = \left[ \begin{matrix} (\mathbf{r}_{i} - \mathbf{r}_1) \end{matrix} \right] \end{equation} (8.54)
并且
\begin{equation} \mathbf{t}_j = \left[ \begin{matrix} ( \mathbf{s}_{j} - \mathbf{s}_1) \end{matrix} \right] \end{equation} (8.55)
作为相对于第一个接收器位置的其余接收器位置的相对向量,以及作为相对于第一个发射器位置的其余发射器位置的相对向量。 把这些向量分别作为矩阵 $\mathbf{R}$ 和 $\mathbf{S}$ 的列向量,于是得到:
\begin{equation} \mathbf{R}= \left[ \begin{matrix} \mathbf{q}_2 \ldots \mathbf{q}_m \end{matrix} \right] \end{equation} (8.56)
并且
\begin{equation} \mathbf{S}= \left[ \begin{matrix} \mathbf{t}_2 \ldots \mathbf{t}_n \end{matrix} \right] . \end{equation} (8.57)
以此方式,$(m-1)(n-1)$ 的压缩矩阵约束可以写成
\begin{equation} \mathbf{B} = \mathbf{R}^\T \mathbf{S}, \end{equation} (8.58)

这里我们看到矩阵 $\mathbf{R}^\T$ 有三列,因此该矩阵的 至多为 3。类似地, $\mathbf{S}$ 有三行,因此其 也至多为 3。 根据 定理 8.6,我们知道 $\mathbf{B}$ 的 不超过 $\mathbf{R}$ 与 $\mathbf{S}$ 的 中的较小者。 因此 $\mathbf{B}$ 的 至多为 3。


在上一例中,我们发现可以通过测量得到一个矩阵 $\mathbf{B}$,并且它与我们要估计的参数满足关系 $\mathbf{B} = \mathbf{R}^\T \mathbf{S}$。

如何从 $\mathbf{B}$ 计算出 $\mathbf{R}$ 和 $\mathbf{S}$?换言之,如何将矩阵 $\mathbf{B}$ 分解为两个因子 $\mathbf{R}$ 与 $\mathbf{S}$ 的乘积? 这属于矩阵分解的话题,在许多应用中非常有用,但遗憾地超出本书讨论范围。



第7章:行列式(上一章) 第9章:线性映射(下一章)