Lecture 7: Solving Ax = 0: Pivot Variables, Special Solutions
Lecture 7: Solving Ax = 0: Pivot Variables, Special Solutions
概述
上一讲把 $\mathrm{N}(A)$ 定义为”被 $A$ 压到原点的输入方向集合”,但只对 2×2、3×3 的小例子手工解方程。本讲给出通用算法:消元到行阶梯形 $U$(进一步到简化行阶梯形 $R$)$\to$ 认出主元列(pivot columns)与自由列(free columns) $\to$ 给每个自由变量轮流取 1、其余自由变量取 0,回代求出对应的特殊解(special solutions) $\to$ 全部特殊解的线性组合就是 $\mathrm{N}(A)$。核心结论是三个数字的等式:$\dim\mathrm{N}(A)=n-r=\#\{\text{自由变量}\}=\#\{\text{特殊解}\}$。理解本讲的关键在于回答”为什么自由变量轮流取 1、其余取 0 就够用了“——这不是技巧,而是”自由变量可以任意取值,主元变量被它们唯一决定”这一参数化事实的直接翻译。本讲是 Lecture 8($A\mathbf{x}=\mathbf{b}$ 的一般解 = 特解 + 零空间)的全部技术准备,也是讲次 10 四个基本子空间与讲次 14 正交性的伏笔。
核心概念的几何直觉
主元列与自由列(pivot columns / free columns)
- 定义与目的:对 $A$ 做高斯消元(允许行交换)得到行阶梯形 $U$:每行的第一个非零元叫主元(pivot),主元所在的列叫主元列;没有主元的列叫自由列。主元的个数 $r$ 就是 $A$ 的秩。目的:把”哪些变量被唯一决定、哪些变量可以自由取值”变成一眼可读的信息。
- 几何直觉(它在空间中是什么样子?):主元列是那些带来新方向的列;自由列是那些没有带来新方向的列——自由列一定是它左边某些列的线性组合(在消元后的 $R$ 里可以直接读出这些系数)。因此每一个自由列都对应一个”多出来的方向”:既然这一列可以由别的列凑出来,就存在一个非平凡组合使它们加起来为 $\mathbf{0}$,那个组合向量就落在零空间里。自由列的个数 = 冗余方向的个数 = 零空间的维数。
具体示例:本讲主角
\[A=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix}\]消元后主元在第 1、3 列,自由列是第 2、4 列。原因很直观:第 2 列 $=2\times$第 1 列,它没带来新方向;第 4 列 $=-2\times$第 1 列 $+2\times$第 3 列,也没带来新方向。所以 4 列里只有 2 列是真正独立的,$r=2$。
特殊解(special solutions)
- 定义与目的:设自由变量为 $x_{f_1},\dots,x_{f_{n-r}}$。第 $k$ 个特殊解 $\mathbf{s}_k$ 定义为:令 $x_{f_k}=1$,其余自由变量 $=0$,然后回代求出所有主元变量的值。目的是:用 $n-r$ 个”标准输入”把零空间完整地参数化出来。
- 几何直觉(它在空间中是什么样子?):特殊解是零空间里的 $n-r$ 个”骨架方向”。它们互相线性无关(因为在自由坐标上它们是标准的单位向量 $\mathbf{e}1,\dots,\mathbf{e}{n-r}$,任何组合 $\sum c_k\mathbf{s}k$ 的自由坐标就是 $(c_1,\dots,c{n-r})$,若组合为零则所有 $c_k=0$),并且零空间里每一个向量都是它们的组合。于是 $\{\mathbf{s}1,\dots,\mathbf{s}{n-r}\}$ 是 $\mathrm{N}(A)$ 的一组基,$\mathrm{N}(A)$ 是一个 $n-r$ 维的”参数平面”。
- 具体示例:本讲主角的两个特殊解是 $\mathbf{s}_1=\begin{bmatrix}-2\\1\\0\\0\end{bmatrix}$ 与 $\mathbf{s}_2=\begin{bmatrix}2\\0\\-2\\1\end{bmatrix}$,两者都满足 $A\mathbf{s}_k=\mathbf{0}$(下面会逐个验算)。它们张成 $\mathbb{R}^4$ 中一张过原点的 2 维平面——$\mathrm{N}(A)$ 就是这张平面。
为什么”每个自由变量取 1、其余取 0”能生成全部解?(本讲的灵魂)
- 定义与目的:把”特殊解是基”这个论断讲透,从”技巧”升级为”定理”。
几何直觉 + 机制:把 RREF $R$ 写成分块形式。设有 $r$ 个主元列、$n-r$ 个自由列,重新排列变量后(只是重排坐标,不改变零空间的维数与结构)
\[R=\begin{bmatrix}I_r&F\end{bmatrix},\qquad \mathbf{x}=\begin{bmatrix}\mathbf{x}_{\text{pivot}}\\ \mathbf{x}_{\text{free}}\end{bmatrix},\]其中 $I_r$ 是 $r\times r$ 单位阵,$F$ 是 $r\times(n-r)$ 的矩阵。$R\mathbf{x}=\mathbf{0}$ 即 $\mathbf{x}{\text{pivot}}+F\mathbf{x}{\text{free}}=\mathbf{0}$,也就是
\[\boxed{\ \mathbf{x}_{\text{pivot}}=-F\,\mathbf{x}_{\text{free}}\ }\]这就是全部秘密:一旦自由变量 $\mathbf{x}{\text{free}}$ 选定,主元变量 $\mathbf{x}{\text{pivot}}$ 就被唯一地决定(因为 $I_r$ 可逆)。反过来,$\mathbf{x}_{\text{free}}$ 可以取 $\mathbb{R}^{n-r}$ 中任何值,完全自由。于是映射
\[\mathbf{x}_{\text{free}}\ \longmapsto\ \mathbf{x}=\begin{bmatrix}-F\mathbf{x}_{\text{free}}\\ \mathbf{x}_{\text{free}}\end{bmatrix}\]是 $\mathbb{R}^{n-r}\to\mathrm{N}(A)$ 的一个一一对应(线性同构)。因此 $\dim\mathrm{N}(A)=n-r$。而取 $\mathbf{x}{\text{free}}$ 为 $\mathbb{R}^{n-r}$ 的标准基 $\mathbf{e}_1,\dots,\mathbf{e}{n-r}$,得到的正是 $n-r$ 个特殊解:
\[\mathbf{s}_k=\begin{bmatrix}-F\mathbf{e}_k\\ \mathbf{e}_k\end{bmatrix}=\begin{bmatrix}-(F\ \text{的第}\ k\ \text{列})\\ \mathbf{e}_k\end{bmatrix}.\]这些 $\mathbf{s}k$ 是 $\mathbb{R}^{n-r}$ 的标准基在逆映射下的像,所以线性无关;又因为任何 $\mathbf{x}{\text{free}}$ 都能写成 $\sum c_k\mathbf{e}_k$,任何零空间向量都能写成 $\sum c_k\mathbf{s}_k$。“基”的两条要求(无关 + 张成)同时到位。
更直白的说法:零空间里的向量长这样——
\[\mathbf{x}=x_{f_1}\mathbf{s}_1+x_{f_2}\mathbf{s}_2+\cdots+x_{f_{n-r}}\mathbf{s}_{n-r},\]也就是说,自由变量的取值本身就是组合系数。这就是”$n-r$ 个自由参数”这句话的确切含义:零空间是一个由 $n-r$ 个参数自由滑动生成的 $n-r$ 维平面。
具体示例:本讲主角的 RREF 是 $R=\begin{bmatrix}1&2&0&-2\\0&0&1&2\\0&0&0&0\end{bmatrix}$。重排后 $\mathbf{x}{\text{pivot}}=\begin{bmatrix}x_1\\x_3\end{bmatrix}$、$\mathbf{x}{\text{free}}=\begin{bmatrix}x_2\\x_4\end{bmatrix}$,而 $F$ 就是从 $R$ 里抠出自由列得到的 $\begin{bmatrix}2&-2\\0&2\end{bmatrix}$。于是
\[\begin{bmatrix}x_1\\x_3\end{bmatrix}=-F\begin{bmatrix}x_2\\x_4\end{bmatrix}=\begin{bmatrix}-2x_2+2x_4\\-2x_4\end{bmatrix}.\]取 $\mathbf{x}{\text{free}}=\begin{bmatrix}1\\0\end{bmatrix}$ 得 $\mathbf{s}_1=\begin{bmatrix}-2\\1\\0\\0\end{bmatrix}$;取 $\mathbf{x}{\text{free}}=\begin{bmatrix}0\\1\end{bmatrix}$ 得 $\mathbf{s}_2=\begin{bmatrix}2\\0\\-2\\1\end{bmatrix}$。与手工回代的结果完全一致。
消元把零空间照原样保留(为什么可以先消元再回代)
- 定义与目的:说明算法第一步(消元)为何合法。
几何直觉:消元是可逆的行变换,等价于左乘可逆矩阵:$E_k\cdots E_1A=U$,即 $U=L^{-1}A$。而
\[A\mathbf{x}=\mathbf{0}\iff L^{-1}A\mathbf{x}=\mathbf{0}\iff U\mathbf{x}=\mathbf{0},\]因为 $L^{-1}$ 可逆($\mathbf{y}=\mathbf{0}\iff L^{-1}\mathbf{y}=\mathbf{0}$)。所以 $\mathrm{N}(A)=\mathrm{N}(U)=\mathrm{N}(R)$。消元会改变列空间,但不会碰零空间——这是我们能”先消元、再在 $R$ 上读零空间”的全部理由。
- 具体示例:下面演示 1 会算出 $L=\begin{bmatrix}1&0&0\\2&1&0\\3&1&1\end{bmatrix}$,并验证 $LU=A$。注意 $L$ 的对角线全为 1,所以 $\det L=1\neq 0$,可逆。
RREF 上主元列与自由列的标记(ASCII 图)
col1 col2 col3 col4
[ 1 2 0 -2 ] <- 主元行 1:x1 是主元变量
R = rref(A) = [ 0 0 1 2 ] <- 主元行 2:x3 是主元变量
[ 0 0 0 0 ] <- 零行(没有主元)
^ ^
主元列 主元列 r = 2 个主元
^ ^
自由列 自由列 n - r = 2 个自由变量
R 的每一行可以"读成一个方程":
row1: x1 + 2*x2 + 0*x3 - 2*x4 = 0 -> x1 = -2*x2 + 2*x4
row2: 0*x1 + 0*x2 + x3 + 2*x4 = 0 -> x3 = -2*x4
row3: 0 = 0 -> 什么也没说(冗余行)
把 x2, x4 当"旋钮":
(x2, x4) = (1, 0) -> x = (-2, 1, 0, 0) = s1
(x2, x4) = (0, 1) -> x = ( 2, 0, -2, 1) = s2
(x2, x4) = (c1,c2) -> x = c1*s1 + c2*s2 这就是 N(A) 的全部
“多出来的方向”直观图(无需消元的版本)
A 的 4 个列向量(都在 R^3 里,因为 A 是 3x4):
col1 = [1,2,3] <- 独立方向 #1
col2 = [2,4,6] = 2*col1 <- 没有新方向! "多出来的" 第 1 个方向
col3 = [2,6,8] <- 独立方向 #2
col4 = [2,8,10] = -2*col1 + 2*col3 <- 没有新方向! "多出来的" 第 2 个方向
=> 真正的独立方向只有 r = 2 个,冗余方向 4 - 2 = 2 个
=> 每一个冗余方向都能"造"出一个非平凡组合,使列的和为 0:
col2 - 2*col1 = 0
给出的零空间向量: x1 = -2, x2 = 1, x3 = 0, x4 = 0 -> s1
2*col1 - 2*col3 + col4 = 0
给出的零空间向量: x1 = 2, x2 = 0, x3 = -2, x4 = 1 -> s2
结论:自由列的个数 = 冗余方向的个数 = dim N(A) = n - r
零空间是”物理的运动方向”:3×4 例子的空间图景
输入空间 R^4(变量 x1,x2,x3,x4 的空间)
┌─────────────────────────────────────────┐
│ N(A):过原点的 2 维平面 │
│ = { c1*s1 + c2*s2 } │
│ 每个点都满足 A x = 0(被压到 0) │
│ │
│ A 的作用: │
│ R^4 ────A────> R^3 │
│ (4 维) (3 维输出) │
│ 压掉 2 维 只活下来 2 维 │
│ 0 + 2 + 2 = 4 = n │
└─────────────────────────────────────────┘
dim(row space) + dim(N(A)) = r + (n-r) = n = 4
计算步骤与手算演示
示例 1(Strang 的经典例子,全程手算):$A=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix}$ 的完整零空间
步骤 1(第一列消元,主元 $a_{11}=1$):消掉第 1 列在 2、3 行的下方元素。
- 乘数 $\ell_{21}=2/1=2$,$R_2\leftarrow R_2-2R_1$:
- 乘数 $\ell_{31}=3/1=3$,$R_3\leftarrow R_3-3R_1$:
消元一步后:
[ 1 2 2 2 ]
[ 0 0 2 4 ]
[ 0 0 2 4 ]
步骤 2(第 2 列没有主元,跳到第 3 列):第 2 列在第 2、3 行的元素都是 $0$,在(第 2 行,第 2 列)这个位置上找不到非零主元,所以第 2 列是自由列,消元继续向右看第 3 列。位置 $(2,3)$ 上的 $2$ 成为第二个主元。
- 乘数 $\ell_{32}=2/2=1$,$R_3\leftarrow R_3-1R_2$:
得到行阶梯形 U:
\[U=\begin{bmatrix}1&2&2&2\\0&0&2&4\\0&0&0&0\end{bmatrix}.\]步骤 3(同时记录 L,验证 $A=LU$):消元的乘数按位置放入下三角:
\[L=\begin{bmatrix}1&0&0\\2&1&0\\3&1&1\end{bmatrix},\qquad LU=\begin{bmatrix}1&0&0\\2&1&0\\3&1&1\end{bmatrix}\begin{bmatrix}1&2&2&2\\0&0&2&4\\0&0&0&0\end{bmatrix}=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix}=A\ \checkmark\](逐项核对:$(LU){24}=2\cdot 2+0+0=4$ ✓;$(LU){34}=3\cdot 2+1\cdot 4+0=10$ ✓;$(LU)_{33}=3\cdot 2+1\cdot 2+0=8$ ✓。)
步骤 4(读出秩与自由列):$U$ 有 2 个非零行 ⟹ 主元个数 $r=2$;主元位于第 1 列与第 3 列 ⟹ 主元列 = {1, 3};自由列 = {2, 4},自由变量是 $x_2,x_4$。预测 $\dim\mathrm{N}(A)=n-r=4-2=2$。
步骤 5(继续化简到 RREF $R$,让回代更方便):把主元归一化为 1,再把主元上方的元素也消掉。
- 第 2 行除以主元 2:$(0,0,2,4)\to(0,0,1,2)$。
- 消掉第 3 列在第 1 行的元素 $2$:$R_1\leftarrow R_1-2R_2$:
步骤 6(把 $R$ 读成方程):
\[\begin{cases}x_1+2x_2-2x_4=0\\[2pt] x_3+2x_4=0\end{cases}\qquad\Longrightarrow\qquad \begin{cases}x_1=-2x_2+2x_4\\[2pt] x_3=-2x_4\end{cases}\]步骤 7(自由变量轮流取 1,得特殊解):
- 令 $x_2=1,\ x_4=0$:$x_1=-2(1)+2(0)=-2$,$x_3=-2(0)=0$,得
- 令 $x_2=0,\ x_4=1$:$x_1=-2(0)+2(1)=2$,$x_3=-2(1)=-2$,得
步骤 8(代回原矩阵验算——这一步绝不能省):
\[A\mathbf{s}_1=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix}\begin{bmatrix}-2\\1\\0\\0\end{bmatrix}=\begin{bmatrix}1(-2)+2(1)+0+0\\2(-2)+4(1)+0+0\\3(-2)+6(1)+0+0\end{bmatrix}=\begin{bmatrix}-2+2\\-4+4\\-6+6\end{bmatrix}=\begin{bmatrix}0\\0\\0\end{bmatrix}\ \checkmark\] \[A\mathbf{s}_2=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix}\begin{bmatrix}2\\0\\-2\\1\end{bmatrix}=\begin{bmatrix}2+0-4+2\\4+0-12+8\\6+0-16+10\end{bmatrix}=\begin{bmatrix}0\\0\\0\end{bmatrix}\ \checkmark\]步骤 9(一般解与抽查):
\[\mathrm{N}(A)=\left\{c_1\mathbf{s}_1+c_2\mathbf{s}_2:c_1,c_2\in\mathbb{R}\right\}=\operatorname{span}\left\{\begin{bmatrix}-2\\1\\0\\0\end{bmatrix},\begin{bmatrix}2\\0\\-2\\1\end{bmatrix}\right\},\qquad \dim\mathrm{N}(A)=2.\]抽两个非平凡组合核对:$c_1=3,c_2=-5$ 得 $\mathbf{x}=3\mathbf{s}_1-5\mathbf{s}_2=\begin{bmatrix}-6-10\\3\\0+10\\-5\end{bmatrix}=\begin{bmatrix}-16\\3\\10\\-5\end{bmatrix}$,且 $A\mathbf{x}=3A\mathbf{s}_1-5A\mathbf{s}_2=\mathbf{0}$ ✓(用线性性免算)。另一个 $\mathbf{x}=\mathbf{s}_1+\mathbf{s}_2=\begin{bmatrix}0\\1\\-2\\1\end{bmatrix}$,直接代入也得 $\mathbf{0}$ ✓。
【计算机制解说】(本讲第一个解说):为什么”自由变量每个取 1、其余取 0”就足够生成整个零空间?三重理由,从最具体到最抽象:
- 自由度计数:$R$ 有 $r$ 个非零行,$n$ 个未知数,$n-r$ 个自由变量。$R$ 的 $r$ 个方程是互相独立的(每行有一个各不相同的、系数为 1 的主元),所以给定自由变量后,$r$ 个主元变量被 $r$ 个独立方程唯一确定——不是”随便选一组解”,而是”自由变量一动,主元变量跟着唯一地动”。
- 一一对应:$(x_2,x_4)\mapsto\mathbf{x}$ 是 $\mathbb{R}^2\to\mathrm{N}(A)$ 的线性同构(可逆映射,逆映射就是”取第 2、4 个坐标”)。所以 $\mathrm{N}(A)$ 与 $\mathbb{R}^2$ 长得一模一样,$\dim\mathrm{N}(A)=2$。既然参数空间的标准基是 $\mathbf{e}_1,\mathbf{e}_2$,它们的像 $\mathbf{s}_1,\mathbf{s}_2$ 自然是 $\mathrm{N}(A)$ 的基。
- 组合系数就是自由变量:任何一个零空间向量 $\mathbf{x}$,它的自由坐标是 $(x_2,x_4)$,而向量 $x_2\mathbf{s}_1+x_4\mathbf{s}_2$ 的自由坐标也是 $(x_2,x_4)$,两者自由坐标相同;又两者都满足 $R\mathbf{x}=\mathbf{0}$,而主元变量由自由变量唯一决定,所以两者必然相等:$\mathbf{x}=x_2\mathbf{s}_1+x_4\mathbf{s}_2$。这就是”特殊解张成零空间”的完整证明,不需要任何额外的”技巧”。
顺带解释 $\mathbf{s}_k$ 的构造为什么长成”$-F$ 的列 + 单位向量”:在 RREF 里主元变量的系数构成单位阵,所以回代就是把自由列的系数取负号搬到主元位置。于是 $\mathbf{s}_1$ 的主元分量恰好是 $-(\text{$R$ 第 2 列的上面两项})=\begin{bmatrix}-2\\0\end{bmatrix}$,$\mathbf{s}_2$ 的主元分量是 $-(\text{$R$ 第 4 列的上面两项})=\begin{bmatrix}2\\-2\end{bmatrix}$——从 RREF 可以直接抄出特殊解,不必解方程。(核对 $R$ 的第 2 列是 $\begin{bmatrix}2\\0\end{bmatrix}$,取负得 $\begin{bmatrix}-2\\0\end{bmatrix}$ = $\mathbf{s}_1$ 的主元分量 ✓;$R$ 的第 4 列是 $\begin{bmatrix}-2\\2\end{bmatrix}$,取负得 $\begin{bmatrix}2\\-2\end{bmatrix}$ = $\mathbf{s}_2$ 的主元分量 ✓。)
示例 2:$A=\begin{bmatrix}1&2\\2&4\end{bmatrix}$——2×2 秩 1 的最小完整流程
步骤 1(消元到 $U$):乘数 $\ell_{21}=2/1=2$,$R_2\leftarrow R_2-2R_1$:$(2,4)-2(1,2)=(0,0)$。得
\[U=\begin{bmatrix}1&2\\0&0\end{bmatrix}.\]步骤 2(到 RREF):主元已经是 1,下方已消净,所以 $R=U=\begin{bmatrix}1&2\\0&0\end{bmatrix}$。
步骤 3(认列):主元列 = {1},自由列 = {2},$r=1$,$n-r=2-1=1$ 个自由变量 $x_2$。
步骤 4(读方程与回代):$x_1+2x_2=0\Rightarrow x_1=-2x_2$。令 $x_2=1$:
\[\mathbf{s}=\begin{bmatrix}-2\\1\end{bmatrix}.\]步骤 5(验算):$A\mathbf{s}=\begin{bmatrix}1(-2)+2(1)\\2(-2)+4(1)\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}$ ✓;$R\mathbf{s}=\begin{bmatrix}1(-2)+2(1)\\0\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}$ ✓。
步骤 6(几何结论):$\mathrm{N}(A)=\left\{t\begin{bmatrix}-2\\1\end{bmatrix}\right\}$ 是 $\mathbb{R}^2$ 中一条过原点的直线;$\mathbf{s}$ 就是这条直线的”方向向量”,也就是零空间的一组基(只有 1 个向量,因为维数是 1)。注意 $\mathbf{s}$ 的第二个分量取 1 不是”必须”——取 $x_2=5$ 得 $\begin{bmatrix}-10\\5\end{bmatrix}=5\mathbf{s}$ 也行,只是取 1 让基向量最简洁。
【计算机制解说】(本讲第二个解说):为什么最小二乘式的”取 1” 不会重复计数?为什么不需要对自由变量取其他值(比如取 $(2,3)$)来补足解集?因为映射 $\mathbf{x}_{\text{free}}\mapsto\mathbf{x}$ 是线性一一对应,而维数是最强的”不重复”保证:如果 $\mathbf{s}$ 再多一个”独立”的零空间向量,$\dim\mathrm{N}(A)$ 就变成 2 了,与 $n-r=1$ 矛盾。从另一个方向看:任何 $t$ 倍都只是同一个方向的放大,不产生新维度。“需要几个特殊解”这个问题等价于”参数空间有几维”,而后者等于”自由变量有几个”——所以自由变量轮换取一次 1 就正好、且只够。
另外注意示例 2 的一个反直觉现象:$R=U$ 时主元列的系数图案与 $A$ 的列关系一一对应。$R$ 第 2 列是 $\begin{bmatrix}2\\0\end{bmatrix}$,意思是”$A$ 的第 2 列 $=2\times A$ 的第 1 列 $+0\times$ 其他列”,核对:$\begin{bmatrix}2\\4\end{bmatrix}=2\begin{bmatrix}1\\2\end{bmatrix}$ ✓。而特殊解 $\mathbf{s}$ 恰好是把那个系数 $2$ 取负、放在自由位置旁边:$-2\cdot(\text{col}_1)+1\cdot(\text{col}_2)=\mathbf{0}$,也就是 $\text{col}_2=2\,\text{col}_1$。零空间向量就是”列之间的线性关系”本身。 这个观察在讲次 9 会被正式命名为”$A\mathbf{x}=\mathbf{0}$ 的解 = 列的线性相关关系”。
示例 3:秩 1 的 3×3 矩阵与”秩 = 非零行数 = 主元个数”
取
\[B=\begin{bmatrix}1&2&3\\2&4&6\\1&2&3\end{bmatrix}.\]步骤 1(消元):
[ 1 2 3 ] R2 -= 2*R1 -> [ 0 0 0 ]
[ 2 4 6 ] R3 -= 1*R1 -> [ 0 0 0 ]
[ 1 2 3 ]
得 $U=\begin{bmatrix}1&2&3\\0&0&0\\0&0&0\end{bmatrix}$,它同时也是 $R$(主元已是 1,下方全零,上方也没有别的行)。
步骤 2(认列):主元列 = {1},自由列 = {2, 3},$r=1$,自由变量 $x_2,x_3$,$\dim\mathrm{N}(B)=3-1=2$。
步骤 3(取特殊解):$R$ 只给出 $x_1+2x_2+3x_3=0$,即 $x_1=-2x_2-3x_3$。
- $x_2=1,x_3=0$:$x_1=-2$,得 $\mathbf{s}_1=\begin{bmatrix}-2\\1\\0\end{bmatrix}$;
- $x_2=0,x_3=1$:$x_1=-3$,得 $\mathbf{s}_2=\begin{bmatrix}-3\\0\\1\end{bmatrix}$。
步骤 4(验算):$B\mathbf{s}_1=\begin{bmatrix}-2+2+0\\-4+4+0\\-2+2+0\end{bmatrix}=\mathbf{0}$ ✓,$B\mathbf{s}_2=\begin{bmatrix}-3+0+3\\-6+0+6\\-3+0+3\end{bmatrix}=\mathbf{0}$ ✓。
步骤 5(”秩 = 非零行数 = 主元个数”的三重刻画):
秩的四个等价说法(对同一个矩阵 B):
① r = U 中非零行的个数 = 1
② r = 主元的个数 = 1
③ r = 主元列的个数 = 1 (只有第 1 列)
④ r = dim C(B) = 列空间维数 = 1 (C(B) = 直线 t[1,2,1])
并且: dim N(B) = n - r = 3 - 1 = 2 (# 自由变量 = # 特殊解 = # 自由列)
行空间维数 = r = 1(方向 [1,2,3],即"行方向")
步骤 6(无消元也看得出的道理):$B=\mathbf{u}\mathbf{v}^{\mathsf T}$,其中 $\mathbf{u}=\begin{bmatrix}1\\2\\1\end{bmatrix},\mathbf{v}=\begin{bmatrix}1\\2\\3\end{bmatrix}$(因为每行都是 $[1,2,3]$ 的倍数,每列都是 $[1,2,1]$ 的倍数)。于是
\[B\mathbf{x}=\mathbf{u}(\mathbf{v}^{\mathsf T}\mathbf{x})=(x_1+2x_2+3x_3)\begin{bmatrix}1\\2\\1\end{bmatrix},\]$B\mathbf{x}=\mathbf{0}\iff x_1+2x_2+3x_3=0$,一眼看出零空间是平面、维数 2。这就是”每个自由列对应一个多出来的方向”的最强形式:秩 1 矩阵有 $n-1$ 个多出来的方向,所以零空间是 $n-1$ 维的超平面。
【计算机制解说】(本讲第三个解说,补充说明”自由列 = 冗余方向”):为什么”自由列的个数”与”零空间维数”必然相等?看消元过程:每当算法在某一列找不到主元(该列在主元行及以下全是零),就意味着这一列可以被前面已经处理过的列线性组合出来(在 $R$ 中它等于若干主元列的系数组合)——它没有给列空间贡献新的维度。设这样的列为 $f_1,\dots,f_{n-r}$,每一列都对应一个”读出系数、取负、放到自由位置”的零空间向量,而且这些向量在自由坐标上互不相同(第 $k$ 个向量的自由坐标是 $\mathbf{e}_k$),所以它们线性无关。另一方面,任何一个零空间向量都由 $R$ 的 $r$ 个方程约束,$r$ 个独立方程把 $n$ 维压到 $n-r$ 维,所以维数至多 $n-r$。上下夹逼:维数恰好 $n-r$,且上面构造的 $n-r$ 个向量正好是一组基。“消元找不到主元”和”这一列是多余的”是同一件事的两种描述——这是本讲最应该记住的一句话。
示例 4(稀疏例子,看清主元列可以不相邻):$C=\begin{bmatrix}0&1&2\\0&2&4\end{bmatrix}$
步骤 1(第 1 列全是零):第 1 列在(第 1 行,第 1 列)处是 $0$,没有可用的主元(下方也是 $0$),所以第 1 列是自由列,消元向右看第 2 列。
步骤 2(取第 2 列为主元列):主元 $=1$(在第 1 行第 2 列)。乘数 $\ell=2/1=2$,$R_2\leftarrow R_2-2R_1$:$(0,2,4)-2(0,1,2)=(0,0,0)$。
\[U=R=\begin{bmatrix}0&1&2\\0&0&0\end{bmatrix}.\]步骤 3(认列):主元列 = {2},自由列 = {1, 3},$r=1$,$\dim\mathrm{N}(C)=3-1=2$。
步骤 4(回代):$R$ 的方程是 $x_2+2x_3=0$,即 $x_2=-2x_3$;第 1 列没有方程约束它,所以 $x_1$ 也是自由的(它不出现在任何方程里)。
- $x_1=1,x_3=0$:$x_2=0$,得 $\mathbf{s}_1=\begin{bmatrix}1\\0\\0\end{bmatrix}$;
- $x_1=0,x_3=1$:$x_2=-2$,得 $\mathbf{s}_2=\begin{bmatrix}0\\-2\\1\end{bmatrix}$。
步骤 5(验算):$C\mathbf{s}_1=\begin{bmatrix}0(1)+1(0)+2(0)\\0(1)+2(0)+4(0)\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}$ ✓;$C\mathbf{s}_2=\begin{bmatrix}0+1(-2)+2(1)\\0+2(-2)+4(1)\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}$ ✓。
步骤 6(教训):自由变量不一定”排在后面”。这里 $x_1$ 是自由变量,特殊解的第一个分量是 1 而不是 0。做题时必须以消元后主元的位置为准,不能想当然地以为”自由变量就是后面几个”。
示例 5:需要行交换的矩阵 $D=\begin{bmatrix}1&2&3\\2&4&6\\0&1&1\end{bmatrix}$——主元破裂与 $PA=LU$
前面所有例子的主元都恰好非零、不需要换行。这个例子专门演示”位置上的元素是 $0$,但这一列其实还有非零元”的情形。
步骤 1(第一列消元):主元 $d_{11}=1$;乘数 $\ell_{21}=2$,$R_2\leftarrow R_2-2R_1$:
\[R_2=(2,4,6)-2(1,2,3)=(0,0,0).\]$R_3$ 的第一列本来就是 $0$,乘数 $\ell_{31}=0$,无需操作。此时
[ 1 2 3 ]
[ 0 0 0 ] <- 第 2 行整行变成 0
[ 0 1 1 ]
步骤 2(主元破裂,需要行交换):第 2 列在位置 $(2,2)$ 上是 $0$,不能拿它当主元。但往下看位置 $(3,2)$ 是 $1\neq 0$,所以交换第 2、3 行:
[ 1 2 3 ]
[ 0 1 1 ] <- 原来的第 3 行升上来
[ 0 0 0 ] <- 原来的第 2 行沉下去
现在主元是 $(2,2)$ 处的 $1$;该行下方是 $0$,不需要再消元。
步骤 3(化到 RREF,向上消元):$R_1\leftarrow R_1-2R_2$:
\[R_1=(1,2,3)-2(0,1,1)=(1,0,1).\] \[R=\begin{bmatrix}1&0&1\\0&1&1\\0&0&0\end{bmatrix}.\]步骤 4(认列与求特殊解):主元列 $=\{1,2\}$,自由列 $=\{3\}$,$r=2$,$\dim\mathrm{N}(D)=3-2=1$。RREF 给出 $x_1+x_3=0$、$x_2+x_3=0$,即 $x_1=-x_3$、$x_2=-x_3$。令 $x_3=1$:
\[\mathbf{s}=\begin{bmatrix}-1\\-1\\1\end{bmatrix}.\]步骤 5(验算):
\[D\mathbf{s}=\begin{bmatrix}1(-1)+2(-1)+3(1)\\2(-1)+4(-1)+6(1)\\0(-1)+1(-1)+1(1)\end{bmatrix}=\begin{bmatrix}-1-2+3\\-2-4+6\\-1+1\end{bmatrix}=\begin{bmatrix}0\\0\\0\end{bmatrix}\ \checkmark\]步骤 6(回到列关系,验证符号约定):$\mathbf{s}=\begin{bmatrix}-1\\-1\\1\end{bmatrix}\in\mathrm{N}(D)$ 说的是 $-\mathbf{d}_1-\mathbf{d}_2+\mathbf{d}_3=\mathbf{0}$,即
\[\mathbf{d}_3=\mathbf{d}_1+\mathbf{d}_2=\begin{bmatrix}1\\2\\0\end{bmatrix}+\begin{bmatrix}2\\4\\1\end{bmatrix}=\begin{bmatrix}3\\6\\1\end{bmatrix}\ \checkmark\]而 $R$ 的第 3 列是 $\begin{bmatrix}1\\1\\0\end{bmatrix}$,说的是”$\mathbf{d}_3=1\cdot\mathbf{d}_1+1\cdot\mathbf{d}_2$”——两种写法完全一致($R$ 记录正系数,特殊解记录取负后的系数)。所以看到 $\mathbf{s}=\begin{bmatrix}-1\\-1\\1\end{bmatrix}$ 时不要慌,它与”第 3 列 $=$ 第 1 列 $+$ 第 2 列”是同一句话。
步骤 7($PA=LU$ 的形式):因为交换了第 2、3 行,严格写出来是 $PA=LU$,其中
\[P=\begin{bmatrix}1&0&0\\0&0&1\\0&1&0\end{bmatrix},\qquad L=\begin{bmatrix}1&0&0\\0&1&0\\2&0&1\end{bmatrix},\qquad U=\begin{bmatrix}1&2&3\\0&1&1\\0&0&0\end{bmatrix}.\]($L$ 的第 3 行记录”原第 2 行减去 $2\times$第 1 行”,乘数 $2$ 落在被交换后的第 3 行位置。)关键结论:置换矩阵 $P$ 只是给方程重新编号,零空间不变——所以算法允许行交换,我们的 $\mathrm{N}(D)=\mathrm{N}(U)=\operatorname{span}\{\mathbf{s}\}$ 一如既往。
【计算机制解说】:为什么允许行交换,而不允许列交换(或者说列交换后必须记下来)?
- 行交换 = 重新排列方程的顺序。方程组 $\{R_1,R_2,R_3\}$ 与 $\{R_3,R_2,R_1\}$ 的解集显然完全一样。所以 $\mathrm{N}(A)$ 不变,我们的算法有恃无恐。代数上,行交换就是左乘一个置换矩阵 $P$(可逆),所以 $\mathrm{N}(PA)=\mathrm{N}(A)$。
- 列交换 = 重新排列未知数的顺序。例如交换第 1、2 列后,解出来的向量是 $(x_2,x_1,x_3)$ 的顺序,必须换回原顺序才能作为原问题的解。所以列交换不是禁忌,而是”要记账”。这就是”部分选主元(partial pivoting)”只选行使算法稳定的原因:行交换既保证了数值稳定性(把主元位置上的绝对值最大者换上来,避免除以很小的数),又完全不改变解集。
- 一个有用的推论:上面示例 4 中 $C=\begin{bmatrix}0&1&2\\0&2&4\end{bmatrix}$ 的第 1、3 列都是自由列(第 1 列全零、第 3 列是第 2 列的 2 倍),示例 5 中 $D$ 的第 3 列是自由列——由此可见凡是在主元行及其下方全为 $0$ 的列,必然是自由列,对应变量必然自由。反之,主元列一定是”能带来新方向”的列。行交换永远不会把一个自由列变成主元列——它只重排行的顺序,不改变每一列的元素集合。
示例 6:$3\times 5$ 矩阵 $B$——自由变量多于主元变量的”最坏情形”
\[B=\begin{bmatrix}1&3&0&2&1\\0&0&1&4&2\\1&3&1&6&3\end{bmatrix}.\]这个矩阵的形状是 $m=3,n=5$,主元最多只能有 $3$ 个,所以自由变量至少有 $5-3=2$ 个。我们算算实际有几个。
步骤 1(消元):$B$ 的第 1 行已经是好的主元行(主元 $1$ 在位置 $(1,1)$)。$R_3\leftarrow R_3-1\cdot R_1$:
\[R_3=(1,3,1,6,3)-(1,3,0,2,1)=(0,0,1,4,2).\]现在
[ 1 3 0 2 1 ]
[ 0 0 1 4 2 ]
[ 0 0 1 4 2 ]
步骤 2(第 2 列无主元,跳到第 3 列):第 2 列在 2、3 行都是 $0$,自由列。位置 $(2,3)$ 上是 $1$,取为主元。$R_3\leftarrow R_3-R_2$ 得零行:
\[U=\begin{bmatrix}1&3&0&2&1\\0&0&1&4&2\\0&0&0&0&0\end{bmatrix}.\]$U$ 已经满足”主元为 1、主元上方为 0”(第 1 行第 3 列本来就是 $0$),所以 $R=U$。
步骤 3(认列):主元列 $=\{1,3\}$,自由列 $=\{2,4,5\}$,$r=2$,$n=5$,所以
\[\dim\mathrm{N}(B)=5-2=3\ \ (\text{正好等于最少的 2?不,是 }3>2\text{,因为只找到了 }2\text{ 个主元}).\]步骤 4(三个自由变量轮流取 1):
\[\begin{cases}x_1+3x_2+2x_4+x_5=0\ \Rightarrow\ x_1=-3x_2-2x_4-x_5\\[2pt] x_3+4x_4+2x_5=0\ \Rightarrow\ x_3=-4x_4-2x_5\end{cases}\]- $x_2=1,x_4=0,x_5=0$:$x_1=-3,\ x_3=0$,得 $\mathbf{s}_1=\begin{bmatrix}-3\\1\\0\\0\\0\end{bmatrix}$;
- $x_2=0,x_4=1,x_5=0$:$x_1=-2,\ x_3=-4$,得 $\mathbf{s}_2=\begin{bmatrix}-2\\0\\-4\\1\\0\end{bmatrix}$;
- $x_2=0,x_4=0,x_5=1$:$x_1=-1,\ x_3=-2$,得 $\mathbf{s}_3=\begin{bmatrix}-1\\0\\-2\\0\\1\end{bmatrix}$。
步骤 5(验算三个特殊解,逐个代回原矩阵):
\[B\mathbf{s}_1=\begin{bmatrix}1(-3)+3(1)\\0\\1(-3)+3(1)\end{bmatrix}=\begin{bmatrix}0\\0\\0\end{bmatrix}\ \checkmark\qquad B\mathbf{s}_2=\begin{bmatrix}-2+2\\-4+4\\-2+1(-4)+1\\ \end{bmatrix}\ \text{逐项算:}\]具体地,$B\mathbf{s}_2$ 的三个分量:
- 第 1 行:$1(-2)+3(0)+0(-4)+2(1)+1(0)=-2+2=0$ ✓
- 第 2 行:$0+0+1(-4)+4(1)+2(0)=-4+4=0$ ✓
- 第 3 行:$1(-2)+3(0)+1(-4)+6(1)+3(0)=-2-4+6=0$ ✓
$B\mathbf{s}_3$:
- 第 1 行:$1(-1)+3(0)+0(-2)+2(0)+1(1)=-1+1=0$ ✓
- 第 2 行:$0+0+1(-2)+4(0)+2(1)=-2+2=0$ ✓
- 第 3 行:$1(-1)+0+1(-2)+6(0)+3(1)=-1-2+3=0$ ✓
任意组合也自动为零:例如 $\mathbf{x}=2\mathbf{s}_1+\mathbf{s}_2+0.5\mathbf{s}_3=\begin{bmatrix}-8.5\\2\\-5\\1\\0.5\end{bmatrix}$,由线性性 $B\mathbf{x}=2B\mathbf{s}_1+B\mathbf{s}_2+0.5B\mathbf{s}_3=\mathbf{0}$ ✓。
步骤 6(结论与 $A=\mathrm{CR}$ 核验):
\[\mathrm{N}(B)=\operatorname{span}\{\mathbf{s}_1,\mathbf{s}_2,\mathbf{s}_3\},\qquad \dim\mathrm{N}(B)=3.\]主元列是 $B$ 的第 1、3 列:$\begin{bmatrix}1\\0\\1\end{bmatrix}$ 与 $\begin{bmatrix}0\\1\\1\end{bmatrix}$,它们构成
\[C=\begin{bmatrix}1&0\\0&1\\1&1\end{bmatrix},\qquad R_{\text{nz}}=\begin{bmatrix}1&3&0&2&1\\0&0&1&4&2\end{bmatrix},\qquad C\,R_{\text{nz}}=\begin{bmatrix}1&3&0&2&1\\0&0&1&4&2\\1&3&1&6&3\end{bmatrix}=B\ \checkmark\](逐项抽验:$(CR){1,5}=1\cdot 1+0\cdot 2=1$ ✓;$(CR){3,4}=1\cdot 2+1\cdot 4=6$ ✓;$(CR)_{3,3}=1\cdot 0+1\cdot 1=1$ ✓。)自由列的系数就写在 $R_{\text{nz}}$ 里:第 2 列 $=\begin{bmatrix}3\\0\end{bmatrix}$ 表示 $\mathbf{b}_2=3\mathbf{b}_1$;第 4 列 $=\begin{bmatrix}2\\4\end{bmatrix}$ 表示 $\mathbf{b}_4=2\mathbf{b}_1+4\mathbf{b}_3$;第 5 列 $=\begin{bmatrix}1\\2\end{bmatrix}$ 表示 $\mathbf{b}_5=\mathbf{b}_1+2\mathbf{b}_3$。取负号就得到 $\mathbf{s}_1,\mathbf{s}_2,\mathbf{s}_3$ 的主元分量——一一对应,毫无例外。
【计算机制解说】:三个自由变量、三个特殊解、维数 3——这个例子最清楚地显示了”主元最多只有 $m$ 个“这个上限的威力。$B$ 是 $3$ 行,所以主元最多 3 个;实际上只有 2 个(第 2 列没贡献),所以零空间维数 $=5-2=3$。一般地:
\[\dim\mathrm{N}(A)=n-r\ \ge\ n-m\quad(\text{因为 }r\le m),\qquad \dim\mathrm{N}(A)\le n\quad(\text{因为 }r\ge 0).\]对一个 $3\times 5$ 矩阵,零空间维数至少是 $5-3=2$——它不可能只有零解! 这是”方程个数少于未知数个数时必有非零解”的线性代数版本($3$ 个方程约束不住 $5$ 个未知数)。更一般地:
- 若 $n>m$(列多于行),则 $\dim\mathrm{N}(A)=n-r\ge n-m>0$,方程组 $A\mathbf{x}=\mathbf{0}$ 必有非零解,且 $A$ 的列必定线性相关($n$ 个向量住在 $\mathbb{R}^m$ 里,$n>m$ 时必相关)。
- 若 $n\le m$,则 $r=n$(零空间只有零)是可能的,但需要 $A$ 的列线性无关。此时主元列有 $n$ 个、自由列一个也没有、特殊解一个也没有,$\mathrm{N}(A)=\{\mathbf{0}\}$。本讲特意选的都是有自由变量的例子(因为主题是”怎么求非平凡的零空间”),但你要记住这种”空零空间”的极端情形是存在的。
- 判断”一定有非零解”的最快方法:看 $n>m$ 是否成立。列数大于行数 $\Rightarrow r\le m<n\Rightarrow\dim\mathrm{N}(A)\ge 1$。
示例 7:快速对照表——把小矩阵的零空间一次性算完
把本讲与上一讲出现过的矩阵汇总,用同一套流程核对(建议自己盖住答案重算一遍):
矩阵 A 形状 r 主元列 自由列 dim N(A)=n-r 特殊解
---------------------------------------------------------------------------------------
[1 2 ; 2 4] 2x2 1 {1} {2} 1 [-2,1]
[1 2 ; 3 7] 2x2 2 {1,2} {} 0 (没有:N={0})
[1 2 3 ; 2 4 7] 2x3 2 {1,3} {2} 1 [-2,1,0]
[1 2 3 ; 2 4 6 ; 1 2 3] 3x3 1 {1} {2,3} 2 [-2,1,0], [-3,0,1]
[1 2 3 ; 2 4 6 ; 0 1 1] 3x3 2 {1,2} {3} 1 [-1,-1,1]
[1 2 2 2; 2 4 6 8; 3 6 8 10] 3x4 2 {1,3} {2,4} 2 [-2,1,0,0], [2,0,-2,1]
[0 1 2 ; 0 2 4] 2x3 1 {2} {1,3} 2 [1,0,0], [0,-2,1]
[1 3 0 2 1; 0 0 1 4 2; 1 3 1 6 3] 3x5 2 {1,3} {2,4,5} 3 [-3,1,0,0,0],[-2,0,-4,1,0],[-1,0,-2,0,1]
---------------------------------------------------------------------------------------
每一行都满足: r + dim N(A) = n , #特殊解 = #自由列 = n - r
这张表最值得看的三件事:
- 零空间维数只由 $n-r$ 决定,与矩阵的”长相”无关。$3\times 3$ 秩 2 的矩阵与 $2\times 3$ 秩 2 的矩阵,零空间维数都是 1。
- 有且仅当 $r=n$ 时零空间是 $\{\mathbf{0}\}$(表中第二行),此时所有列都是主元列、没有自由变量、没有特殊解。
- 自由列的位置可以任意(第 1 列、中间列、末尾列都能当自由列),所以”自由变量是后面几个”这种直觉是错的;表里第三行和第 3×5 行都是自由列夹在主元列中间。
矩阵分解的核心思想
本讲的主线是”$R$(RREF)是零空间的透明化“,它同时把三种分解串了起来:
- $A=\mathrm{LU}$(消元分解):$L$ 可逆 ⟹ $\mathrm{N}(A)=\mathrm{N}(U)$。这是算法合法性的来源。本讲示例 1 算出的 $L=\begin{bmatrix}1&0&0\\2&1&0\\3&1&1\end{bmatrix}$ 与其乘积已逐项核对。若 $A$ 需要行交换,对应 $PA=\mathrm{LU}$,零空间同样不变(置换只是给变量重新编号)。
$A=\mathrm{CR}$($r$ 个主元列 $\times$ RREF 的非零行,讲次 11 正式提出):本讲已经把它算出来了。对示例 1:
\[C=\begin{bmatrix}1&2\\2&6\\3&8\end{bmatrix}\ (\text{取 }A\text{ 的第 1、3 列}),\qquad R_{\text{nz}}=\begin{bmatrix}1&2&0&-2\\0&0&1&2\end{bmatrix}\ (\text{取 RREF 的前 2 行}),\] \[C\,R_{\text{nz}}=\begin{bmatrix}1&2\\2&6\\3&8\end{bmatrix}\begin{bmatrix}1&2&0&-2\\0&0&1&2\end{bmatrix}=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix}=A\ \checkmark\]这个分解的全部内容就是”$A$ 的每一列都是主元列的线性组合,而 RREF 的对应列记录了系数”——自由列的系数(第 2 列是 $\begin{bmatrix}2\\0\end{bmatrix}$,第 4 列是 $\begin{bmatrix}-2\\2\end{bmatrix}$)恰恰与两个特殊解的构造一一对应。$A=\mathrm{CR}$ 说明 $\mathrm{C}(A)=\mathrm{C}(C)$,即列空间由主元列张成,$\dim\mathrm{C}(A)=r$。
- 秩 1 分解 $A=\sum_{k}\mathbf{u}_k\mathbf{v}_k^{\mathsf T}$:示例 3 的 $B=\mathbf{u}\mathbf{v}^{\mathsf T}$ 是它的最小单元;$A=\mathrm{CR}$ 其实就是把它组装成 $r$ 项,”积木”数正好是秩。
- $R$ 与 $A$ 的关系(一个重要区分):$R=E A$($E$ 可逆),所以 $\mathrm{N}(R)=\mathrm{N}(A)$、行空间相同(行空间只做行变换不变);但 $\mathrm{C}(R)\neq\mathrm{C}(A)$(示例 1:$\mathrm{C}(R)$ 由 $\begin{bmatrix}1\\0\\0\end{bmatrix},\begin{bmatrix}0\\1\\0\end{bmatrix}$ 张成,是 $xy$ 平面;$\mathrm{C}(A)$ 由 $\begin{bmatrix}1\\2\\3\end{bmatrix},\begin{bmatrix}2\\6\\8\end{bmatrix}$ 张成,是另一张平面)。但列关系相同:$R$ 与 $A$ 的同一组列满足同样的线性关系。$R$ 是一台”能读关系、但换了坐标系”的机器。
- 后续分解的伏笔:到了讲次 14-17,$\mathrm{N}(A)\perp\mathrm{C}(A^{\mathsf T})$ 会把零空间与正交投影、最小二乘、$\mathrm{QR}$ 分解连起来;到了讲次 29,SVD 会给出”最优的正交积木分解”。而它们全都建立在”$\mathrm{N}(A)$ 是 $n-r$ 维、由特殊解张成”这个本讲结论上。
与其他讲次的关联
- 与讲次 5-6(消元、$A=\mathrm{LU}$、列空间与零空间):本讲是上一讲的算法化。上一讲用手算 2×2、3×3;本讲给出对任意 $m\times n$ 都通用的流程,并把”被压掉几维”变成可数的量 $\#\{\text{自由列}\}$。
- 与讲次 8(求解 $A\mathbf{x}=\mathbf{b}$:特解 + 零空间):$A\mathbf{x}=\mathbf{b}$ 的完整解是 $\mathbf{x}=\mathbf{x}_p+\mathrm{N}(A)$,其中 $\mathbf{x}_p$ 是把所有自由变量置 0 后回代得到的特解。所以本讲算出的 $\mathbf{s}_1,\mathbf{s}_2$ 是把特解”铺开”的全部工具。可解性判据:$\mathbf{b}$ 必须能被主元列组合出来(等价地 $\mathbf{b}\perp\mathrm{N}(A^{\mathsf T})$)。
- 与讲次 9(线性无关、基、维数):本讲用到的核心概念在这里被正式定义。$\{\mathbf{s}1,\dots,\mathbf{s}{n-r}\}$ 是 $\mathrm{N}(A)$ 的基(无关 + 张成);主元列是 $\mathrm{C}(A)$ 的基;$r$ 的性质由此展开:任何 $n+1$ 个 $\mathbb{R}^n$ 中的向量必相关。
- 与讲次 10(四个基本子空间):本讲的所有计数在这里被拼成一张完整图:$\dim\mathrm{C}(A)=\dim\mathrm{C}(A^{\mathsf T})=r$,$\dim\mathrm{N}(A)=n-r$,$\dim\mathrm{N}(A^{\mathsf T})=m-r$,且 $\mathbb{R}^n=\mathrm{C}(A^{\mathsf T})\oplus\mathrm{N}(A)$、$\mathbb{R}^m=\mathrm{C}(A)\oplus\mathrm{N}(A^{\mathsf T})$。本讲算的是右零空间 $n-r$,讲次 8-10 会提醒你左零空间是 $m-r$,两者不能混。
- 与讲次 11(矩阵空间与 $A=\mathrm{CR}$):本讲的”主元列 $\times$ RREF 非零行”就是 $A=\mathrm{CR}$ 的实例,讲次 11 会把它提升为一般框架(并对矩阵空间、图与网络应用)。
- 与讲次 14-17(正交、投影、最小二乘、$\mathrm{QR}$):$\mathrm{N}(A)$ 与 $\mathrm{C}(A^{\mathsf T})$ 正交互补是这些章节的起点;求解 $A^{\mathsf T}A\hat{\mathbf{x}}=A^{\mathsf T}\mathbf{b}$ 时 $\mathrm{N}(A^{\mathsf T}A)=\mathrm{N}(A)$ 这一事实(本讲算法的直接推论)保证了正规方程有唯一解(当 $A$ 列满秩、$r=n$、$\mathrm{N}(A)=\{\mathbf{0}\}$ 时)。
- 与讲次 21-25(特征值):$\mathrm{N}(A-\lambda I)$ 是特征空间;$\lambda=0$ 的特征空间就是本讲的 $\mathrm{N}(A)$,$\dim\mathrm{N}(A)>0\iff A$ 奇异 $\iff 0$ 是特征值。本讲的”特殊解”会在对角化($A=S\Lambda S^{-1}$)里以”特征向量”的身份重新出现。
- 与讲次 30-33(线性变换、伪逆):本讲的”自由变量参数化”就是线性映射 $A:\mathbb{R}^n\to\mathbb{R}^m$ 的核(kernel);”$\mathbf{x}_{\text{free}}\mapsto\mathbf{x}$”那个一一对应是核的参数化,其逆就是取坐标,正是伪逆 $A^{+}$ 思想的萌芽。
关键要点
- 算法三步走:消元 → $U$ / RREF $R$ → 认列(主元列 / 自由列)。秩 $r=$ 主元个数 $=$ $U$ 的非零行数 $=$ $\dim\mathrm{C}(A)$。
- 特殊解配方:令一个自由变量 $=1$、其余自由变量 $=0$,回代解出主元变量。每个自由变量恰好对应一个特殊解。 从 RREF 可以抄:$\mathbf{s}_k=\begin{bmatrix}-(R\ \text{第}\ f_k\ \text{列的上面}\ r\ \text{项})\\ \mathbf{e}_k\end{bmatrix}$。
- 核心公式:$\mathrm{N}(A)=\operatorname{span}\{\mathbf{s}1,\dots,\mathbf{s}{n-r}\}$,$\dim\mathrm{N}(A)=n-r=$ 自由变量个数 $=$ 自由列个数。组合系数就是自由变量的取值。
- 机制的根:RREF 分块形式 $R=\begin{bmatrix}I_r&F\end{bmatrix}$ 给出 $\mathbf{x}{\text{pivot}}=-F\mathbf{x}{\text{free}}$——自由变量任取,主元变量被唯一决定,这就是零空间是 $n-r$ 维参数族(以及特殊解构成基)的完整理由。
- 消元不变零空间:$\mathrm{N}(A)=\mathrm{N}(U)=\mathrm{N}(R)$(因为 $U=L^{-1}A$、$L$ 可逆);但 $\mathrm{C}(A)\neq\mathrm{C}(U)$ 一般成立。列空间会被消元改变,列关系不会。
- 可解性联系(预告):$A\mathbf{x}=\mathbf{b}$ 有解 $\iff$ 消元时 $\mathbf{b}$ 不产生矛盾行 $0=1$ $\iff$ $\mathbf{b}\in\mathrm{C}(A)$;有解时解集 $=\mathbf{x}_p+\mathrm{N}(A)$,维数 $n-r$。
常见误区与注意事项
- 把”自由变量一定在后面”当成规律。示例 4 中 $C=\begin{bmatrix}0&1&2\\0&2&4\end{bmatrix}$ 的第 1 列就是自由列,自由变量是 $x_1$ 与 $x_3$。必须以主元位置为准。另一类常见坑是列交换:如果为了消元而交换了两列,最后要把变量顺序换回来,否则特殊解写错了自己都不知道。
- 忘记”自由变量要轮流取一组基”,而只取一组值。常见错误是只写一个特殊解(比如只令 $x_2=1,x_4=0$)就说”这就是零空间”。正确的语句是”$\mathrm{N}(A)$ 由 $\mathbf{s}1,\dots,\mathbf{s}{n-r}$ 张成”,维数是 $n-r$,少了向量维数就不够。
- 算完特殊解不代回原矩阵验算。RREF 算错一格,特殊解就全错。必须用原矩阵 $A$(不是 $U$、不是 $R$)去乘特殊解,验证得 $\mathbf{0}$。本讲示例 1 的 $\mathbf{s}_1,\mathbf{s}_2$ 都已逐项代回验算。
- 用 $U$ 而不是 $R$ 回代时把系数搞错。用 $U$ 也能回代,但 $U$ 的主元不一定是 1、且主元上方还有非零元,回代要从下往上依次代入,容易出错。建议统一化到 RREF:主元为 1、主元上方也清成 0,于是每个方程直接是 “主元变量 = 自由变量的线性组合”。
- 混淆右零空间与左零空间。本讲算的是 $\mathrm{N}(A)\subseteq\mathbb{R}^n$、维数 $n-r$。若题目问 $\mathrm{N}(A^{\mathsf T})$,那是 $\mathbb{R}^m$ 中维数 $m-r$ 的空间,必须对 $A^{\mathsf T}$(或对 $A$ 做列变换)重新算,不能直接把 $n-r$ 拿来用。典型例子:示例 1 的 $A$ 是 $3\times 4$,$\dim\mathrm{N}(A)=4-2=2$,而 $\dim\mathrm{N}(A^{\mathsf T})=3-2=1$——两个数完全不同。
- 以为”有自由变量就意味着无解”。自由变量只影响 $\mathrm{N}(A)$ 的维数(解的唯一性),不影响存在性。$A\mathbf{x}=\mathbf{b}$ 无解是由矛盾行 $0=c$($c\neq 0$)判定的;一旦有解且有自由变量,就有无穷多解。
- 把”特殊解”与”单位向量”混淆。特殊解 $\mathbf{s}_k$ 只在自由坐标上是 $\mathbf{e}_k$,在主元坐标上一般不是 0(示例 1 的 $\mathbf{s}_1$ 的主元分量是 $-2,0$)。写答案时别只写 $\mathbf{e}_1,\mathbf{e}_2$。
- 对非零右端 $\mathbf{b}$ 用特殊解当解。特殊解满足 $A\mathbf{s}=\mathbf{0}$,只用于齐次问题。非齐次要先求特解 $\mathbf{x}_p$,再加 $\mathrm{N}(A)$ 的组合(这就是下一讲)。
思考题(带答案)
Q1(纯计算). 对
\[A=\begin{bmatrix}1&2&2&2\\2&4&6&8\\3&6&8&10\end{bmatrix}\](a) 写出 RREF $R$;(b) 指出主元列与自由列;(c) 求 $\mathrm{N}(A)$ 的一组基(特殊解)并给出 $\dim\mathrm{N}(A)$;(d) 若把 $A$ 改为 $4\times 5$ 的矩阵 $A^{\prime}=\begin{bmatrix}A&\mathbf{0}\end{bmatrix}$(即追加一列全零),$\dim\mathrm{N}(A^{\prime})$ 是多少?
答案
**(a)** 消元(详见正文示例 1):$R_2\\leftarrow R_2-2R_1$ 得 $(0,0,2,4)$;$R_3\\leftarrow R_3-3R_1$ 得 $(0,0,2,4)$;$R_3\\leftarrow R_3-R_2$ 得零行;第 2 列无主元,主元在第 3 列(值 2)。归一化并向上消元: $$R=\begin{bmatrix}1&2&0&-2\\0&0&1&2\\0&0&0&0\end{bmatrix}.$$ **(b)** 主元列 $=\\{1,3\\}$;自由列 $=\\{2,4\\}$;$r=2$,$n=4$。**核对**:$R$ 的第 1、3 列构成单位阵(阶梯状),这是主元列的判据。 **(c)** 方程:$x_1=-2x_2+2x_4$,$x_3=-2x_4$。 - $x_2=1,x_4=0$:$\\mathbf{s}_1=\\begin{bmatrix}-2\\\\1\\\\0\\\\0\\end{bmatrix}$,验算 $A\\mathbf{s}_1=\\begin{bmatrix}-2+2\\\\-4+4\\\\-6+6\\end{bmatrix}=\\mathbf{0}$ ✓; - $x_2=0,x_4=1$:$\\mathbf{s}_2=\\begin{bmatrix}2\\\\0\\\\-2\\\\1\\end{bmatrix}$,验算 $A\\mathbf{s}_2=\\begin{bmatrix}2-4+2\\\\4-12+8\\\\6-16+10\\end{bmatrix}=\\mathbf{0}$ ✓。 $$\mathrm{N}(A)=\operatorname{span}\{\mathbf{s}_1,\mathbf{s}_2\},\qquad \dim\mathrm{N}(A)=n-r=4-2=2.$$ (另法核对:从 $R$ 抄——$R$ 第 2 列 $=\\begin{bmatrix}2\\\\0\\end{bmatrix}$ 取负得 $\\mathbf{s}_1$ 的主元分量 $\\begin{bmatrix}-2\\\\0\\end{bmatrix}$;$R$ 第 4 列 $=\\begin{bmatrix}-2\\\\2\\end{bmatrix}$ 取负得 $\\begin{bmatrix}2\\\\-2\\end{bmatrix}$ ✓。) **(d)** $A^{\\prime}=\\begin{bmatrix}A&\\mathbf{0}\\end{bmatrix}$ 是 $3\\times 5$(在 $A$ 的右边追加**一列**全零,行数不变)。新列是全零列,消元时它当然找不到主元,所以它是**自由列**。$r$ 不变(仍为 2),$n$ 变成 5,故 $$\dim\mathrm{N}(A^{\prime})=n^{\prime}-r=5-2=3.$$ 新增的特殊解是 $\\mathbf{s}_3=\\begin{bmatrix}0\\\\0\\\\0\\\\0\\\\1\\end{bmatrix}$(令新的自由变量 $=1$,其余自由变量 $=0$,原主元变量全为 0),且 $A^{\\prime}\\mathbf{s}_3=\\mathbf{0}$ ✓。**教训:加一个零列,零空间维数就加 1,因为多了一个完全冗余的方向。**Q2(概念 + 计算). 设 $A$ 是 $5\times 3$ 矩阵,消元后 RREF 为
\[R=\begin{bmatrix}1&0&-1\\0&1&2\\0&0&0\\0&0&0\\0&0&0\end{bmatrix}.\](a) 求 $\mathrm{N}(A)$、$\dim\mathrm{N}(A)$、$\mathrm{C}(A)$ 的维数;(b) 至少写出一个零空间向量并验算它确实给出列之间的线性关系;(c) 有人说”因为 $A$ 有 5 行,所以 $\dim\mathrm{N}(A)$ 应该是 $5-r$”,错在哪里?
答案
**(a)** 主元列 $=\\{1,2\\}$,自由列 $=\\{3\\}$;$r=2$,$n=3$。方程:$x_1-x_3=0\\Rightarrow x_1=x_3$;$x_2+2x_3=0\\Rightarrow x_2=-2x_3$。令 $x_3=1$: $$\mathbf{s}=\begin{bmatrix}1\\-2\\1\end{bmatrix},\qquad \mathrm{N}(A)=\left\{t\begin{bmatrix}1\\-2\\1\end{bmatrix}:t\in\mathbb{R}\right\},\qquad \dim\mathrm{N}(A)=3-2=1.$$ $\\dim\\mathrm{C}(A)=r=2$($\\mathrm{C}(A)\\subseteq\\mathbb{R}^5$ 中一个 2 维子空间;它的基是 $A$ 的第 1、2 列)。 **(b)** $A\\mathbf{s}=\\mathbf{0}$ 就是 $\\mathbf{a}_1-2\\mathbf{a}_2+\\mathbf{a}_3=\\mathbf{0}$,即 $$\mathbf{a}_3=2\mathbf{a}_2-\mathbf{a}_1.$$ 核对 $R$ 的第 3 列 $\\begin{bmatrix}-1\\\\2\\\\0\\\\\\vdots\\end{bmatrix}$:它正好是"$A$ 的第 3 列 $=-1\\cdot$第 1 列 $+2\\cdot$第 2 列 $+0$",与上式一致 ✓。验算($R\\mathbf{s}$): $$R\mathbf{s}=\begin{bmatrix}1&0&-1\\0&1&2\\0&0&0\\0&0&0\\0&0&0\end{bmatrix}\begin{bmatrix}1\\-2\\1\end{bmatrix}=\begin{bmatrix}1-1\\-2+2\\0\\0\\0\end{bmatrix}=\mathbf{0}\ \checkmark$$ 因为 $\\mathrm{N}(R)=\\mathrm{N}(A)$,所以 $A\\mathbf{s}=\\mathbf{0}$ 也成立 ✓。 **(c)** 错在把 $n$ 当成了行数。$\\mathrm{N}(A)\\subseteq\\mathbb{R}^n$ 的维数是 $n-r$,这里的 $n$ 是**列数**($=3$,即未知数的个数),不是行数 $5$。行数 $m=5$ 影响的是**左零空间**:$\\dim\\mathrm{N}(A^{\\mathsf T})=m-r=5-2=3$,那是 $\\mathbb{R}^5$ 中的空间,与本题问的 $\\mathrm{N}(A)$ 不是一回事。**记忆锚点:$\\mathrm{N}(A)$ 的宿主维度是"未知数个数"$n$,$\\mathrm{N}(A^{\\mathsf T})$ 的宿主维度是"方程个数"$m$。**Q3(概念题). 判断并说明理由。(a) “若 $A$ 是 $3\times 3$ 且 $r=2$,则 $\mathrm{N}(A)$ 是 $\mathbb{R}^3$ 中过原点的一条直线。”(b) “自由变量取 1、其余取 0 得到的特殊解互相线性无关。”(c) “若 $A$ 的某一列全是 0,则 $\dim\mathrm{N}(A)\ge 1$。”(d) “如果 $A$ 的两列相同,那么 $\mathrm{N}(A)$ 里一定有向量 $\mathbf{s}=\mathbf{e}_i-\mathbf{e}_j$(两个单位向量之差)。”
