Strang 线性代数导读 · 互动教材
INTERACTIVE TEXTBOOK · 互动教材

Strang 线性代数导读 · 序言与 A = CR

Strang 第 6 版把「列空间」与「线性无关」提到了课程最前面。本导读用可交互的图形讲透序言里的全景图——线性组合、列空间、A = CR、四个基本子空间与五大矩阵分解——再深入 Strang 的短文《消元与分解 A = CR》,看懂简化阶梯形里那块 F 矩阵的意义。

内容整理自 Gilbert Strang, Introduction to Linear Algebra, 6th ed.(Wellesley-Cambridge Press)的序言(p. v–x)、目录与封底,以及 Strang 的短文 Elimination and Factorization A = CR。仓库中的 PDF 仅含这 14 页,因此本导读不包含正文各章。

怎么用这本互动教材
  • 左侧目录切换章节;进入章节后可展开小节快速跳转。左上角搜索框可搜索小节标题和术语。
  • 每章开头的「⚡ 一分钟速览」和「🗺 本章地图」先帮你建立全局印象,再逐节深入。
  • 带 ⚙ 标记的是交互演示:拖动图中的点、滑块或点击按钮,观察图形与数值如何变化;「👀 观察」提示告诉你该注意什么。
  • 灰色小标签是原文位置,方便对照英文原文:序言用页码(如 p. vii),A = CR 短文用段号与公式编号(如 §4、(5));术语首次出现附英文。
  • 证明与推导默认折叠,想深究时再展开;点击术语卡片可翻面;测验题选择后立即给出解释。
  • 右上角 ☾/☀ 切换明暗主题;已读章节会在目录中标记。
五大矩阵分解:整本书的组织线索 The Five Factorizations of a Matrix

Strang 在序言与封底里说:每当矩阵有某种特殊性质,就有一种分解把它直接展示出来;越往下越有用,最后的 SVD 适用于一切矩阵。点击第一张卡片进入序言导读。

原书第 1 章
$A = CR$

C:A 的前 r 个无关列;R:把 C 的列组合成 A 的全部列。

原书第 2 章
$A = LU$

L:对角线全为 1 的下三角矩阵;U:对角线无零的上三角矩阵(消元的记录)。

原书第 4 章
$A = QR$

Q:列是正交单位向量;R:上三角,把 Q 的正交列组合成 A 的列。

原书第 6 章
$S = Q\Lambda Q^{\mathsf T}$

对称矩阵 S:Q 的列是正交的特征向量,Λ 是实特征值。

原书第 7 章
$A = U\Sigma V^{\mathsf T}$

任何矩阵都行:U、V 的列是正交单位的奇异向量,Σ 是正的奇异值。

这本导读包含什么
  • 第 1 章 序言导读:Strang 在序言里给出的全景——线性组合与列空间、A = CR、四个基本子空间、五大分解、深度学习与应用、全书路线图。
  • 第 2 章 消元与分解 A = CR:Strang 的短文——简化阶梯形 rref(A) 里那块 F 矩阵究竟是什么,以及它如何同时给出列空间、行空间与零空间的基。

注:仓库中的 PDF 只有序言、目录、封底与这篇短文,共 14 页,因此本导读不包含正文各章的内容。

目录

第 1 章

序言导读:线性代数全景 Preface: The Big Picture

Strang 只用 6 页序言就画出了整门课的地图:从两个列向量出发,经过线性组合、列空间与 A = CR,走到四个基本子空间和五大矩阵分解,最后通向深度学习与各种应用。这一章把这张地图一块一块拆开,每个想法都配上小例子和能动手的图。

学习目标
  • 看懂「线性组合」:为什么两个三维向量 $a_1,a_2$ 的全部组合 $ca_1+da_2$ 恰好铺满一个过原点的平面。
  • 把矩阵看成「一排列向量」,理解列空间 = 各列的全部组合,并能从左到右逐列判断「独立」还是「组合」。
  • 会写出 $A=CR$:$C$ 收集独立的列,$R$ 记录每一列的「配方」;理解「$CR$ 的第 $j$ 列 = $C$ 乘 $R$ 的第 $j$ 列」。
  • 说出四个基本子空间的名字、所在空间、维数 $r,\ n-r,\ r,\ m-r$,以及「行空间 ⟂ 零空间、列空间 ⟂ $A^{\mathsf T}$ 的零空间」。
  • 认识五大分解 $CR$、$LU$、$QR$、$Q\Lambda Q^{\mathsf T}$、$U\Sigma V^{\mathsf T}$ 的因子长什么样,明白正交矩阵为什么「完美」、SVD 为什么值得特别关注。
  • 了解序言对深度学习(分段线性的学习函数)和四类应用矩阵的介绍,并能借助目录找到每个想法在正文哪一章展开。
一分钟速览
  • 向量能相加、能乘数;两者合起来就是线性组合 $ca_1+da_2$——整门课最基本的动作。
  • $a_1=(2,3,1)$、$a_2=(1,4,2)$ 的全部组合铺满三维空间中一个过原点的无限平面;平面上每一点都是它们的组合。
  • 把列排进矩阵 $A$,全部列的组合叫列空间。从左到右逐列看:新列要么落在已有空间里(什么也不添),要么把空间撑大一维。
  • 挑出独立的列组成 $C$,用 $R$ 记录每一列怎样由 $C$ 组合出来,就得到 $A=CR$;独立列的个数 $r$ 决定一切维数。
  • 每个 $m\times n$ 矩阵都有四个基本子空间:$\mathbb R^n$ 中的行空间(维数 $r$)⟂ 零空间($n-r$),$\mathbb R^m$ 中的列空间($r$)⟂ $A^{\mathsf T}$ 的零空间($m-r$)。独立列数永远等于独立行数。
  • 五大分解 $A=CR,\ LU,\ QR,\ S=Q\Lambda Q^{\mathsf T},\ A=U\Sigma V^{\mathsf T}$ 是全书的组织原则;正交矩阵(列是互相垂直的单位向量)最完美,SVD 对每个矩阵都成立。
  • 深度学习要从数据中「学出」规则:学习函数 $F(x,v)$ 不能是线性的,最受欢迎的是分段线性。应用中的四类特殊矩阵:马尔可夫、关联、傅里叶、协方差。
本章地图 列空间只是四个子空间之一 P1 线性组合ca₁ + da₂ 铺满平面 P2 列空间所有列的组合 P3 A = CR独立列 × 配方 P4 四个子空间维数 r, n−r, r, m−r P5 五大分解从 CR 到 SVD P6 深度学习分段线性的 F P7 应用四类矩阵 · 三个问题 P8 全书路线图想法在正文哪一章 CR 是第一个分解 组织 全书

点击方框可跳到对应小节。第一行是序言前三页的「课程开头」,第二行是后三页的「全景」:两种组织方式(四个子空间、五大分解)、深度学习与应用,以及目录。

对照英文原书:本章各节对应的页码
本导读原书内容原书页码
P1视频课程;向量 $a_1,a_2$;线性组合与组合网格图p. v–vi
P23×2 矩阵、列空间、「四个想法」;再加两列p. vi–vii
P3Matrix Multiplication $A = CR$p. vii
P4The Four Fundamental Subspaces(大图)p. viii
P5Five Factorizations of a Matrix;封底的五大分解p. ix、封底
P6Deep Learningp. ix
P7Applications in the Book and on the Website;三个问题p. x
P8目录(Contents)p. iii–iv

P1–P8 是本导读自加的编号(避免与原书第 1.1 节等编号混淆)。灰色小标签如 p. vii 就是原书页码。

P1 两个列向量:线性组合填满一个平面 Preface p. v–vi: vectors and linear combinations

这一节回答一个看似简单的问题:两个三维向量,经过「伸缩」再「相加」,能到达空间中的哪些点?答案是:一个穿过原点、向四面八方无限延伸的平面。这个问题虽小,却是整门线性代数的第一块基石——后面的列空间、$A=CR$、四个子空间,全都从这里长出来。

序言的开场白 p. v

Strang 首先推荐与本书配套的 MIT 线性代数课 Math 18.06 的视频,它们是 MIT OpenCourseWare(开放课程)的一部分:一套是「开放课程诞生之初」的 2010 年春季原版,另一套是 2011 年秋季的 18.06SC 版——后者加入了研究生讲解习题的视频(Strang 说「真的很好」)和一段简短的线性代数导论。两个网站左栏都有课程目录。

接着他说:这门课如今有了一个新的开头——两个关键想法,线性无关(linear independence)与矩阵的列空间(column space),被挪到了课程最前面。序言要做的,就是把这两个想法先讲给你听。

向量、零向量与两种基本运算 Column vectors a₁, a₂ and the zero vector

从两个列向量(column vector) $a_1$、$a_2$ 出发。它们各有 3 个分量(component),所以各自对应三维空间中的一个点——也可以画成从原点出发、指向这个点的箭头。画图时需要一个中心点来标出零向量(zero vector):

$$a_1=\begin{bmatrix}2\\ 3\\ 1\end{bmatrix},\qquad a_2=\begin{bmatrix}1\\ 4\\ 2\end{bmatrix},\qquad \text{零向量 } \mathbf 0=\begin{bmatrix}0\\ 0\\ 0\end{bmatrix}$$p. v

向量画在二维的纸面上,但我们都有想象三维图形的经验。序言的第一张图画出了 $a_1$、$a_2$、$2a_1$ 和向量和 $a_1+a_2$,还有更远处的 $2a_1+a_2$。这张图演示了向量的两种基本运算 p. v–vi:

① 数乘 (multiplying a vector by a number)

$2a_1=2\,(2,3,1)=(4,6,2)$:每个分量都乘 2。几何上:方向不变、长度加倍。乘 $-1$ 则掉头,乘 $\tfrac12$ 则缩短一半。

② 相加 (adding vectors)

$a_1+a_2=(2+1,\ 3+4,\ 1+2)=(3,7,3)$:对应分量相加。几何上:把 $a_2$ 的尾巴接到 $a_1$ 的箭头上——正好是以 $a_1,a_2$ 为邻边的平行四边形的对角线。

两种运算合起来,就得到原书图中最远的那个点 $2a_1+a_2$。原书只标了名字,没写坐标,我们算一下:$2a_1+a_2=(4,6,2)+(1,4,2)=(5,10,4)$。下面的三维演示默认视角就是原书那张图:虚线勾出了两个相邻的平行四边形 $0,\ a_1,\ a_1+a_2,\ a_2$ 与 $a_1,\ 2a_1,\ 2a_1+a_2,\ a_1+a_2$。

三维中的 ca₁ + da₂:转一转,看它们都躺在同一个平面上

拖动图中空白处可旋转视角;拖动绿色的点(或用 $c$、$d$ 滑块)改变组合 $ca_1+da_2$。点「撒点」随机撒下许多组合,再点「侧着看」——所有的点缩成一条线。

跳到:

无论 $c$、$d$ 取什么数,绿点都离不开那张浅色的平面;「侧着看」时,平面连同上面所有的点一起缩成一条直线——这正是「所有组合都在同一个平面上」的直观证据。取 $c=d=0$ 得到原点,所以这个平面一定经过原点。

列向量column vector竖着排成一列的一组数。有 3 个分量的列向量对应三维空间中的一个点,也可画成从原点出发的箭头。
零向量zero vector所有分量都是 0 的向量,是向量图的中心点(原点)。任何一组向量乘以全 0 系数再相加都得到它。
线性组合linear combination先数乘、再相加得到的向量 $ca_1+da_2$;系数 $c,d$ 可以是任何数(负数、分数都行)。

线性组合:c 和 d 可以取任何数 Linear combinations ca₁ + da₂

定义线性组合linear combinationp. vi

对任意两个数 $c$ 和 $d$,向量 $ca_1+da_2$ 叫做 $a_1$ 与 $a_2$ 的一个线性组合。第一张图里的 $2a_1+a_2$ 就是 $c=2,\ d=1$ 的线性组合。

序言特别强调了两件事:

  • $c$、$d$ 可以是负数。这时 $ca_1$、$da_2$ 掉转方向——原书说它们「从右往左走」。例如 $-a_1=(-2,-3,-1)$ 恰好指向 $a_1$ 的正对面。
  • 同样非常重要:$c$、$d$ 可以是分数(进而是任何小数)。例如 $-a_1+\tfrac12a_2=(-2,-3,-1)+(0.5,\,2,\,1)=(-1.5,\,-1,\,0)$。

序言的第二张图画了更多的组合:$c$ 取 $-1,0,1,2$,$d$ 取 $-1,-\tfrac12,0,\tfrac12,1$,形成一张由平行四边形拼成的网格 p. vi。Strang 说:我们最终想要的是所有的向量 $ca_1+da_2$。

直觉:两把斜放的刻度尺

把 $a_1$、$a_2$ 想成两把刻度尺。$c$ 告诉你沿 $a_1$ 方向走几格,$d$ 告诉你再沿 $a_2$ 方向走几格。格数可以是负的(倒着走)、半格、三分之一格……于是 $(c,d)$ 就像这个平面上的一对「坐标」,只不过两根坐标轴是斜的、刻度也不一样长。平行四边形网格就是这套斜坐标的「坐标纸」。

原书 p. vi 的组合网格:系数越来越细,点就铺满平面

拖动紫色的目标点 P,读出它是哪个组合 $ca_1+da_2$。切换「系数的精细程度」:从整数,到 ½、¼、⅛ 的倍数,最后是任意实数。

整数系数只给出网格的交点;½ 的倍数添上了中间的点(原书图就画到这一步);再细下去点越来越密,最后连成一片——平面上每一个位置都对应一对 $(c,d)$。原书这张图是「斜着看」平面画出来的,所以格子是平行四边形,而不是正方形。

关键:所有组合填满一个平面 The combinations fill a whole plane

命题组合填满一个平面here is the keyp. vi

当 $c$、$d$ 取遍所有实数时,组合 $ca_1+da_2$ 填满一个完整的平面——三维空间中一个无限大的平面。用越来越多的分数和小数作 $c$、$d$,就填满了整个平面:平面上的每一点都是 $a_1$ 和 $a_2$ 的组合。

为什么恰好是一个平面——核心思路

跑不出平面:从原点出发,你只有两个可走的方向——沿 $a_1$、沿 $a_2$。无论走多远、正着走还是倒着走,都离不开这两个方向铺成的那张「纸」。

也不会缩成一条线:$a_2$ 不是 $a_1$ 的倍数(逐个分量相除:$1/2,\ 4/3,\ 2/1$ 并不相等),两个方向真的不同,所以组合不会挤在同一条直线上。

一定过原点:取 $c=d=0$ 就得到零向量。

「两个方向真的不同」正是线性无关的雏形;「平面是二维的」要到正文第 3 章讲维数(3.4 节)时才严格化。

例这个点在平面上吗?

$(5,10,4)$:要找 $c,d$ 使 $ca_1+da_2=(5,10,4)$,也就是同时满足 $2c+d=5$、$3c+4d=10$、$c+2d=4$。由第 1、3 个方程得 $c=2,\ d=1$,代入第 2 个:$6+4=10$ ✓。所以 $(5,10,4)=2a_1+a_2$,正是原书第一张图最远的那个点。

$(1,1,1)$:由第 1、3 个方程(右边换成 1、1)得 $c=d=\tfrac13$,但第 2 个方程给出 $3\cdot\tfrac13+4\cdot\tfrac13=\tfrac73\ne1$ ✗。三个方程无法同时满足,所以 $(1,1,1)$ 不在这个平面上。

注意这里的结构:3 个方程、2 个未知数。判断一个点在不在平面上,就是在问方程组有没有解——这正是正文第 2 章「解线性方程组 $Ax=b$」的问题。

常见误区
  • 「三维向量的组合就能到达三维空间的每一点。」✗ 两个向量的组合最多铺满一个平面;要填满三维空间需要三个方向真正不同的向量(见 P2)。
  • 「这个平面就是 $a_1$、$a_2$ 围成的平行四边形。」✗ 那只是 $0\le c,d\le1$ 的一小块。$c$、$d$ 可以是任何数,平面无限延伸。
  • 「组合出来的平面可以在空间里任何位置。」✗ 它必定经过原点:取 $c=d=0$ 就得到零向量。

当 c、d 取遍所有实数时,a₁ = (2, 3, 1) 与 a₂ = (1, 4, 2) 的组合 ca₁ + da₂ 构成什么?

本节要点
  • 两种基本运算:数乘(伸缩、掉头)与相加(首尾相接);合起来就是线性组合 $ca_1+da_2$。
  • 系数可以是负数、分数、任意实数;$(c,d)$ 就像平面上的一对斜坐标。
  • 两个方向不同的三维向量,其全部组合 = 一个过原点的无限平面。判断一个点在不在平面上 = 解一个方程组。

P2 矩阵与列空间 Preface p. vi–vii: a matrix and its column space

把几个列向量并排放在一起,就得到线性代数里最核心的对象——矩阵(matrix)。这一节回答:一个矩阵的各列能组合出哪些向量?这个集合有个自然的名字:列空间。然后我们照 Strang 的做法再加两列,看列空间怎样从一个平面「长」成整个三维空间。

3×2 矩阵:m 行、n 列 A 3 by 2 matrix

矩阵 $A$ 装着 $n$ 个列向量 $a_1,a_2,\dots,a_n$。目前我们的矩阵只有两列 $a_1$ 和 $a_2$,它们都是三维空间里的向量,所以这个矩阵有 3 行 2 列 p. vi:

$$A=\begin{bmatrix} a_1 & a_2\end{bmatrix}=\begin{bmatrix}2 & 1\\ 3 & 4\\ 1 & 2\end{bmatrix}\qquad \begin{aligned} & m=3\ \text{行}\\ & n=2\ \text{列}\end{aligned}$$p. vi
读法提醒:先行后列

「$m$ by $n$ matrix」($m\times n$ 矩阵)总是先说行数、再说列数。每一列有 $m$ 个分量,是 $m$ 维空间里的向量;一共 $n$ 列。所以这个 3×2 矩阵的两列都住在三维空间 $\mathbb R^3$ 里——虽然只有 2 列,它们可不在二维平面 $\mathbb R^2$ 里。

列空间 = 所有列的组合 The column space of A

这两列的组合在三维空间里产生了一个平面(P1)。这个平面有个自然的名字——它就是这个矩阵的列空间。

定义列空间column spacep. vi

对任何矩阵 $A$,$A$ 的列空间包含 $A$ 的各列的所有线性组合。

于是 P1 的全部故事可以换成矩阵的语言再说一遍:「$a_1,a_2$ 的组合填满一个平面」=「3×2 矩阵 $A$ 的列空间是 $\mathbb R^3$ 中的一个平面」。

预告:矩阵乘向量 = 各列的组合

给每一列配一个系数,把系数排成一个向量 $x=(c,d)$,线性组合就可以简写成「矩阵乘向量」:

$$Ax=\begin{bmatrix}2 & 1\\ 3 & 4\\ 1 & 2\end{bmatrix}\begin{bmatrix}c\\ d\end{bmatrix}=c\begin{bmatrix}2\\ 3\\ 1\end{bmatrix}+d\begin{bmatrix}1\\ 4\\ 2\end{bmatrix}.$$

这样一来,列空间就是所有 $Ax$ 组成的集合;「向量 $b$ 在不在列空间里」就等于「方程 $Ax=b$ 有没有解」。矩阵乘向量有两种算法,正文 1.3 节展开,P3 会先看一眼。

到这里,序言已经引入了四个想法,Strang 说「你会在第 1 章看到它们全部」p. vi:

① 列向量 三维中的 a₁ 和 a₂ column vectors ② 线性组合 ca₁ + da₂ linear combinations ③ 矩阵 A 装着列 a₁ 和 a₂ the matrix A ④ 列空间 列的全部组合 = 平面 column space
对应原书 p. vi 的四个想法:1. 三维中的列向量 $a_1,a_2$;2. 它们的线性组合 $ca_1+da_2$;3. 矩阵 $A$ 装着列 $a_1,a_2$;4. 矩阵的列空间 = 各列的所有线性组合 = 平面。
矩阵matrix把 $n$ 个列向量并排放在一起得到的 $m\times n$ 数表($m$ 行、$n$ 列;先说行数)。
列空间column space矩阵各列的所有线性组合,也就是所有 $Ax$ 组成的集合。$m\times n$ 矩阵的列空间在 $\mathbb R^m$ 里。

再加两列:列空间变成整个三维空间 Now we include 2 more columns in A

现在给 $A$ 再加两列。这 4 个列向量仍然都在三维空间里 p. vii:

$$A=\begin{bmatrix}2 & 1 & 3 & 0\\ 3 & 4 & 7 & 0\\ 1 & 2 & 3 & -1\end{bmatrix}$$p. vii

「线性代数的目标是理解每一个列空间。」Strang 拿这一个试试,一列一列地看:

  1. 第 1、2 列产生和以前一样的平面(同样的 $a_1$、$a_2$)。
  2. 第 3 列没有贡献任何新东西,因为 $a_3=(3,7,3)$ 就在那个平面上:$a_3=a_1+a_2$。
  3. 第 4 列不在平面上:加上 $c_4a_4$ 会把平面整体抬高或压低。
  4. 所以这个矩阵 $A$ 的列空间是整个三维空间:所有的点!
一列一列加进来:列空间从直线、平面长成整个 ℝ³

用按钮逐列加入 $a_1,a_2,a_3,a_4$;拖动 $c_4$ 滑块,看平面被 $c_4a_4$ 整体抬高或压低(琥珀色平面)。也可以换一个第 4 列(比如一个本来就在平面上的向量),看列空间还会不会变大。拖动空白处旋转。

使用前几列:

$a_3$ 的箭头恰好躺在平面里(它是 $a_1+a_2$,平行四边形的对角线),所以加入 $a_3$ 后列空间不变。$a_4=(0,0,-1)$ 伸出平面:$c_4$ 取不同的值,平面就被平移到不同的「高度」,这些平面一层层叠起来充满整个空间。若把第 4 列换成平面上的向量,无论 $c_4$ 取多少,平移后的平面都与原平面重合——列空间仍然只是那个平面。

这就是 Strang 说的「一次看一列,从左到右」:每一列要么与前面的列独立(independent)——带来一个新方向;要么是前面各列的组合(combination)——什么新东西也不带来。要产生三维空间中的每一个点,需要三个独立的列 p. vii。

逐列加入这一列与前面的列列空间独立列个数
$a_1=(2,3,1)$第一列,不是零向量 → 独立一条直线1
$a_2=(1,4,2)$不是 $a_1$ 的倍数 → 独立一个平面2
$a_3=(3,7,3)$$=a_1+a_2$,在平面上 → 组合还是那个平面2
$a_4=(0,0,-1)$不在平面上 → 独立整个 $\mathbb R^3$3
常见误区
  • 「4 列就能张成 4 维空间。」✗ 这 4 列都是三维向量,它们的组合永远待在 $\mathbb R^3$ 里;而且 $\mathbb R^3$ 里最多只能有 3 个独立的列(P4 会用「独立列数 = 独立行数」解释:这个矩阵只有 3 行)。
  • 「列越多,列空间越大。」✗ 像 $a_3$ 这样的列是已有列的组合,加进来对列空间毫无影响。决定列空间大小的是独立列的个数,而不是列的总数。

Strang 的 3×2 矩阵 A = [a₁ a₂] 的列空间是什么?

本节要点
  • 矩阵 = 一排列向量;$m\times n$ 表示 $m$ 行 $n$ 列,每列住在 $\mathbb R^m$ 里。
  • 列空间 = 各列的全部组合 = 所有 $Ax$;$b$ 在列空间里 ⇔ $Ax=b$ 有解。
  • 从左到右逐列看:独立的列让列空间多一维,组合列什么也不添。填满 $\mathbb R^3$ 需要 3 个独立列。

P3 矩阵乘法 A = CR Matrix Multiplication A = CR

「线性组合」和「独立的列」这两个词,已经把那个 3×4 矩阵 $A$ 描述得很清楚了。这一节用一次矩阵乘法 $A=CR$ 把这些信息一口气写下来:哪几列是独立的、其余各列又是怎样由它们组合出来的。Strang 说:「我们离第 1 章的一个关键想法太近了,我不得不继续讲下去。」p. vii

独立的列与相关的列 Independent columns

在 3×4 的 $A$ 中,第 3 列是一个线性组合:第 1 列 + 第 2 列;第 1、2、4 列是独立的 p. vii。「独立」有一个干净利落的判别法:

定义独立的列independent columnsp. vii

用独立的第 1、2、4 列组合出零向量的唯一办法,是把这几列全部乘以 0:若 $x_1a_1+x_2a_2+x_4a_4=\mathbf 0$,则必有 $x_1=x_2=x_4=0$。

对比一下第 1、2、3 列:它们不独立,因为有一组不全为 0 的系数让组合回到原点:

$$1\cdot a_1+1\cdot a_2-1\cdot a_3=(2,3,1)+(1,4,2)-(3,7,3)=(0,0,0).$$
直觉:有没有「多余」的列

一组列不独立(相关,dependent),说明其中至少有一列是「多余的」:它能由别的列组合出来,于是某个不全为 0 的组合恰好绕回原点。独立则说明每一列都带来一个真正的新方向——除了「全部乘 0、原地不动」,没有任何办法绕一圈回到原点。

用矩阵乘法写下我们知道的一切 A equals C times R

「矩阵乘法是写下我们所知道的东西的完美方式。」从 $A$ 的 4 列中挑出独立的列 $a_1,a_2,a_4$,放进列矩阵 $C$。$R$ 的每一列告诉我们:用 $C$ 中的 $a_1,a_2,a_4$ 怎样组合,才能得到 $A$ 的一列。于是 $A$ 等于 $C$ 乘 $R$ p. vii:

$$A=\begin{bmatrix}2 & 1 & 3 & 0\\ 3 & 4 & 7 & 0\\ 1 & 2 & 3 & -1\end{bmatrix}=\begin{bmatrix}2 & 1 & 0\\ 3 & 4 & 0\\ 1 & 2 & -1\end{bmatrix}\begin{bmatrix}1 & 0 & 1 & 0\\ 0 & 1 & 1 & 0\\ 0 & 0 & 0 & 1\end{bmatrix}=CR$$p. vii

$A$ 的第 3 列依赖于第 1、2 列,而 $R$ 的第 3 列 $(1,1,0)$ 恰好说明了怎样依赖:把 $C$ 中独立的第 1、2 列相加(第 3 列 $a_4$ 用 0 份),就得到 $A$ 的第 3 列 $a_3=a_1+a_2=(3,7,3)$。

类比:原料架与配方表

把 $C$ 想成原料架:只摆真正不同的原料(独立的列)。把 $R$ 想成配方表:第 $j$ 张配方写着「做出 $A$ 的第 $j$ 列,要几份 $a_1$、几份 $a_2$、几份 $a_4$」。独立列的配方最简单——「就用我自己,1 份」,所以 $R$ 的第 1、2、4 列正好是 $(1,0,0)$、$(0,1,0)$、$(0,0,1)$,拼起来是一个单位矩阵。

下面的步骤播放器按 Strang 的「从左到右,一次一列」重演这个构造过程:

第 1 步:看第 1 列

$a_1=(2,3,1)$ 不是零向量,前面也没有别的列 → 独立,放进 $C$。它的配方是「$a_1$ 自己 1 份」,所以 $R$ 的第 1 列 $=(1)$——等 $C$ 收齐 3 列后补成 $(1,0,0)$。

第 2 步:看第 2 列

$a_2=(1,4,2)$ 不是 $a_1$ 的倍数($1/2\ne4/3$)→ 独立,放进 $C$。$R$ 的第 2 列 $=(0,1)$。现在 $C$ 的两列张成 P1 的那个平面。

第 3 步:看第 3 列

$a_3=(3,7,3)=a_1+a_2$,落在平面上 → 是前面两列的组合,不进 $C$。只在 $R$ 的第 3 列记下配方:$(1,1)$。

第 4 步:看第 4 列

$a_4=(0,0,-1)$ 在不在平面上?若 $ca_1+da_2=a_4$,前两个分量给出 $2c+d=0$、$3c+4d=0$,只能 $c=d=0$;可第 3 个分量是 $-1\ne0$ ✗。所以 $a_4$ 不在平面上 → 独立,放进 $C$。$R$ 多出一行,第 4 列 $=(0,0,1)$,前面各列在新的一行里补 0。

第 5 步:合起来 A = CR,检验一列

$C$ 有 3 列(独立列数 $r=3$),$R$ 是 3×4。检验第 3 列:$C$ 乘 $R$ 的第 3 列 $=1\cdot a_1+1\cdot a_2+0\cdot a_4=(3,7,3)$,正是 $A$ 的第 3 列 ✓。其他各列同理。

蓝色:独立的列(进入 $C$);琥珀色:前面独立列的组合(只在 $R$ 里记配方);虚线框:还没扫描到的列。粗框是当前这一步正在看的列。
命题矩阵乘法:按列来看each column j of CR is C times column j of Rp. vii

$CR$ 的第 $j$ 列 $=\ C\ \times$($R$ 的第 $j$ 列)。换句话说:用 $R$ 第 $j$ 列里的数作系数,把 $C$ 的各列组合起来。

矩阵乘法不止一种好算法 More than one good way to multiply

序言接着说:正文 1.3 节讲矩阵乘向量(两种方式),1.4 节讲矩阵乘矩阵。这是线性代数的关键运算;「有不止一种好方法来做这个乘法」这一点很重要 p. vii。以 $C$ 乘 $R$ 的第 3 列为例,先预览两种方式:

按列:组合 C 的各列 $$\begin{bmatrix}2 & 1 & 0\\ 3 & 4 & 0\\ 1 & 2 & -1\end{bmatrix}\begin{bmatrix}1\\ 1\\ 0\end{bmatrix}=1\begin{bmatrix}2\\ 3\\ 1\end{bmatrix}+1\begin{bmatrix}1\\ 4\\ 2\end{bmatrix}+0\begin{bmatrix}0\\ 0\\ -1\end{bmatrix}=\begin{bmatrix}3\\ 7\\ 3\end{bmatrix}$$

一整列一整列地看:结果是 $C$ 各列的组合——这正是列空间的视角。

按行:每一行与向量做点积 $$\begin{aligned}(2,\ 1,\ 0)\cdot(1,1,0)&=3\\ (3,\ 4,\ 0)\cdot(1,1,0)&=7\\ (1,\ 2,\ -1)\cdot(1,1,0)&=3\end{aligned}$$

一行一行地看:每个分量是一行与向量的点积(dot product),即对应分量相乘再相加(点积在正文 1.2 节)。两种方式给出同一个答案 $(3,7,3)$。

这两种视角在后面各有大用:「按列」引出列空间,「按行」引出 P4 的零空间(与每一行都垂直的向量)。

A = CR 计算器:自己输入矩阵,从左到右逐列判断

修改表格中的数字,或选一个例子;点「从头开始」后反复点「下一列 →」。独立的列(蓝)进入 $C$;组合列(琥珀色)只在 $R$ 里写下「配方」。$R$ 的分数是精确计算的。

每遇到一个独立列,$C$ 就多一列、$R$ 就多一行;遇到组合列,只在 $R$ 里多写一列配方。扫完之后,$C$ 的列数就是独立列的个数 $r$,而 $R$ 在独立列的位置上正好是单位矩阵的各列。试试「第一列是零向量」:零向量永远不独立(它是「0 份任何东西」)。

A = CR 告诉了我们什么 What the factorization shows

  • 形状:$C$ 是 $m\times r$,$R$ 是 $r\times n$,其中 $r$ 是独立列的个数。原书例子是 $(3\times4)=(3\times3)(3\times4)$,$r=3$。
  • 列空间:$A$ 的每一列都是 $C$ 的列的组合,所以 $A$ 的列空间就是 $C$ 的 $r$ 个独立列的全部组合。
  • 配方:$R$ 在独立列的位置上是单位矩阵的各列(「用自己 1 份」),在其余位置记录依赖关系。
  • $r$ 的地位:下一节 P4 会看到,四个基本子空间的维数全部由 $m$、$n$ 和这个 $r$ 决定。
与本导读第 2 章的联系

怎样系统地求出 $C$ 和 $R$?答案是消元:$R$ 正好是 $A$ 的简化行阶梯形(reduced row echelon form, rref)去掉全零行之后剩下的部分。Strang 的短文《Elimination and Factorization A = CR》(本导读第 2 章)会讲透这件事,并解释 $R$ 中非单位部分(记作 $F$)的意义。在正文里,3.2 节的标题就是「用消元计算零空间:$A=CR$」。

讲到这里,Strang 停下了:序言的本意是介绍全景。接下来的两页给出组织这门学科的两种方式——四个基本子空间(P4)与五大矩阵分解(P5)——尤其是前七章,它们已经足够(甚至超出)大多数线性代数课程的容量;之后是选修章节,一直通向当今应用中最活跃的方向:深度学习(P6)p. vii。

线性无关(独立)linearly independent只有「全部乘 0」这一种组合能得到零向量;等价地,没有哪一列是其他列的组合,每一列都带来新方向。
秩rank矩阵独立列的个数 $r$(也等于独立行的个数);$A=CR$ 中 $C$ 的列数。
列-行分解 A = CRcolumn-row factorization$C$:$A$ 的前 $r$ 个独立列;$R$:把 $C$ 的列组合成 $A$ 每一列的系数($r\times n$)。

在 A = CR 中,R 的第 j 列记录的是什么?

本节要点
  • 独立 = 只有全 0 系数能组合出零向量;相关 = 有「多余」的列。
  • $A=CR$:$C$ 收集独立列,$R$ 的第 $j$ 列是 $A$ 第 $j$ 列的配方;$CR$ 的第 $j$ 列 = $C\times$($R$ 的第 $j$ 列)。
  • 矩阵乘向量有两种看法:按列(组合各列)与按行(点积)。

P4 四个基本子空间 The Four Fundamental Subspaces

列空间只是故事的四分之一。这一节回答:每一个矩阵还自带哪三个「空间」?它们住在哪里、有多大(维数)、彼此是什么关系?答案就是 Strang 最著名的那幅图——大图(The Big Picture)。

回顾:课程开头的两个关键步骤 p. viii

① 取各列的所有组合 $ca_1+da_2+ea_3+fa_4$,得到 $A$ 的列空间;② 把矩阵分解成 $C$ 乘 $R$,$C$ 装着一整套独立的列。Strang 坦白地说:读到序言时,你对列空间毫无练习(对 $C$ 和 $R$ 就更少了),但好消息是——这些正是正确的出发方向。最终,每个矩阵都会引出四个基本空间。

行空间:所有行的组合 The row space

定义行空间row spacep. viii

与列空间相伴的是行空间——各行的所有组合。$m\times n$ 矩阵的每一行有 $n$ 个分量,所以行空间住在 $\mathbb R^n$ 里;而列空间住在 $\mathbb R^m$ 里。

「当我们取 $n$ 列的所有组合、$m$ 行的所有组合——这些组合就填满了向量的『空间』。」例如 3×2 矩阵 $A=[a_1\ a_2]$ 的三行 $(2,1)$、$(3,4)$、$(1,2)$ 都是二维向量,前两行方向不同,所以它的行空间是整个平面 $\mathbb R^2$;而它的列空间是 $\mathbb R^3$ 中的一个平面。两个空间不在同一个地方,却都是「二维」的——这不是巧合,见下文的「惊人事实」。

零空间:与所有行垂直 The nullspace

另外两个子空间把图补完整。设行空间是三维空间里的一个平面,那么 3D 图中就有一个特殊的方向——与行空间垂直的方向。这条垂直的直线就是矩阵的零空间(nullspace) p. viii。

定义零空间nullspace of Ap. viii

零空间由与每一行都垂直的向量 $x$ 组成;它们恰好是最基本的线性方程 $Ax=\mathbf 0$ 的解。

为什么「与所有行垂直」就是「Ax = 0」

用 P3 的「按行」算法:$Ax$ 的第 $i$ 个分量就是第 $i$ 行与 $x$ 的点积。所以 $Ax=\mathbf 0$ ⇔ 每一行与 $x$ 的点积都为 0 ⇔ $x$ 与每一行都垂直(点积为 0 就是垂直,正文 1.2 节)。与每一行都垂直,自然也与各行的所有组合垂直——也就是与整个行空间垂直。

例把 a₁、a₂ 当作行

取 2×3 矩阵 $\begin{bmatrix}2 & 3 & 1\\ 1 & 4 & 2\end{bmatrix}$,它的两行正是 P1 的 $a_1$ 和 $a_2$。所以它的行空间就是 P1 的那个平面,零空间则是与这个平面垂直的直线,方向为 $(2,-3,5)$:

$(2,3,1)\cdot(2,-3,5)=4-9+5=0,\qquad (1,4,2)\cdot(2,-3,5)=2-12+10=0.$

任何 $x=t\,(2,-3,5)$ 都满足 $Ax=\mathbf 0$。(直接验证点积为 0 即可;怎样系统地求出零空间,是正文 3.2 节「用消元计算零空间」的内容。)

原书封面上画的正是这种几何:任何向量 $x$ 都能拆成行空间里的 $y$ 加上零空间里的 $z$,即 $x=y+z$;因为 $Az=\mathbf 0$,所以 $Ax=Ay=b$。下面用刚才的 2×3 矩阵把封面图做成可以转动的 3D 模型。

封面上的图:x = y + z,Ax = Ay = b,Az = 0

矩阵是上例的 2×3 矩阵(两行是 $a_1,a_2$)。用滑块改变 $x$,看它被拆成行空间(琥珀色平面)里的 $y$ 与零空间(绿色直线)里的 $z$。点「侧着看」可以看到平面与直线成直角;右侧小图是 $\mathbb R^2$ 中的 $b=Ax$。拖动空白处旋转。

$z$ 总落在零空间那条直线上,所以 $Az=0$;于是 $Ax=Ay+Az=Ay$——$x$ 和它在行空间里的那一部分 $y$ 被 $A$ 送到同一个 $b$。「侧着看」时,行空间缩成一条线,与零空间那条线正好垂直;「顺着零空间看」时,零空间缩成一个点,$x$ 与 $y$ 的影子重合。

Aᵀ 的零空间:与所有列垂直 The nullspace of Aᵀ

「如果与所有行垂直的向量很重要,那么与所有列垂直的向量也同样重要。」p. viii 把 $A$ 转置(transpose)——行变成列——得到 $A^{\mathsf T}$;与 $A$ 的所有列都垂直的向量正是 $A^{\mathsf T}y=\mathbf 0$ 的解,所以这个空间叫做 $A^{\mathsf T}$ 的零空间(nullspace of Aᵀ)。它和列空间一起住在 $\mathbb R^m$ 里。

例:3×2 矩阵 $A=[a_1\ a_2]$ 的列空间是 P1 的平面,与两列都垂直的方向又是 $(2,-3,5)$。所以 $A^{\mathsf T}$ 的零空间是 $\mathbb R^3$ 中方向为 $(2,-3,5)$ 的那条直线。难怪和上一个例子答案相同——上面那个 2×3 矩阵其实就是这个 $A$ 的转置 $A^{\mathsf T}$。

大图:四个子空间和它们的维数 The Big Picture

下面是序言中的「四个基本子空间」图的互动版。Strang 的原图画的是:左边 $n$ 维空间里,行空间(维数 $r$,「各行的组合」)与零空间(维数 $n-r$,「与各行垂直」)成直角;右边 $m$ 维空间里,列空间(维数 $r$,「各列的组合」)与 $A^{\mathsf T}$ 的零空间(维数 $m-r$,「与各列垂直」)成直角。图题:一个有 $r$ 个独立列的 $m\times n$ 矩阵的四个基本子空间 p. viii。

四个基本子空间的「大图」:改 m、n、r,看维数怎样变

拖动滑块设定行数 $m$、列数 $n$ 和独立列数 $r$($r$ 不能超过 $m$ 和 $n$)。左边是 $\mathbb R^n$(行空间 + 零空间),右边是 $\mathbb R^m$(列空间 + $A^{\mathsf T}$ 的零空间)。每块里的条纹数 = 维数;中间的方格是矩阵的形状,蓝色列代表独立列。

例子:

左边两块的维数加起来总是 $n$,右边两块加起来总是 $m$;行空间与列空间的维数永远相同(都是 $r$)。当 $r=n$ 时零空间缩成一个点(只有零向量,各列独立);当 $r=m$ 时 $A^{\mathsf T}$ 的零空间缩成一个点,列空间就是整个 $\mathbb R^m$。

定理四个基本子空间the four fundamental subspacesp. viii

设 $A$ 是有 $r$ 个独立列的 $m\times n$ 矩阵。

子空间由什么组成住在维数
行空间 row space各行的所有组合$\mathbb R^n$$r$
零空间 nullspace of A与各行都垂直的向量($Ax=\mathbf 0$ 的解)$\mathbb R^n$$n-r$
列空间 column space各列的所有组合$\mathbb R^m$$r$
$A^{\mathsf T}$ 的零空间 nullspace of Aᵀ与各列都垂直的向量$\mathbb R^m$$m-r$

在 $\mathbb R^n$ 中,行空间与零空间互相垂直;在 $\mathbb R^m$ 中,列空间与 $A^{\mathsf T}$ 的零空间互相垂直。

例原书 3×4 矩阵的四个子空间p. vii–viii

$m=3,\ n=4,\ r=3$。列空间是整个 $\mathbb R^3$(维数 3);$A^{\mathsf T}$ 的零空间只有零向量(维数 $m-r=0$);行空间是 $\mathbb R^4$ 中的一个三维子空间(3 行都独立);零空间是 $\mathbb R^4$ 中的一条直线(维数 $n-r=1$)。这条直线从哪里来?正是那个依赖关系 $a_1+a_2-a_3=\mathbf 0$:

$x=(1,\,1,\,-1,\,0)$ 满足 $Ax=1\cdot a_1+1\cdot a_2-1\cdot a_3+0\cdot a_4=\mathbf 0$。

可以验证它与三行都垂直:$(2,1,3,0)\cdot x=2+1-3=0$,$(3,4,7,0)\cdot x=3+4-7=0$,$(1,2,3,-1)\cdot x=1+2-3+0=0$。一般地,零空间里的每个向量都是各列之间的一个依赖关系——因为 $Ax=\mathbf 0$ 就是在说 $x_1a_1+\dots+x_na_n=\mathbf 0$。

定理一个惊人的事实the number of independent columns equals the number of independent rowsp. viii

对任何矩阵,不论方阵还是长方阵:独立列的个数等于独立行的个数。这是线性代数基本定理(Fundamental Theorem of Linear Algebra)的一部分。

为什么成立——用 A = CR 一眼看出(核心思路)

把 $A=CR$ 按行看:$A$ 的第 $i$ 行 $=$($C$ 的第 $i$ 行)$\times R$,也就是 $R$ 的 $r$ 行的一个组合。所以 $A$ 的每一行都是 $R$ 的这 $r$ 行的组合,$A$ 的独立行最多 $r$ 个:独立行数 ≤ 独立列数。

把同样的论证用于 $A^{\mathsf T}$(它的列就是 $A$ 的行、它的行就是 $A$ 的列),又得到独立列数 ≤ 独立行数。两个不等式合起来就是相等。Strang 的短文(本导读第 2 章)正是把 $A=CR$ 当作「列秩 = 行秩」的证明。

应用这个事实:原书的 3×4 矩阵只有 3 行,所以最多 3 个独立行,也就最多 3 个独立列——4 列之中必然有一列是组合(P2 的误区一)。

这些想法在正文哪里展开 p. viii

四个子空间的图在第 3 章出现;「互相垂直的空间」在第 4 章展开;四个子空间各自特殊的「基向量」在第 7 章找到——这一步是线性代数基本定理的最后一块拼图。

常见误区
  • 「行空间和列空间是同一个空间。」✗ 维数相同(都是 $r$),但一个在 $\mathbb R^n$、一个在 $\mathbb R^m$。3×2 的例子:行空间是整个 $\mathbb R^2$,列空间是 $\mathbb R^3$ 中的平面。
  • 「$Ax=\mathbf 0$ 只有零解时,零空间是空的。」✗ 零空间总含有零向量;此时它是只含零向量的空间,维数为 0。
  • 「两个子空间垂直」是说:从一个空间任取一个向量、从另一个空间任取一个向量,它们都垂直——不只是某两个向量垂直。
行空间row space各行的所有组合;位于 $\mathbb R^n$,维数 $r$。
零空间nullspace$Ax=\mathbf 0$ 的所有解 = 与每一行都垂直的向量;位于 $\mathbb R^n$,维数 $n-r$。
Aᵀ 的零空间nullspace of Aᵀ与每一列都垂直的向量($A^{\mathsf T}y=\mathbf 0$ 的解);位于 $\mathbb R^m$,维数 $m-r$。
维数dimension一个空间里独立方向的个数:过原点的直线是 1,平面是 2,$\mathbb R^3$ 是 3,只含零向量的空间是 0。
线性代数基本定理Fundamental Theorem of Linear Algebra四个子空间的维数 $r,\ n-r,\ r,\ m-r$ 与两对垂直关系;独立列数 = 独立行数;第 7 章补上四个子空间的特殊基。
转置transpose把矩阵的行变成列得到 $A^{\mathsf T}$;$m\times n$ 矩阵的转置是 $n\times m$。

零空间里的向量 x 具有什么性质?

本节要点
  • 四个子空间:行空间 ($r$) ⟂ 零空间 ($n-r$) 在 $\mathbb R^n$;列空间 ($r$) ⟂ $A^{\mathsf T}$ 的零空间 ($m-r$) 在 $\mathbb R^m$。
  • 零空间 = $Ax=\mathbf 0$ 的解 = 与所有行垂直 = 各列之间的依赖关系。
  • 独立列数 = 独立行数(由 $A=CR$ 按行看立得)。第 3、4、7 章依次展开大图、垂直与特殊的基。

P5 矩阵的五大分解 Five Factorizations of a Matrix

这一节讲的是全书的组织原则:把一个矩阵拆成几个更简单的矩阵相乘。「当矩阵有某种特殊性质时,这些分解会把它显示出来。一章接一章,它们用直接而有用的方式表达每一章的核心思想。」p. ix 你可以把五大分解当成全书的五个「路标」。

对应原书封底「The Five Factorizations of a Matrix」。竖条 = 列,横条 = 行,阶梯 = 三角矩阵,圆点 = 对角矩阵(只有对角线上有数)。

序言列出了分别出自第 1、2、4、6、7 章的五个分解 p. ix,封底又给每个因子写了一句说明:

章分解序言中的一句话(p. ix)封底对各因子的说明
1$A=CR$$R$ 把 $C$ 中的独立列组合成 $A$ 的所有列$C$:$A$ 的前 $r$ 个独立列;$R$:把 $C$ 的列组合成 $A$ 的每一列
2$A=LU$下三角 $L$ 乘上三角 $U$$L$:下三角,对角线全是 1;$U$:上三角,对角线上没有 0
4$A=QR$正交矩阵 $Q$ 乘上三角 $R$$Q$:列是互相垂直的单位向量;$R$:三角矩阵,把 $Q$ 的这些规范正交列组合成 $A$ 的列
6$S=Q\Lambda Q^{\mathsf T}$(正交 $Q$)(特征值在 $\Lambda$ 中)(正交 $Q^{\mathsf T}$)$Q$ 的列是 $S$ 的规范正交特征向量;$\Lambda$:由 $S$ 的实特征值组成的对角矩阵;也写成 $SQ=Q\Lambda$
7$A=U\Sigma V^{\mathsf T}$(正交 $U$)(奇异值在 $\Sigma$ 中)(正交 $V^{\mathsf T}$)$U$:规范正交的奇异向量($A$ 的输出);$\Sigma$:由 $A$ 的正奇异值组成的对角矩阵;$V$:规范正交的奇异向量($A$ 的输入);也写成 $AV=U\Sigma$

逐个用大白话说一遍:

  • $A=CR$(第 1 章):P3 已经见过——「独立的列 × 配方」。它揭示的是列空间与秩。
  • $A=LU$(第 2 章):消元法解 $Ax=b$ 的记账方式。$L$(lower)记录消元时每一步减去了几倍的哪一行,$U$(upper)是消元后得到的上三角矩阵。
  • $A=QR$(第 4 章):把 $A$ 的列「扶正」成互相垂直的单位向量($Q$),$R$ 记录怎样把它们组合回原来的列。
  • $S=Q\Lambda Q^{\mathsf T}$(第 6 章):字母 $S$ 代表对称矩阵(symmetric matrix),即 $S^{\mathsf T}=S$。它的特征向量(eigenvectors)可以选成互相垂直的单位向量(放进 $Q$),特征值(eigenvalues)都是实数(放进对角矩阵 $\Lambda$)。封底的等价写法 $SQ=Q\Lambda$ 按列读就是 $Sq_k=\lambda_kq_k$:$S$ 作用在特征向量上只是把它伸缩 $\lambda_k$ 倍。
  • $A=U\Sigma V^{\mathsf T}$(第 7 章):奇异值分解。封底的等价写法 $AV=U\Sigma$ 按列读就是 $Av_k=\sigma_ku_k$:$A$ 把一组互相垂直的输入方向 $v_k$ 送到一组互相垂直的输出方向 $u_k$,并伸缩 $\sigma_k$ 倍。

正交矩阵:完美 Orthogonal matrices are the winners

「越往下,分解越有用。正交矩阵最终是赢家,因为它们的列是互相垂直的单位向量。那就是完美。」p. ix

定义正交矩阵orthogonal matrixp. ix

各列是互相垂直的单位向量的方阵。序言给出的 2×2 例子是旋转:

$$Q=\begin{bmatrix}\cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\end{bmatrix}=\text{旋转 }\theta\text{ 角(rotation by angle }\theta\text{)}$$

检验:每列长度 $\sqrt{\cos^2\theta+\sin^2\theta}=1$;两列点积 $-\cos\theta\sin\theta+\sin\theta\cos\theta=0$,互相垂直 ✓。

补充:2×2 的正交矩阵除了旋转,还有「带一次翻面」的一类(反射),例如 $\begin{bmatrix}1 & 0\\ 0 & -1\end{bmatrix}$;序言举的是旋转。

直觉:为什么说「完美」

旋转只转动向量,不拉长、不压扁:长度不变、夹角不变。用正交矩阵做计算,误差不会被放大——这就是序言说 SVD 中的 $U$、$V$ 让计算「既不会爆炸(blow up)也不会塌缩(blow down)」的原因。

请特别注意最后一个:SVD The Singular Value Decomposition

「请允许我提请你注意最后一个。它是奇异值分解(Singular Value Decomposition, SVD)。」p. ix 序言对它的描述可以归纳为四句:

  1. 它适用于每一个矩阵 $A$——方的、长方的、可逆的、奇异的都行。
  2. 因子 $U$ 和 $V$ 的列互相垂直、长度都是 1(正交矩阵)。
  3. 任何向量乘以 $U$ 或 $V$,长度都不变——计算不会爆炸,也不会塌缩。
  4. $\Sigma$ 是由正的「奇异值(singular values)」组成的对角矩阵。

Strang 的恳请:如果你在第 6 章学了特征值和特征向量,请再往后翻几页,读到 7.1 节的奇异值。

五大分解浏览器:选一个矩阵,看它的五种拆法

选一个矩阵,再选一种分解。每个因子画成一张「热力格子」:蓝色为正、红色为负、颜色越深绝对值越大、空白格是 0——三角形、对角线、正交这些结构一眼就能看出来。下方读数说明各因子的含义,并验证乘积是否等于原矩阵。

$L$、$U$、$R$ 的三角形「空白」一目了然;$\Lambda$、$\Sigma$ 只有对角线有数。对称正定的 [[2, 1], [1, 2]] 的 SVD 与 $Q\Lambda Q^{\mathsf T}$ 完全相同;旋转矩阵的 $QR$ 中 $R=I$、SVD 中 $\Sigma=I$——它本身已经「完美」。秩 1 矩阵的列不独立,$QR$ 做不下去,但 $CR$ 和 SVD 照样成立;左上角为 0 的矩阵不交换行就无法做 $LU$。

正交矩阵只转不拉:SVD = 旋转 · 伸缩 · 旋转

拖动「阶段」滑块(或点播放),看单位圆怎样一步步变成 $A$ 作用后的椭圆:① $V^{\mathsf T}$ 旋转(圆还是圆),② $\Sigma$ 沿坐标轴伸缩,③ $U$ 再旋转。可以选别的矩阵、拖动两个空心点 $Ae_1$、$Ae_2$(即 $A$ 的两列),或选「旋转 Q(θ)」用 θ 滑块体会正交矩阵。

第 ① 步和第 ③ 步是正交矩阵:圆转来转去仍是同一个圆,两根标记向量的长度始终是 1 或保持不变;只有第 ② 步 $\Sigma$ 改变长度,伸缩倍数就是奇异值 $\sigma_1,\sigma_2$,也就是最终椭圆的两个半轴长。选「旋转 Q(θ)」时 $\sigma_1=\sigma_2=1$:整个过程只有旋转,圆始终是单位圆。

正交矩阵orthogonal matrix各列是互相垂直的单位向量的方阵;乘它不改变长度,例如旋转矩阵。
下三角 / 上三角矩阵lower / upper triangular matrix对角线上方全为 0 的是下三角(如 $L$),对角线下方全为 0 的是上三角(如 $U$、$R$)。
对称矩阵symmetric matrix满足 $S^{\mathsf T}=S$ 的方阵;可以分解成 $S=Q\Lambda Q^{\mathsf T}$。
特征值与特征向量eigenvalue & eigenvector$Sq=\lambda q$:矩阵作用在特征向量 $q$ 上只把它伸缩 $\lambda$ 倍。对称矩阵的特征值都是实数。
奇异值分解singular value decomposition (SVD)$A=U\Sigma V^{\mathsf T}$:$U$、$V$ 正交,$\Sigma$ 对角且为正奇异值;对每个矩阵都成立。$Av_k=\sigma_ku_k$。
奇异值singular value$\Sigma$ 对角线上的正数 $\sigma_1\ge\sigma_2\ge\dots$;几何上是单位圆(球)被 $A$ 变成的椭圆(椭球)的半轴长。

S = QΛQᵀ 这个分解针对的是哪一类矩阵?

本节要点
  • 五大分解 $CR$、$LU$、$QR$、$Q\Lambda Q^{\mathsf T}$、$U\Sigma V^{\mathsf T}$ 分别出自第 1、2、4、6、7 章,越往后越有用。
  • 正交矩阵(列是互相垂直的单位向量,如旋转)不改变长度,是「完美」的因子。
  • SVD 对每个矩阵成立:$A$ = 旋转 · 伸缩 · 旋转,伸缩倍数就是奇异值。

P6 深度学习 Deep Learning

「要呈现线性代数的真实面貌,就必须把应用包括进来。完整是完全不可能的。」p. ix 而此刻应用数学的主导方向有一个特殊的要求:它不能完全是线性的!这一节看看这个方向——深度学习——想解决什么问题,以及它为什么偏爱「分段线性」的函数。

从数据中学习 Learning from data

这个方向的一个名字就是「深度学习」(deep learning)。它是解决一个基本科学问题的极其成功的方法:从数据中学习。很多时候数据以矩阵的形式出现,我们的目标是看进矩阵内部,找出变量之间的联系。过去我们解矩阵方程或微分方程,它们表达的是已知的输入-输出规则;而现在,这些规则本身需要我们去找 p. ix。

训练数据 v 特征 features 测试数据 v′ 没见过的新数据 F(x, v) 学习函数 分段线性 piecewise linear 权重 x(要学) ≈ 正确输出 训练时就要接近 仍 ≈ 正确 成功的关键
序言 p. ix 对学习函数的四句描述:$v$ 描述训练数据的特征;$x$ 给这些特征分配权重;$F(x,v)$ 接近训练数据的正确输出;换成没见过的测试数据时,$F(x,v)$ 仍然接近正确。
定义学习函数 F(x, v)learning functionp. ix

深度学习的成功在于构造一个函数 $F(x,v)$,它有两类输入:

  • 向量 $v$ 描述训练数据(training data)的特征(features);
  • 矩阵 $x$ 给这些特征分配权重(weights)。

要求:对训练数据 $v$,$F(x,v)$ 接近正确的输出;当 $v$ 换成没见过的测试数据时,$F(x,v)$ 仍然接近正确。

对照原书时注意记号

这里 Strang 用 $x$ 表示权重(要学出来的未知数),用 $v$ 表示数据特征。这与许多机器学习书把 $x$ 当作输入数据的习惯正好相反,读英文原书第 9、10 章时别被绕晕。

为什么不能是线性的:分段线性 F is piecewise linear

深度学习的成功部分来自学习函数 $F$ 的形式——它能容纳海量的数据。序言的结论很干脆:归根结底,线性函数 $F$ 完全不够用;最受青睐的选择是分段线性(piecewise linear)函数,它把简单与通用结合在了一起 p. ix。

线性为什么不够?

线性函数的图像永远是直的(高维中是平的)。更要命的是:线性函数相加还是线性的,线性函数套线性函数(复合)也还是线性的——叠多少层都弯不起来。而数据里的关系几乎总是弯曲的。

分段线性好在哪?

它由若干段直线在「折点」处连接而成。每一段都是最简单的线性函数(简单);只要折点足够多,就能把一条连续曲线逼近到任意精度(通用)——一维时,把曲线上的一串点用线段连起来就行。

最简单的分段线性「积木」叫 ReLU(rectified linear unit):$\mathrm{ReLU}(t)=\max(0,t)$——左边是 0,右边是斜率为 1 的直线,只在 $t=0$ 处折一次。把几块平移、缩放后的 ReLU 加起来,就能在指定的位置折弯:

$$F(t)=w_0+w_1t+c_1\,\mathrm{ReLU}(t-b_1)+c_2\,\mathrm{ReLU}(t-b_2)+\dots+c_K\,\mathrm{ReLU}(t-b_K)$$

每个系数 $c_k$ 恰好是函数在折点 $b_k$ 处斜率的改变量;所有在这些折点处拐弯的折线都能这样写出来。下面的演示用这些 ReLU 积木去拟合一组弯曲的数据——这就是「学习权重」的一个最小模型。正文第 10 章「Learning from Data」的 10.1 节就叫「分段线性学习函数」,第 9 章则讲怎样计算这些权重(优化、反向传播与随机梯度下降)。

分段线性的学习函数:几个 ReLU 叠加,逼近一条曲线

拖动「折点个数 K」:K = 0 时 $F$ 只能是一条直线;K 越大,$F$ 越能弯曲。实心点是训练数据(可以拖动),空心点是没参与训练的测试数据。权重用最小二乘自动求出。

训练数据 v(实心,可拖动)测试数据(空心)学习函数 F各块 ReLU 积木 / 折点 ▲

K = 0 时 $F$ 是线性函数,怎么放都穿不过弯曲的数据——序言说的「线性完全不够用」。加上几个折点后,$F$ 贴住了训练数据,而且在空心的测试点上误差也很小:这正是「换成没见过的数据,$F$ 仍然接近正确」。紫色细线是一块块 ReLU 积木(已乘上各自的权重),把它们与直线部分加起来就是蓝色的 $F$。

深度学习deep learning从数据中学出输入-输出规则的方法;核心是构造学习函数 $F(x,v)$ 并求出权重 $x$。
分段线性函数piecewise linear function由若干直线段在折点处连成的函数:每段简单,整体通用。深度学习中学习函数的首选。
ReLUrectified linear unit$\mathrm{ReLU}(t)=\max(0,t)$:只在 0 处折一次的最简单的分段线性函数。
训练数据 / 测试数据training data / test data训练数据用来确定权重;测试数据没参与训练,用来检验 $F$ 在新数据上是否仍然接近正确。

为什么深度学习的学习函数 F 不选线性函数,而偏爱分段线性函数?

本节要点
  • 深度学习 = 从数据中学出规则;学习函数 $F(x,v)$:$v$ 是数据特征,$x$ 是权重。
  • 目标不只是拟合训练数据,还要在没见过的测试数据上仍然正确。
  • 线性 $F$ 完全不够用;分段线性(例如 ReLU 的组合)兼顾简单与通用。第 9、10 章展开。

P7 书中与网站上的应用 Applications in the Book and on the Website

Strang 希望这本书在线性代数课结束很久以后仍然对你有用——让这成为可能的,正是线性代数的各种应用。矩阵承载数据,另一些矩阵对这些数据进行运算。目标是通过理解矩阵的特征值与特征向量、奇异值与奇异向量,来「看进矩阵内部」p. x。每类应用都有自己的特殊矩阵,序言举了四个例子:

矩阵序言中的描述(p. x)一句话理解
马尔可夫矩阵 $M$
Markov matrices
每一列是一组加起来为 1 的概率第 $j$ 列 = 从状态 $j$ 出发、下一步到各个状态的概率;反复乘 $M$ 就是一步步往前走
关联矩阵 $A$
incidence matrices
图与网络从一组节点开始;矩阵 $A$ 说明节点之间的连接(边)每行一条边、每列一个节点:边的起点记 $-1$、终点记 $+1$
变换矩阵 $F$
transform matrices
傅里叶矩阵揭示数据中的频率把一串采样值变成「每个频率各有多少」
协方差矩阵 $C$
covariance matrices
方差是随机变量的关键信息;协方差解释变量之间的依赖对角线 = 各变量的方差(分散程度),非对角线 = 两两之间「一起变」的程度
四类应用矩阵:每一类都动手试一次

切换选项卡,分别体验马尔可夫矩阵(反复相乘趋于稳定)、关联矩阵(图的连接,点击边可删去/加回)、傅里叶矩阵(找出隐藏的频率)和协方差矩阵(数据点云的形状)。

两个状态之间来回转移:每一步,状态 1 中有比例 $p$ 转到状态 2,状态 2 中有比例 $q$ 转回状态 1。$M$ 的每一列加起来都是 1。从「全部在状态 1」出发,反复乘 $M$。

4 个节点、最多 5 条有向边。点击图中的边可以删去或加回;右边是关联矩阵:每一行对应一条边,每一列对应一个节点。

16 个等间隔的采样值由两个余弦波叠加而成(频率 $f_1$、$f_2$)。只看上面的数据很难看出频率;乘以傅里叶矩阵后,下面的柱状图立刻显出两根尖峰。

160 个数据点,每个点有两个变量。调节相关程度与两个变量各自的分散程度,看协方差矩阵和点云的形状(椭圆标出约两倍标准差的范围,两根轴是协方差矩阵的特征向量方向)。

马尔可夫:只要 $p$、$q$ 不同时为 0、也不同时为 1,分布就趋向同一个稳定状态(它满足 $Mu=u$,是特征值为 1 的特征向量);$p=q=1$ 时会来回振荡。关联矩阵:每行恰好一个 $-1$、一个 $+1$,所以每行之和为 0,全 1 向量 $(1,1,1,1)$ 在零空间里——应用中的矩阵同样有四个子空间。傅里叶:尖峰恰好出现在 $f_1$、$f_2$ 处,高度就是两个波的振幅。协方差:$\rho>0$ 时点云向右上倾斜、协方差为正;$\rho<0$ 时向右下倾斜;$\rho=0$ 时协方差约为 0。

优化:线性代数遇见微积分 Optimization: linear algebra meets calculus

深度学习中最关键的计算是求出矩阵形式的权重,为此正文第 9 章介绍优化(optimization)的思想。Strang 说,这是线性代数与微积分相遇的地方:因为 $F(x)$ 有很多个变量,「导数 = 0」在最小值点处就变成了一个矩阵方程 p. x。

直觉:为什么会变成矩阵方程

一元函数在最低点有「导数 = 0」这一个方程。有两个变量时,在最低点要求对每个变量的偏导数都为 0——两个方程同时成立;有成千上万个权重,就有成千上万个方程。这么多方程放在一起,自然要用矩阵来写、用线性代数来解(正文 9.1 节「多元函数的极小化」)。

网站上的内容 On the website

第 5 版的若干主题让出了位置,但并没有失去重要性——它们只是搬到了网上。第 6 版的网站(原书写作 math.mit.edu/linearalgebra)提供新版的样章与所有习题集的解答,并保存了第 5 版的这些章节 p. x:

傅里叶级数 Fourier Series
迭代方法与预条件 Iterative Methods and Preconditioners
范数与条件数 Norms and Condition Numbers
密码学中的线性代数 Linear Algebra for Cryptography

正式开课前的三个小问题 Three questions before this course gets serious

序言最后留下了「一点小小的线性代数」——在课程正式开始之前的三个问题 p. x:

  1. 在纸上画三条线段,长度分别为 $r$、$s$、$t$。这三个长度满足什么条件,才能把这些线段拼成一个三角形?(在这个问题里,三条线的方向可以自己选。)
  2. 现在三条直线的方向 $u,v,w$ 是固定的,并且互不相同。但你可以把它们伸缩成 $au,bv,cw$,其中 $a,b,c$ 是任意的数。能否总是用这三个向量 $au,bv,cw$ 拼成一个封闭的三角形?
  3. 线性代数不会停留在平面上!设三维空间中有四条方向各不相同的直线 $u,v,w,z$。能否总是选出数 $a,b,c,d$(不允许为零),使 $au+bv+cw+dz=\mathbf 0$?

先别急着看答案,用下面的演示自己试一试。完整的分析在本章末尾的习题 P.1–P.3 里。

序言的三个问题:动手找答案

问题 1:拖动三个长度滑块,看何时拼得成三角形。问题 2:拖动左边三个方向箭头的尖端,右边自动求出 $a,b,c$ 并画出封闭三角形。问题 3:选择四个三维向量的摆法,看能否让四个系数都不为 0(拖动空白处旋转)。

问题 1 的关键是「最长的一条必须短于另外两条之和」。问题 2 中允许负数(反向伸缩)时总能闭合,而且 $(a,b,c)$ 可以整体乘同一个非零数;若只许用正数,「三个方向都在上半平面」就闭合不了。问题 3 在一般位置时四个系数都不为 0;但若 $u,v,w$ 共面而 $z$ 伸出平面,$z$ 的系数 $d$ 被迫为 0——答案是「不一定」。

马尔可夫矩阵Markov matrix每一列都是加起来为 1 的非负概率;描述状态之间的一步转移。反复相乘趋向稳定分布(特征值 1 的特征向量)。
关联矩阵incidence matrix图的矩阵:每行一条边,每列一个节点;边的起点记 −1、终点记 +1,其余为 0。
傅里叶矩阵Fourier matrix把一串数据变换到频率上的矩阵,揭示数据中含有哪些频率、各有多强。
协方差矩阵covariance matrix对角线是各变量的方差,非对角线是两两之间的协方差;描述变量之间的依赖。它是对称矩阵。
优化optimization求函数的最小值;变量很多时,「导数 = 0」变成一个矩阵方程。深度学习中计算权重靠它(第 9 章)。

序言对马尔可夫矩阵 M 的描述是什么?

本节要点
  • 矩阵承载数据,也对数据做运算;目标是「看进矩阵内部」——特征值/特征向量、奇异值/奇异向量。
  • 四类特殊矩阵:马尔可夫(列和为 1 的概率)、关联(图的连接)、傅里叶(频率)、协方差(方差与依赖)。
  • 优化 = 线性代数遇见微积分:多变量时「导数 = 0」是矩阵方程。序言以三个小问题收尾,它们都关于「组合能否回到原点」。

P8 全书路线图 Contents

目录就是一张地图。这一节把序言里的每个想法「钉」到正文的章节上——以后读英文原书时,你会知道每个想法在哪里正式登场 p. iii–iv。序言说:前七章已经足够(甚至超出)大多数线性代数课程;之后是选修章节,一直通向深度学习 p. vii。

可点击的全书路线图:10 章 + 10 个附录

点击任一章(或附录)查看它的各节标题、页码,以及它和序言哪个想法相连。上方按钮可以高亮「五大分解」「四个子空间」等主线。

五大分解分布在第 1、2、4、6、7 章,四个子空间的故事贯穿第 3、4、7 章,而第 7 章(SVD)是两条主线的交汇点。第 8–10 章是选修,第 9、10 章把线性代数带到优化与深度学习。

章英文标题中文起始页与序言的联系
1Vectors and Matrices向量与矩阵1P1–P3;$A=CR$(1.4)
2Solving Linear Equations $Ax=b$解线性方程组39$A=LU$(2.3)
3The Four Fundamental Subspaces四个基本子空间75P4 的大图;3.2 节再现 $A=CR$
4Orthogonality正交性135互相垂直的空间;$A=QR$(4.4)
5Determinants行列式191序言未专门提及
6Eigenvalues and Eigenvectors特征值与特征向量209$S=Q\Lambda Q^{\mathsf T}$
7The Singular Value Decomposition (SVD)奇异值分解286$A=U\Sigma V^{\mathsf T}$;四个子空间的特殊基
8Linear Transformations线性变换308选修章节
9Linear Algebra in Optimization优化中的线性代数335P7:导数 = 0 → 矩阵方程
10Learning from Data从数据中学习370P6:分段线性学习函数;协方差
组织全书的两种方式

沿四个子空间走:第 3 章画出大图 → 第 4 章讲垂直 → 第 7 章找到四个子空间的特殊基(线性代数基本定理的最后一块)。

沿五大分解走:第 1 章 $CR$ → 第 2 章 $LU$ → 第 4 章 $QR$ → 第 6 章 $Q\Lambda Q^{\mathsf T}$ → 第 7 章 $U\Sigma V^{\mathsf T}$。

附录里也能看到序言的影子:附录 2「矩阵分解」、附录 3「基本分解中的参数计数」、附录 8「马尔可夫矩阵与 Perron–Frobenius」,而附录 9「Elimination and Factorization」与本导读第 2 章所用的 Strang 短文同名。

按照序言,哪几章构成了大多数线性代数课程的内容?

本章小结

  • 从两个向量到一个平面:数乘与相加合成线性组合 $ca_1+da_2$;两个方向不同的三维向量的全部组合 = 一个过原点的无限平面。
  • 从平面到列空间:矩阵是一排列向量,列空间 = 所有列的组合 = 所有 $Ax$。从左到右逐列看,独立列撑大空间,组合列什么也不添。
  • 从列空间到 $A=CR$:$C$ = 独立列,$R$ = 配方;$CR$ 的第 $j$ 列 = $C\times$($R$ 的第 $j$ 列)。独立列数 $r$ 是最关键的数。
  • 四个子空间:行空间 ($r$) ⟂ 零空间 ($n-r$),列空间 ($r$) ⟂ $A^{\mathsf T}$ 的零空间 ($m-r$);独立列数 = 独立行数。
  • 五大分解:$CR$、$LU$、$QR$、$Q\Lambda Q^{\mathsf T}$、$U\Sigma V^{\mathsf T}$(第 1、2、4、6、7 章);正交矩阵最完美,SVD 对每个矩阵成立。
  • 深度学习与应用:学习函数 $F(x,v)$ 分段线性;马尔可夫、关联、傅里叶、协方差矩阵;优化让「导数 = 0」变成矩阵方程。
序言中的想法一句话原书正文展开
线性组合$ca_1+da_2$ 填满过原点的平面p. v–vi1.1
列空间所有列的组合;逐列判断独立还是组合p. vi–vii1.3
$A=CR$独立列 × 配方;按列看矩阵乘法p. vii1.4、3.2
四个子空间维数 $r,\ n-r,\ r,\ m-r$;两对垂直p. viii第 3、4、7 章
五大分解越往后越有用;正交矩阵最完美p. ix、封底第 1、2、4、6、7 章
深度学习$F(x,v)$:$x$ 权重、$v$ 特征;分段线性p. ix第 9、10 章
应用四类特殊矩阵;优化 = 线性代数 + 微积分p. x第 9、10 章,附录 8

一条主线串起全章:「组合能到达哪里」(列空间)与「组合何时回到原点」(独立性、零空间)是同一枚硬币的两面——序言末尾的三个问题问的也正是后者。

自测

各小节中已有 8 道题;这里再来 5 道综合题。

把原书 3×4 矩阵的第 4 列换成 (1, −1, −1) = a₁ − a₂,列空间会变成什么?

一个 5×7 矩阵有 3 个独立列,它的零空间维数是多少?

任意向量 x 乘以一个正交矩阵 Q(例如旋转)之后,长度会怎样?

五大分解 CR、LU、QR、QΛQᵀ、UΣVᵀ 依次出自正文哪几章?

(5, 10, 4) 是 a₁ = (2, 3, 1) 与 a₂ = (1, 4, 2) 的哪个组合?

习题

原书序言没有习题,只有末尾的三个思考题。P.1–P.3 就是这三个问题的完整分析,P.4–P.9 为本导读自拟,覆盖序言的其他想法。

P.1(序言问题 1)在纸上画三条线段,长度分别为 $r,s,t$,方向可以自己选。这三个长度满足什么条件,才能把线段拼成一个三角形?
提示把最长的一条放平作底边,另两条分别从底边两端出发。第三个顶点必须同时落在「以左端为圆心、半径为 $t$」和「以右端为圆心、半径为 $s$」的两个圆上。
参考解答

条件是三个不等式同时成立:$r\lt s+t$,$s\lt r+t$,$t\lt r+s$;等价地,最长的一条短于另外两条之和。

理由:把 $r$ 放作底边,第三个顶点要同时在半径为 $t$ 和 $s$ 的两个圆上。两圆相交当且仅当 $|s-t|\lt r\lt s+t$,这正是上面的三个不等式。若某个不等式取等号(例如 $r=s+t$),两圆相切,「三角形」被压扁成一条线段;若 $r\gt s+t$,两段短的连起来也够不着,拼不成。

向量的说法:三条边首尾相接就是 $u+v+w=\mathbf 0$,于是 $|w|=|u+v|\le|u|+|v|$——这就是三角不等式(向量的长度与夹角在正文 1.2 节)。

P.2(序言问题 2)三条直线的方向 $u,v,w$ 固定且互不相同(两两不平行),但可以伸缩成 $au,bv,cw$($a,b,c$ 为任意数)。能否总是拼成一个封闭三角形 $au+bv+cw=\mathbf 0$?
提示这是 P1 的想法搬到平面上:两个方向不同的向量 $u,v$ 的组合能到达平面上的哪些点?特别地,能不能到达 $-w$?
参考解答

能。因为 $u,v$ 方向不同,它们的组合 $au+bv$ 铺满整个平面(P1 的结论在二维中的版本),特别地可以等于 $-w$:存在 $a,b$ 使 $au+bv=-w$,于是 $au+bv+1\cdot w=\mathbf 0$。

而且 $a\ne0$:否则 $bv=-w$,$v$ 与 $w$ 平行,与题设矛盾;同理 $b\ne0$。所以三条边都真实存在,首尾相接构成封闭三角形。整组 $(a,b,c)$ 还可以同乘任意非零数 $k$——得到的是一族相似的三角形。

要点:平面上任意三个向量一定线性相关。允许负数也很关键——负号表示沿反方向伸缩;如果只许用正数,三个方向都在同一个半平面里(例如都指向上方)时就无法闭合。

P.3(序言问题 3)三维空间中有四条方向各不相同的直线 $u,v,w,z$。能否总是选出都不为零的数 $a,b,c,d$,使 $au+bv+cw+dz=\mathbf 0$?
提示先回答一个弱一点的问题:能不能找到不全为零的 $a,b,c,d$?(三维空间里最多有几个独立的向量?)再想一想:如果 $u,v,w$ 恰好在同一个平面上,而 $z$ 不在,会发生什么?
参考解答

不一定。三维空间里最多只有 3 个独立向量,所以四个向量一定线性相关:总能找到不全为零的 $a,b,c,d$ 使组合为零。但题目要求四个数都不为零,这就不一定了。

反例:$u=(1,0,0)$、$v=(0,1,0)$、$w=(1,1,0)$ 都在 $xy$ 平面上,$z=(0,0,1)$ 伸出平面。$au+bv+cw+dz$ 的第三个分量就是 $d$,要让组合为零只能 $d=0$。一般地:如果某个向量不在另外三个向量的组合所铺成的空间里,它的系数就被迫为 0。

反过来,若四个向量处于「一般位置」——任意三个都不共面(线性无关),那么满足条件的 $(a,b,c,d)$ 在相差一个倍数的意义下唯一,而且四个数都不为 0(若某个为 0,剩下三个就会线性相关)。例如 $u=(1,0,0)$、$v=(0,1,0)$、$w=(0,0,1)$、$z=(1,1,1)$:$u+v+w-z=\mathbf 0$。四个向量都在同一平面上(两两不平行)时,也能选出四个都不为 0 的系数。

P.4判断 $b=(0,5,3)$ 与 $b'=(0,5,4)$ 是否在 3×2 矩阵 $A=[a_1\ a_2]$($a_1=(2,3,1)$、$a_2=(1,4,2)$)的列空间里;在的话写出 $c,d$。
提示解 $2c+d=b_1$、$3c+4d=b_2$、$c+2d=b_3$:用两个方程求出 $c,d$,再代入第三个检验。也可以用 P4 的方向 $(2,-3,5)$:列空间里的向量与它的点积为 0。
参考解答

$b=(0,5,3)$:由第 1、3 个方程 $2c+d=0$、$c+2d=3$ 得 $c=-1,\ d=2$;第 2 个方程 $3(-1)+4(2)=5$ ✓。所以 $b=-a_1+2a_2$,在列空间里。

$b'=(0,5,4)$:由 $2c+d=0$、$c+2d=4$ 得 $c=-\tfrac43,\ d=\tfrac83$;第 2 个方程给出 $-4+\tfrac{32}{3}=\tfrac{20}{3}\ne5$ ✗,不在列空间里。

快速检验:$(0,5,3)\cdot(2,-3,5)=0-15+15=0$ ✓;$(0,5,4)\cdot(2,-3,5)=0-15+20=5\ne0$ ✗。

P.5写出 $A=\begin{bmatrix}1 & 2 & 1\\ 3 & 6 & 4\\ 2 & 4 & 3\end{bmatrix}$ 的 $A=CR$,并由此写出零空间中的一个非零向量,以及四个子空间的维数。
提示从左到右逐列看:第 2 列和第 1 列是什么关系?第 3 列是第 1 列的倍数吗?
参考解答

$a_1=(1,3,2)$ 独立;$a_2=(2,6,4)=2a_1$ 是组合;$a_3=(1,4,3)$ 不是 $a_1$ 的倍数($1/1\ne4/3$),独立。所以

$$A=\begin{bmatrix}1 & 1\\ 3 & 4\\ 2 & 3\end{bmatrix}\begin{bmatrix}1 & 2 & 0\\ 0 & 0 & 1\end{bmatrix}=CR,\qquad r=2.$$

依赖关系 $2a_1-a_2=\mathbf 0$ 给出零空间中的向量 $x=(2,-1,0)$:$Ax=2a_1-a_2=\mathbf 0$ ✓。维数:行空间 2、零空间 $3-2=1$、列空间 2、$A^{\mathsf T}$ 的零空间 $3-2=1$。

P.6(a) 一个 5×7 矩阵有 3 个独立列,写出四个基本子空间各自所在的空间与维数。(b) 一个 3×5 矩阵可能有 4 个独立列吗?
提示(a) 行空间与零空间在 $\mathbb R^n$,列空间与 $A^{\mathsf T}$ 的零空间在 $\mathbb R^m$。(b) 用序言的「惊人事实」。
参考解答

(a) $m=5,\ n=7,\ r=3$:行空间在 $\mathbb R^7$、维数 3;零空间在 $\mathbb R^7$、维数 $7-3=4$;列空间在 $\mathbb R^5$、维数 3;$A^{\mathsf T}$ 的零空间在 $\mathbb R^5$、维数 $5-3=2$。检验:$3+4=7$,$3+2=5$。

(b) 不可能。独立列的个数等于独立行的个数,而 3×5 矩阵只有 3 行,最多 3 个独立行,所以最多 3 个独立列。换个说法:5 个三维向量中最多 3 个独立。

P.7取 $\theta=90^\circ$ 的旋转矩阵 $Q=\begin{bmatrix}0 & -1\\ 1 & 0\end{bmatrix}$。(a) 验证它的两列是互相垂直的单位向量。(b) 计算 $Q\,(3,4)$ 并比较长度。(c) $Q$ 的 SVD 中奇异值是多少?
提示(c) 单位圆被旋转之后还是单位圆,椭圆的两个半轴都是……
参考解答

(a) 两列 $(0,1)$、$(-1,0)$ 长度都是 1,点积 $0\cdot(-1)+1\cdot0=0$ ✓。

(b) $Q(3,4)=3\,(0,1)+4\,(-1,0)=(-4,3)$,长度 $\sqrt{16+9}=5=|(3,4)|$:长度不变,只是逆时针转了 90°。

(c) 旋转把单位圆变成它自己,两个半轴长都是 1,所以 $\sigma_1=\sigma_2=1$,$\Sigma=I$(可取 $U=Q$、$V=I$)。

P.8用 ReLU 积木写出下面两个分段线性函数:(a) $|t|$;(b)「帽子函数」$h(t)$:在 $t\le-1$ 与 $t\ge1$ 时为 0,在 $t=0$ 处取峰值 1,中间是直线段。
提示$c\,\mathrm{ReLU}(t-b)$ 让函数在 $t=b$ 处的斜率增加 $c$。先看各段斜率:(b) 的斜率依次是 $0,\ 1,\ -1,\ 0$。
参考解答

(a) $|t|=\mathrm{ReLU}(t)+\mathrm{ReLU}(-t)$;也可写成 $|t|=-t+2\,\mathrm{ReLU}(t)$(左边斜率 $-1$,在 0 处斜率增加 2)。

(b) 斜率在 $-1$ 处增加 1、在 0 处减少 2、在 1 处增加 1:$h(t)=\mathrm{ReLU}(t+1)-2\,\mathrm{ReLU}(t)+\mathrm{ReLU}(t-1)$。检验:$t\ge1$ 时 $(t+1)-2t+(t-1)=0$ ✓;$0\le t\le1$ 时 $(t+1)-2t=1-t$ ✓。

P.9马尔可夫矩阵 $M=\begin{bmatrix}0.9 & 0.2\\ 0.1 & 0.8\end{bmatrix}$。(a) 验证它的每一列加起来都是 1。(b) 从 $u_0=(1,0)$ 出发,求 $u_1=Mu_0$ 与 $u_2=Mu_1$。(c) 求稳定状态 $u$(满足 $Mu=u$,分量之和为 1)。
提示(c) $Mu=u$ 的第一个分量给出 $0.9u_1+0.2u_2=u_1$,即 $0.1u_1=0.2u_2$;再加上 $u_1+u_2=1$。
参考解答

(a) $0.9+0.1=1$,$0.2+0.8=1$ ✓。

(b) $u_1=(0.9,\ 0.1)$,$u_2=(0.9\cdot0.9+0.2\cdot0.1,\ 0.1\cdot0.9+0.8\cdot0.1)=(0.83,\ 0.17)$。

(c) $0.1u_1=0.2u_2$ 且 $u_1+u_2=1$,得 $u=(\tfrac23,\ \tfrac13)$。检验:$M(\tfrac23,\tfrac13)=(0.6+0.0\overline{6},\ 0.0\overline{6}+0.2\overline{6})=(\tfrac23,\tfrac13)$ ✓。这是特征值为 1 的特征向量。

第 2 章

消元与分解 A = CR Elimination and Factorization A = CR

消元把矩阵化成简化行阶梯形 rref(A):左边是一块单位矩阵 $I$,右边还剩一块 $F$。这块 $F$ 是什么意思?Strang 在这篇 4 页短文里给出答案——$F$ 就是「依赖列的配方」。从它出发,一路得到 $A=CR$、零空间的一组基、分块消元公式 $F=W^{-1}H$,以及「列秩 = 行秩」。

学习目标
  • 看懂消元的产物 $Z=\mathrm{rref}(A)=\begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}P$ 中每一块的含义,并能写出 $A=CR=C\begin{bmatrix}I & F\end{bmatrix}P$。
  • 明白为什么 $C$ 与 $R$ 和「用什么算法」无关:$C$ 是 $A$ 的前 $r$ 个独立列,$F$ 记录其余各列怎样由它们组合出来。
  • 会用三种行变换算出 rref,并能逐列判断:新的一列是加入 $I$(独立)还是加入 $F$(依赖)——只看它的下半部分 $\ell$ 是不是全为 0。
  • 由 $F$ 直接写出零空间的基 $X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$,并把 $AX=0$ 读成「每个依赖列 = 独立列的组合」。
  • 用分块消元理解 $F=W^{-1}H$;理解并会证明「$r$ 个独立行与 $r$ 个独立列交叉出的 $W$ 一定可逆」。
  • 知道 $A=CR$ 为什么能证明「列秩 = 行秩」,以及只想解方程时,停在三角形 $U$ 的 Gauss 消元比 Gauss–Jordan 更省。
一分钟速览
  • 消元用三种可逆的行变换,把 $A$ 化成 $Z=\mathrm{rref}(A)$:$r$ 个主元列拼成单位矩阵 $I$,其余列拼成 $F$,最下面 $m-r$ 行全是 0。
  • $F$ 是依赖列的配方:$A$ 的每个依赖列 = 前面独立列的组合,系数就写在 $F$ 里。原文例子:第 3 列 = 3×第 1 列 + 4×第 2 列。
  • 于是 $A=CR=\begin{bmatrix}C & CF\end{bmatrix}P$:$C$ = $A$ 的前 $r$ 个独立列,$R$ = rref 的非零行,置换 $P$ 只负责把列放回原位。
  • 逐列消元时只问一件事:新列在主元行下方的部分 $\ell$ 全是 0 吗?是 → 依赖,上半部分 $u$ 并入 $F$;否 → 选主元,这一列并入 $I$。
  • 零空间的 $n-r$ 个基向量直接由 $F$ 给出:$X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$,$AX=-CF+CF=0$。
  • 整块地看消元:若左上角 $r\times r$ 的块 $W$ 可逆,$\begin{bmatrix}W & H\\ J & K\end{bmatrix}\to\begin{bmatrix}I & W^{-1}H\\ 0 & 0\end{bmatrix}$,所以 $F=W^{-1}H$。
  • 任取 $r$ 个独立行和 $r$ 个独立列,它们交叉处的 $r\times r$ 子矩阵 $W$ 一定可逆。
  • $A=CR$ 顺带证明了「列秩 = 行秩」;如果只想解 $Ax=b$,停在上三角 $U$ 再回代,比 Gauss–Jordan 消到 rref 更快。
本章地图 §1 rref 与 A = CR消元的产物 §2 A = C[I F]PF = 依赖列的配方 §5 零空间的基X = Pᵀ[−F; I] 列秩 = 行秩A = CR 的推论 §3 三种行变换算出 C 与 F §4 逐列构造 rrefℓ = 0 → F,否则 → I 只解方程:停在 UGauss 比 Gauss–Jordan 省 §6 分块消元F = W⁻¹H §7 交叉子矩阵 Wr 行 × r 列 → 可逆 怎么求? 整块地看 推论
怎么读这一章

原文是 Strang 的一篇 4 页短文:先是摘要,正文分 1.–7. 七段。本章的 §1–§7 与原文段号一一对应,灰色小标签如 §4、(5) 是原文的段号与公式编号,方便对照英文原文(正文附录 9 与它同名)。第 1 章 P3 已经用「原料架与配方表」的比喻见过 $A=CR$;这一章回答两个更深的问题:怎样用消元系统地求出 $C$ 和 $R$,以及 $R$ 里那块 $F$ 到底意味着什么。

全章反复使用原文的两个例子,先认识一下:

$$\text{例 1:}\ A=\begin{bmatrix}1 & 2 & 11 & 17\\ 3 & 7 & 37 & 57\\ 4 & 9 & 48 & 74\end{bmatrix}\qquad\qquad \text{例 2:}\ A=\begin{bmatrix}1 & 2 & 3 & 4\\ 1 & 2 & 4 & 5\end{bmatrix}$$

例 1 是 3×4、秩 2,独立列恰好排在最前面($P=I$);例 2 是 2×4、秩 2,第 2 列是第 1 列的 2 倍,所以独立列是第 1、3 列,需要一个置换 $P$ 把列放回原位。

段这一段问什么一句话答案
§1消元的结果 $Z$ 与 $A$ 是什么关系?$Z$ 保住了行空间、零空间与列之间的关系;$A=CR$。
§2不看算法,$C$ 和 $R$ 由什么决定?前 $r$ 个独立列 + 依赖列的配方 $F$:$A=C\begin{bmatrix}I & F\end{bmatrix}P$。
§3怎样算出 $C$ 和 $F$?三种可逆行变换,化成 $\begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}P$。
§4一列一列地做,新列去哪里?$\ell=0$ 进 $F$,否则选主元进 $I$。
§5rref 换来了什么?零空间的基 $X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$;只解方程时停在 $U$。
§6整块地看,消元在做什么?求 $W^{-1}$:$F=W^{-1}H$,下方各行变成 0。
§7独立行与独立列的交叉一定可逆吗?一定。

§1 消元的产物:rref(A) 与 A = CR Abstract & 1. Elimination and A = CR

这一节要回答:消元到底产出了什么?消元把 $A$ 化成一个简单得多的矩阵 $Z$。Strang 在算法结束的那一刻「按下暂停键」,追问 $Z$ 与 $A$ 的关系,并把答案写成一个矩阵分解:$A=CR$。

摘要:这篇短文要回答的问题 Abstract

如果矩阵 $A$ 的秩是 $r$,那么它的行阶梯形(消元的结果)在 $A$ 的前 $r$ 个独立列的位置上含有一个单位矩阵。问题是:剩下那些列里出现的矩阵 $F$ 该怎样解释? AbstractStrang 的回答只有三句:

  1. $F$ 乘以 $A$ 的前 $r$ 个独立列,就得到 $A$ 其余的 $n-r$ 个依赖列;
  2. 于是 $F$ 揭示了原矩阵 $A$ 的行空间和零空间的基;
  3. $F$ 是列-行分解 $A=CR$ 的关键。
一句话版本:F 是依赖列的配方

沿用第 1 章的比喻:$C$ 是「原料架」(独立的列),$R$ 是「配方表」($R$ 的第 $j$ 列写着:做出 $A$ 的第 $j$ 列要用几份哪种原料)。独立列的配方最简单——「用我自己 1 份」,这些配方拼起来就是 rref 中的单位矩阵 $I$;依赖列的配方拼起来就是 $F$。所以 rref 一点也不神秘:它就是 $A$ 的配方表,外加几行 0。

预备:消元与简化行阶梯形 Elimination and the reduced row echelon form

消元(elimination)大概是线性代数里最古老的算法:通过系统地制造 0,把 $m$ 个方程 $Ax=b$ 化简 §1。它只用三种「行变换」(§3 细讲:把一行的倍数从另一行减去、交换两行、把一行除以它的第一个非零数),一直做到矩阵不能再化简为止。最终的形态有一个专门的名字:

定义简化行阶梯形reduced row echelon form, rref§1

矩阵 $Z$ 叫作简化行阶梯形,如果:

  • 全零行都在最下面;
  • 每个非零行从左数的第一个非零数是 1,叫作主元(pivot);主元一行比一行靠右,像一级级台阶;
  • 主元所在的列里,除主元本身外全是 0。

主元的个数就是秩 $r$。含主元的列叫主元列(pivot columns)——它们恰好是单位矩阵的各列;其余的列叫自由列(free columns)。每个矩阵的简化行阶梯形只有一个(§2 会说明为什么),记作 $Z=\mathrm{rref}(A)$。

原文的例子:第 1 行 + 第 2 行 = 第 3 行 A 3 by 4 example of rank 2

Strang 的例子是一个 3×4 矩阵,它的第 1 行加第 2 行恰好等于第 3 行:$(1,2,11,17)+(3,7,37,57)=(4,9,48,74)$。所以第 3 行没有带来任何新信息,消元必然把它消成全 0,秩 $r=2$ §1:

$$A=\begin{bmatrix}1 & 2 & 11 & 17\\ 3 & 7 & 37 & 57\\ 4 & 9 & 48 & 74\end{bmatrix}\ \longrightarrow\ Z=\begin{bmatrix}1 & 0 & 3 & 5\\ 0 & 1 & 4 & 6\\ 0 & 0 & 0 & 0\end{bmatrix}$$§1
例 1 的消元结果。蓝色:主元列(在 $Z$ 中拼成单位矩阵 $I$,对应 $A$ 的前两列 $C$);琥珀色:其余两列(在 $Z$ 中拼成 $F$);灰色:第 3 行 = 第 1 行 + 第 2 行,被消成全 0。

马上验证 $F$ 的「配方」含义:$F$ 的第 1 列是 $(3,4)$,第 2 列是 $(5,6)$,而

$$3\begin{bmatrix}1\\ 3\\ 4\end{bmatrix}+4\begin{bmatrix}2\\ 7\\ 9\end{bmatrix}=\begin{bmatrix}11\\ 37\\ 48\end{bmatrix}=\text{第 3 列},\qquad 5\begin{bmatrix}1\\ 3\\ 4\end{bmatrix}+6\begin{bmatrix}2\\ 7\\ 9\end{bmatrix}=\begin{bmatrix}17\\ 57\\ 74\end{bmatrix}=\text{第 4 列}.$$

在 $Z$ 里一眼就能读出的关系($Z$ 的第 3 列 $=3\times$第 1 列 $+\,4\times$第 2 列),在 $A$ 里同样成立,只不过藏在一堆大数字后面。消元的作用,就是把这些关系「晒」出来。

Z 与 A 是什么关系?How is Z related to A?

Strang 在这里暂停算法,提出本文的第一个问题:$Z$ 与 $A$ 有什么关系?一种回答来自与 $A$ 相关的基本子空间 §1:

原文的三个答案在例 1 中为什么成立(直觉)
1) $Z$ 的非零行(记作 $R$)是 $A$ 的行空间的一组基$(1,0,3,5)$ 与 $(0,1,4,6)$行变换只是把行互相组合,而且每一步都能撤销,所以「所有行的组合」既不变大也不变小;两行各有一个主元,显然独立。
2) $A$ 的前两列(记作 $C$)是 $A$ 的列空间的一组基$(1,3,4)$ 与 $(2,7,9)$行变换不改变列与列之间的线性关系:$Z$ 的前两列独立、后两列是它们的组合,$A$ 也是如此,而且系数相同。
3) $Z$ 的零空间等于 $A$ 的零空间$Zx=0$ 与 $Ax=0$ 的解完全相同零空间由「与每一行都垂直」的向量组成;行空间没变,与它垂直的向量也就没变。
为什么 R 的行、C 的列恰好是「基」(既张成,又独立)

$R$ 的行是行空间的基。张成:$Z=MA$,所以 $Z$ 的每一行都是 $A$ 的行的组合;反过来 $A=M^{-1}Z$,$A$ 的每一行也是 $Z$ 的行的组合,而 $Z$ 的零行不贡献任何东西——所以 $A$ 的行空间就是 $R$ 的 $r$ 行张成的空间。独立:$R$ 的主元列是单位矩阵,在这些位置上,任何不全为 0 的行组合都不会全是 0。

$C$ 的列是列空间的基。张成:每个依赖列都是 $C$ 的列的组合(系数在 $F$ 里),所以 $A$ 的所有列都在 $C$ 的列张成的空间里。独立:$Z$ 中对应的主元列是单位向量,彼此独立;行变换不改变列之间的关系,所以 $A$ 中这些列也独立。

这正是我们做消元的初衷:「化简矩阵 $A$,而不丢失它包含的信息。」对方程右边的 $b$ 做同样的步骤,就得到 $Zx=d$——解 $x$ 完全相同,矩阵却简单得多 §1。

例:对右边 b 做同样的步骤,得到 Zx = d

取 $b=(3,10,13)$。把 $b$ 作为第 5 列跟着一起消元(同样的四步行变换),$b$ 变成 $d=(1,1,0)$,方程组 $Ax=b$ 变成

$$Zx=d:\qquad x_1+3x_3+5x_4=1,\qquad x_2+4x_3+6x_4=1,\qquad 0=0.$$

令自由变量 $x_3=x_4=0$,立刻读出一个解 $x=(1,1,0,0)$;它确实满足 $Ax=b$:第 1 列 + 第 2 列 $=(3,10,13)$。再加上 §5 的零空间向量,就得到全部的解。反过来,若 $b=(1,0,0)$,消元后第 3 个方程变成 $0=-1$——无解,因为这个 $b$ 不满足「第 3 个分量 = 前两个之和」,不在列空间里。$Zx=d$ 与 $Ax=b$ 的解完全相同,这正是「不丢失信息」的意思。

常见误区:消元保持列空间不变?

不!行变换会改变列空间。例 1 中 $Z$ 的每一列第 3 个分量都是 0,所以 $Z$ 的列空间是「第 3 分量为 0」的那个平面;而 $A$ 的第 1 列 $(1,3,4)$ 第 3 分量不是 0,$A$ 的列空间是另一个平面。行变换保住的是列与列之间的依赖关系(哪几列独立、依赖列用什么系数组合),而不是列本身。所以 $C$ 必须从 $A$ 里取列,绝不能拿 $Z$ 的列。

消元把 A 分解成 C 乘 R Elimination factors A into C times R

这篇短文的目标,是换一种方式表达消元的结果。Strang 说:这个分解不可能是新的,但值得重新强调 §1。

$$A=\begin{bmatrix}1 & 2 & 11 & 17\\ 3 & 7 & 37 & 57\\ 4 & 9 & 48 & 74\end{bmatrix}=\begin{bmatrix}1 & 2\\ 3 & 7\\ 4 & 9\end{bmatrix}\begin{bmatrix}1 & 0 & 3 & 5\\ 0 & 1 & 4 & 6\end{bmatrix}=CR$$§1
定理消元把 A 分解成 C 乘 Relimination factors A into C times R§1

秩为 $r$ 的 $m\times n$ 矩阵可以写成 $A=CR$,形状是 $(m\times r)$ 乘 $(r\times n)$:

  • $C$ = $A$ 的前 $r$ 个独立列。$C$ 有满列秩(full column rank) $r$:它的 $r$ 列互相独立。
  • $R$ = $\mathrm{rref}(A)$ 的 $r$ 个非零行。$R$ 有满行秩(full row rank) $r$:它的 $r$ 行互相独立。

乘积 $CR$ 既可以按列读,也可以按行读——两种读法恰好分别解释了上表的答案 2) 和答案 1)。下面的演示让你逐列、逐行地点一点:

A = CR 的两种读法:点一列,或点一行

点击 $A$ 的任意一列(或一行),看它怎样由 $C$ 和 $R$ 拼出来。按列读:$A$ 的第 $j$ 列 = $C$ 的各列按 $R$ 第 $j$ 列的数组合。按行读:$A$ 的第 $i$ 行 = $R$ 的各行按 $C$ 第 $i$ 行的数组合。也可以用「‹ ›」按钮依次切换。

按列读时,$A$ 的每一列都是 $C$ 的 $r$ 列的组合——所以 $C$ 的列是列空间的基;按行读时,$A$ 的每一行都是 $R$ 的 $r$ 行的组合——所以 $R$ 的行是行空间的基。同一个 $r$ 同时数出了独立列与独立行,这就是下面的「列秩 = 行秩」。例 1 中按行读第 3 行:系数 $(4,9)$ 正是 $C$ 的第 3 行。

试一试:把例 1 的 74 改成 75(第 3 行第 4 列),A = CR 会怎样变?

第 4 列变成 $(17,57,75)$,而 $5a_1+6a_2=(17,57,74)$,差了一点——第 4 列不再是前两列的组合,成了独立列,秩升到 3。于是 $C$ 有三列(第 1、2、4 列),$R=\begin{bmatrix}1 & 0 & 3 & 0\\ 0 & 1 & 4 & 0\\ 0 & 0 & 0 & 1\end{bmatrix}$,$F$ 只剩一列 $(3,4,0)$(第 3 列的配方没变,第 4 列不参与)。「第 3 行 = 第 1 行 + 第 2 行」也不再成立,没有零行了。可以在 §3 的演示里改这个数验证。

定理列秩等于行秩column rank equals row rank§1

任何矩阵的独立列个数都等于独立行个数。Strang 称之为线性代数的「第一个伟大定理」:一旦确立 $A=CR$ 对每个矩阵都成立(§2、§3 完成这件事),这个分解就顺带给出了它的证明。

证明思路

核心想法:$A=CR$ 同时说明「列只有 $r$ 个方向」和「行最多 $r$ 个方向」。

  • 设 $A$ 的独立列个数(列秩)为 $r$,取 $C$ 为前 $r$ 个独立列,则 $A=CR$,而 $R$ 只有 $r$ 行。
  • 按行读:$A$ 的第 $i$ 行 $=$($C$ 的第 $i$ 行)$\times R$,即 $R$ 的 $r$ 行的组合。所以 $A$ 的所有行都落在 $R$ 的 $r$ 行张成的空间里:行秩 $\le r=$ 列秩。
  • 对 $A^{\mathsf T}$ 做同样的论证($A^{\mathsf T}$ 的列就是 $A$ 的行),得到列秩 $\le$ 行秩。
  • 两个不等式合起来:列秩 = 行秩。

对 A 做行变换得到 Z = rref(A)。下面哪一项「可能」被改变?

在例 1 的 A = CR 中按行读:A 的第 3 行 (4, 9, 48, 74) 等于什么?

消元elimination用行变换系统地制造 0,把 $Ax=b$ 化成同解但更简单的方程组;最古老的线性代数算法。
简化行阶梯形reduced row echelon form (rref)消元的终点:主元都是 1、主元列其余全是 0、零行在最下面。$\mathrm{rref}(A)=\begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}P$,且唯一。
主元pivot每个非零行的第一个非零数(在 rref 中化为 1);主元个数 = 秩 $r$。
满列秩 / 满行秩full column rank / full row rank所有列互相独立(秩 = 列数)/ 所有行互相独立(秩 = 行数)。$A=CR$ 中 $C$ 满列秩,$R$ 满行秩。
本节要点
  • 消元的终点是 $Z=\mathrm{rref}(A)$:主元列拼成 $I$,其余列拼成 $F$,多余的行变成 0。
  • $Z$ 保住了行空间、零空间和列之间的依赖关系,但没有保住列空间——所以 $C$ 要从 $A$ 里取。
  • $A=CR$:$C$ 是前 $r$ 个独立列(满列秩),$R$ 是 rref 的非零行(满行秩)。按列读得列空间的基,按行读得行空间的基,合起来证明列秩 = 行秩。

§2 与算法无关的描述:A = C [I F] P 2. C and R independent of the algorithm

§1 里的 $C$ 和 $R$ 是「消元算出来的」。这一节换个角度:先不管用什么算法,$C$ 和 $R$ 本来就由 $A$ 唯一确定 §2。行变换只是找到它们的一种手段(§3)。弄清这一点,rref 里每一块的意义就一目了然。

前 r 个独立列 The first r independent columns

从左到右扫描 $A$ 的列:如果这一列不是它前面各列的组合,就把它留下(独立列);否则跳过(依赖列)。最后留下的 $r$ 列,就是「前 $r$ 个独立列」,它们组成 $C$。这个定义只看 $A$ 本身,与任何算法无关。注意两个小情形:第 1 列只要不是零向量就一定被留下;零向量列永远被跳过(它是「0 份前面的列」)。

定理A = CR = [C CF] Pindependent cols, dependent cols, permute cols§2 (1)

设 $A$ 的前 $r$ 个独立列组成 $C$。那么其余 $n-r$ 列一定是这些独立列的组合 $CF$。这个关键矩阵 $F$ 是行因子 $R=\begin{bmatrix}I & F\end{bmatrix}P$ 的一部分,$R$ 有 $r$ 个独立的行。于是立刻得到 $A=CR$:

$$A=CR=\begin{bmatrix}C & CF\end{bmatrix}P=\begin{bmatrix}\text{独立列} & \text{依赖列}\end{bmatrix}\,\text{(再置换各列)}$$(1)
为什么 F 一定存在,而且唯一

存在:扫描时被跳过的每一列,都是它前面各列的组合;而前面的依赖列又是更前面独立列的组合……一层层代进去,每个依赖列最终都只用到它前面的独立列。把这些系数排成一列,就是 $F$ 的一列。

唯一:$C$ 的列互相独立,所以把一个向量写成 $C$ 的列的组合,系数只有一种:若 $Cf=Cg$,则 $C(f-g)=0$,独立性迫使 $f-g=0$。所以 $F$ 由 $A$ 唯一确定。

R 的 r 行独立:$R$ 的主元列拼起来是单位矩阵 $I$,任何非零的行组合在这些位置上都不会全为 0。

式 (1) 的样子(以例 2 为例):$A$ 的列分成独立列(蓝,组成 $C$)和依赖列(琥珀,组成 $CF$);$\begin{bmatrix}C & CF\end{bmatrix}$ 把它们排好队,$P$ 再把它们放回原位。

把 (1) 读成一句话:$A$ 的列 = 独立列 + 依赖列,依赖列 = 独立列 × 配方,最后按原来的顺序排好。各块的形状如下:

矩阵形状含义
$C$$m\times r$$A$ 的前 $r$ 个独立列(原料架)
$F$$r\times(n-r)$依赖列的配方:$A$ 的依赖列 $=CF$
$\begin{bmatrix}I & F\end{bmatrix}$$r\times n$所有列的配方,独立列排在前面
$P$$n\times n$置换矩阵:把排好队的列放回 $A$ 中的原位
$R=\begin{bmatrix}I & F\end{bmatrix}P$$r\times n$按原顺序排列的配方表 = rref 的非零行

置换矩阵 P 做了什么 The permutation matrix P

写成 $\begin{bmatrix}C & CF\end{bmatrix}$ 时,独立列被排到了最前面。如果 $A$ 的 $r$ 个独立列本来就在最前面,置换矩阵就是 $P=I$;否则需要 $P$ 把 $C$ 和 $CF$ 的 $n$ 列放回它们在 $A$ 中的正确位置 §2。

定义置换矩阵permutation matrix

把单位矩阵的各列重新排序得到的矩阵:每行、每列恰好有一个 1,其余是 0。右乘 $P$ 重排一个矩阵的列,左乘则重排行。置换总能撤销,而且撤销它的正是转置:$PP^{\mathsf T}=I$。

原文例 (2):P 交换第 2、3 列 An example in which P exchanges columns 2 and 3

例 2 从左到右扫描:第 1 列 $(1,1)$ 留下;第 2 列 $(2,2)=2\times$第 1 列,跳过;第 3 列 $(3,4)$ 不是 $(1,1)$ 的倍数,留下;第 4 列 $(4,5)=(1,1)+(3,4)$,跳过。所以独立列是第 1、3 列,$F$ 的两列分别是第 2 列和第 4 列的配方 $(2,0)$ 与 $(1,1)$ (2):

$$A=\begin{bmatrix}1 & 2 & 3 & 4\\ 1 & 2 & 4 & 5\end{bmatrix}=\begin{bmatrix}1 & 3\\ 1 & 4\end{bmatrix}\begin{bmatrix}1 & 2 & 0 & 1\\ 0 & 0 & 1 & 1\end{bmatrix}=\begin{bmatrix}1 & 3\\ 1 & 4\end{bmatrix}\begin{bmatrix}1 & 0 & 2 & 1\\ 0 & 1 & 0 & 1\end{bmatrix}P=CR$$(2)

这里 $\begin{bmatrix}I & F\end{bmatrix}=\begin{bmatrix}1 & 0 & 2 & 1\\ 0 & 1 & 0 & 1\end{bmatrix}$ 是「排好队」的配方表,右乘

$$P=\begin{bmatrix}1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1\end{bmatrix}$$

就把它的第 2、3 列互换,得到 $R=\begin{bmatrix}1 & 2 & 0 & 1\\ 0 & 0 & 1 & 1\end{bmatrix}$——正好是 $\mathrm{rref}(A)$。验证一列:$C$ 乘 $R$ 的第 4 列 $(1,1)$,得 $(1,1)+(3,4)=(4,5)$ ✓。

为什么 R 里「1 的左边只有 0」

看 $R$ 的第 2 行 $(0,0,1,1)$:它的第一个非零数出现在第 3 列。原因是第 2 列(依赖列)只能用它前面的独立列(第 1 列)来组合,所以它的配方 $(2,0)$ 在「第 3 列」那一项上必然是 0。一般地,依赖列的配方在它右边的独立列上全是 0——这就是 rref 呈「台阶」形的原因,也就是 §3 里那句「主元 1 的前面只能是 0」。

常见误区:F 就是 R 的最后 n − r 列?

只有 $P=I$(独立列都在前面)时才是。一般情况下,$F$ 由 $R$ 的非主元列按原来的左右顺序组成。例 2 中 $R=\begin{bmatrix}1 & 2 & 0 & 1\\ 0 & 0 & 1 & 1\end{bmatrix}$ 的最后两列是 $\begin{bmatrix}0 & 1\\ 1 & 1\end{bmatrix}$,其中第 3 列是主元列;真正的 $F$ 是第 2、4 列:$\begin{bmatrix}2 & 1\\ 0 & 1\end{bmatrix}$。先找主元,再取其余的列。

rref 里的本质信息 The essential information in rref(A)

$Z=\mathrm{rref}(A)$ 里真正的信息只有两样 §2:

  1. 一张列号表:$A$ 的 $r$ 个独立列是哪几列(决定 $P$ 和 $C$);
  2. 矩阵 $F$($r\times(n-r)$):怎样把这些独立列组合成 $n-r$ 个依赖列 $CF$。

这两样东西都只由 $A$ 决定,而它们唯一地确定了 $Z$(§3 的式 (3))。所以不管行变换按什么顺序做,最后的 rref 都是同一个——这就是「与算法无关」的含义。

为什么两个人用不同的顺序消元,得到的 rref 一定一样

不论按什么顺序做行变换,结果 $Z$ 都满足:(i) $Z=MA$,$M$ 可逆,所以 $Z$ 的列与 $A$ 的列满足完全相同的线性关系;(ii) $Z$ 是简化行阶梯形,它的主元列是单位向量 $e_1,e_2,\dots,e_r$,按从左到右的顺序排列。

由 (i),$Z$ 的主元列必须恰好是 $A$ 的「前 $r$ 个独立列」所在的位置(独立与否在 $A$ 与 $Z$ 中一致);由 (ii),这些位置上的列被唯一确定为 $e_1,\dots,e_r$。每个依赖列在 $Z$ 中等于 $e_1,\dots,e_r$ 按它的配方组合,而配方又与 $A$ 中的相同,也就是 $F$ 的那一列。所以 $Z$ 的每一列都被 $A$ 唯一确定。§4 的演示里勾选「选最大的主元」,可以亲眼看到不同的中间过程走到同一个终点。

试一试:如果例 2 的第 1 列换成零向量,A = [0 2 3 4; 0 2 4 5],C、F、P 是什么?

从左到右:第 1 列是零向量,跳过(配方全是 0);第 2 列 $(2,2)$ 留下;第 3 列 $(3,4)$ 不是 $(2,2)$ 的倍数,留下;第 4 列 $(4,5)=\tfrac12(2,2)+(3,4)$,跳过。所以 $C=\begin{bmatrix}2 & 3\\ 2 & 4\end{bmatrix}$(第 2、3 列),$F=\begin{bmatrix}0 & \tfrac12\\ 0 & 1\end{bmatrix}$(第 1 列的配方 $(0,0)$、第 4 列的配方 $(\tfrac12,1)$),$P$ 把排好队的 $(a_2,a_3\,|\,a_1,a_4)$ 放回原位,$R=\begin{bmatrix}0 & 1 & 0 & \tfrac12\\ 0 & 0 & 1 & 1\end{bmatrix}$。注意 $F$ 里出现了分数,而且 rref 的第一列全是 0。

拼装 A = C [I F] P:分类、排队、提出 C、再放回原位

每张卡片是 $A$ 的一列,卡片下方是它的「配方」($R$ 的对应列)。点「下一步」分五步走完式 (1):分类 → 排队 → 提出 $C$ → 用 $P$ 放回原位;也可以点「播放」。换个例子,或点「随机拼一个」:用随机的 $C$、$F$、$P$ 造出 $A$,再看消元能否把它们原样找回来。

排队时,配方一起移动:独立列的配方是单位向量,排在前面拼成 $I$;依赖列的配方排在后面拼成 $F$。所以 $\begin{bmatrix}C & CF\end{bmatrix}=C\begin{bmatrix}I & F\end{bmatrix}$ 只是「提出公因子 $C$」。$P$ 不改变任何数,只改变列的位置。「随机拼一个」时,消元找回的 $C$、$F$、$P$ 与拼装用的完全相同——这正是「$C$ 与 $R$ 由 $A$ 唯一确定」。

例 2 中,置换矩阵 P 的作用是什么?

如果 m×n 矩阵 A 的 n 列全都独立(r = n),A = C[I F]P 变成什么?

置换矩阵permutation matrix单位矩阵的各列重新排序;右乘 $P$ 重排列,左乘重排行;$PP^{\mathsf T}=I$。
依赖列dependent columns是前面各列组合的列;在 $A=CR$ 中它们组成 $CF$,配方写在 $F$ 里。
本节要点
  • $C$ = 从左到右扫描时留下的独立列;$F$ = 依赖列的配方。两者都只由 $A$ 决定,与算法无关。
  • $A=\begin{bmatrix}C & CF\end{bmatrix}P=C\begin{bmatrix}I & F\end{bmatrix}P=CR$:$P$ 只负责把列放回原位,独立列在最前面时 $P=I$。
  • 依赖列的配方在它右边的独立列上全是 0,所以 $R$ 是台阶形;rref 由「独立列号 + $F$」唯一确定。

§3 用行变换求出 C 与 F 3. Row operations and rref(A)

§2 确认了分解 $A=CR$ 一定存在。可是怎样算出前 $r$ 个独立列(进入 $C$)、以及其余 $n-r$ 列的依赖关系 $CF$?Strang 说:这正是对 $A$ 做行变换的时刻 §3。

三种行变换 Three row operations

为了把 $A$ 化成简化行阶梯形 $Z=\mathrm{rref}(A)$,只允许三种操作 §3:

原文操作例子怎样撤销
(a)从一行减去另一行的倍数(另一行在上方或下方都可以)例 1:第 2 行 − 3×第 1 行,$(3,7,37,57)\to(0,1,4,6)$加回去:第 2 行 + 3×第 1 行
(b)交换两行第 1 列的第一个数是 0 时,换一个非零数上来当主元再交换一次
(c)一行除以它的第一个非零数把主元化成 1:$(2,1,1)\div2=(1,\tfrac12,\tfrac12)$再乘回去

Strang 打趣说:所有线性代数老师,以及「一个正的比例」的学生,都熟悉这些步骤和它们的结果 $\mathrm{rref}(A)$ §3。三种操作都可以撤销(可逆)——这一点至关重要:可逆意味着不丢信息。

常见误区:「把一行乘以 0」也算行变换?

不算。乘以 0 会把一行的信息抹掉,无法撤销,方程组的解也会变。(c) 只允许除以非零数(一行的第一个非零数),(a) 只允许加减另一行的倍数,(b) 只是换位置——每一步都能原样退回去。

rref 的结构:式 (3) Elimination reduces A to Z = rref(A)

做完行变换,$\mathrm{rref}(A)$ 里含有一个 $r\times r$ 的单位矩阵 $I$(每个主元 1 的前面只能是 0)。$I$ 所在的位置,揭示了 $A$ 的前 $r$ 个独立列;而式 (1) 揭示了 $F$ 的意义:它告诉我们 $A$ 的 $n-r$ 个依赖列 $CF$ 怎样由 $C$ 中的独立列组合出来。$A$ 剩下的 $m-r$ 个「依赖的行」必定变成 $Z$ 中的零行 §3:

$$Z=\mathrm{rref}(A)=\begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}P$$(3)

对照式 (1) 的 $A=C\begin{bmatrix}I & F\end{bmatrix}P$:同一个 $F$、同一个 $P$。也就是说,$Z$ 的上半部分就是 $R$,下半部分是 $m-r$ 行 0。

常见误区:rref 的主元都在对角线上?

不一定。主元只要求「一行比一行靠右」,中间可以跳过依赖列。例 2 的第 2 个主元在第 2 行第 3 列;例 1 的主元碰巧在 $(1,1)$、$(2,2)$。所以 $I$ 在 rref 中可能是「散开」的,要靠 $P$ 才能把它收拢成一个整块——这正是式 (3) 里那个 $P$ 的作用。

为什么 rref 能读出 A 的配方 Why the relations among columns survive

关键在于:行变换对每一列做的是同一件事。每一步行变换都等于左乘一个可逆矩阵,做完全部步骤,$Z=MA$,其中 $M$ 可逆。于是 $Z$ 的第 $j$ 列 $=M\times$($A$ 的第 $j$ 列)。

  • 如果 $A$ 中 $a_3=3a_1+4a_2$,两边左乘 $M$ 就得到 $z_3=3z_1+4z_2$;反过来,$M$ 可逆,左乘 $M^{-1}$ 又能退回去。所以列之间的线性关系在 $A$ 与 $Z$ 中完全相同:独立列在相同的位置,依赖列的配方也相同。
  • 在 $Z$ 里,主元列是单位向量 $(1,0,0)$、$(0,1,0)$……,于是任何一列的配方直接就是这一列的数:$z_3=(3,4,0)=3(1,0,0)+4(0,1,0)$。这就是为什么 $F$ 可以从 $Z$ 里「抄」出来。
为什么每一步行变换都是「左乘一个可逆矩阵」

对单位矩阵 $I$ 做某个行变换得到 $E$,那么对任意 $A$ 做同一个行变换,结果就是 $EA$。例如 3×3 时「第 2 行减去 3×第 1 行」对应

$$E=\begin{bmatrix}1 & 0 & 0\\ -3 & 1 & 0\\ 0 & 0 & 1\end{bmatrix},\qquad E^{-1}=\begin{bmatrix}1 & 0 & 0\\ 3 & 1 & 0\\ 0 & 0 & 1\end{bmatrix}.$$

交换两行对应一个置换矩阵(它的逆是它自己),一行除以 $d$ 对应把单位矩阵那一行的 1 换成 $1/d$(逆是乘以 $d$)。所有步骤的乘积 $M=E_k\cdots E_2E_1$ 仍然可逆。

消元时:列在动,配方不变

3×4 矩阵的四列都是三维向量。拖动「消元进度」,从 $A$ 一步步走到 $Z=\mathrm{rref}(A)$:每一步行变换都同时移动所有的列,前两列张成的平面(列空间)也跟着转动;但琥珀色的依赖列始终落在「$3\times$第 1 列 $+\,4\times$第 2 列」这个平行四边形的对角上。拖动「旋转」换个角度看;图会自动缩放。

自拟矩阵 $A=\begin{bmatrix}1 & 1 & 7 & 11\\ 2 & -1 & 2 & 4\\ 3 & 0 & 9 & 15\end{bmatrix}$ 与例 1 有相同的 $F$(第 3 列 $=3a_1+4a_2$,第 4 列 $=5a_1+6a_2$),也有「第 3 行 = 第 1 行 + 第 2 行」,只是各列方向更分散,看得更清楚;例 1 的前两列夹角只有约 2°。一开始,$A$ 的列都落在平面 $z=x+y$ 上(因为第 3 行 = 第 1 行 + 第 2 行,每一列的第 3 个分量都等于前两个之和);消元结束时,$Z$ 的列都落在平面 $z=0$ 上——列空间变了。可是在每一个中间时刻,依赖列都恰好是 $3\times$第 1 列 $+\,4\times$第 2 列:配方 $(3,4)$ 从头到尾没有变,到了 $Z$ 里它直接写在第 3 列上。这就是 $F$ 能从 rref 里「抄」出来的原因。

例把例 1 的四步消元记成一个矩阵 M

对单位矩阵依次做同样的四步(第 2 行 − 3×第 1 行,第 3 行 − 4×第 1 行,第 1 行 − 2×第 2 行,第 3 行 − 第 2 行),就得到 $M$,而且 $MA=Z$:

$$M=\begin{bmatrix}7 & -2 & 0\\ -3 & 1 & 0\\ -1 & -1 & 1\end{bmatrix},\qquad MA=\begin{bmatrix}7 & -2 & 0\\ -3 & 1 & 0\\ -1 & -1 & 1\end{bmatrix}\begin{bmatrix}1 & 2 & 11 & 17\\ 3 & 7 & 37 & 57\\ 4 & 9 & 48 & 74\end{bmatrix}=\begin{bmatrix}1 & 0 & 3 & 5\\ 0 & 1 & 4 & 6\\ 0 & 0 & 0 & 0\end{bmatrix}.$$

看 $M$ 的结构:左上角 $\begin{bmatrix}7 & -2\\ -3 & 1\end{bmatrix}$ 正是 $\begin{bmatrix}1 & 2\\ 3 & 7\end{bmatrix}^{-1}$;最后一行 $(-1,-1,1)$ 说的是「第 3 行 − 第 1 行 − 第 2 行 = 0」。§6 会揭晓:这不是巧合,$M$ 就是分块消元矩阵 $\begin{bmatrix}W^{-1} & 0\\ -JW^{-1} & I\end{bmatrix}$。

原文强调:行变换 (a)(b)(c) 都可逆。在主元行的上方和下方都做消元,就是 Gauss–Jordan 消元(Gauss-Jordan elimination)。不过,把 $A$ 化成阶梯形的那个矩阵 $M$ 并不重要,重要的是它揭示出来的分解 $A=CR$ §3。

算法Gauss–Jordan 消元:从 A 得到 C 与 Ffrom row operations to A = CR§3
  1. 从第 1 列开始,主元行从第 1 行开始。
  2. 在当前列里、主元行及其下方找一个非零数;全是 0 → 这一列没有主元(依赖列),换下一列。
  3. 需要的话用 (b) 把它换到主元行;用 (c) 把它化成 1。
  4. 用 (a) 把这一列其余各行(上方和下方)全部消成 0;主元行下移一行,处理下一列。
  5. 结束时:主元所在的列号 → 在 $A$ 中取这些列得 $C$;非零行就是 $R$,其中非主元列拼成 $F$。
rref 逐步消元:每一步一个行变换

选一个例子,或直接改表格里的数(可以输入分数,如 3/4),然后点「下一步」。紫圈是当前主元,琥珀色是这一步被改写的行,绿色是刚被消成 0 的位置,虚线框是本步用到的主元行。把「消元方式」切换成 Gauss(只向下消),比较两种消元的终点与运算量。

Gauss–Jordan 的每个主元最后都变成 1,而且它所在的列上下都被消成 0;结束时主元列拼成 $I$,其余列(琥珀色)就是 $F$。在「需要交换行」的例子里,第 2 列在主元行下方全是 0——它没有主元,是依赖列,直接跳过。切换到 Gauss:只向下消元,停在上三角(阶梯形)$U$,用到的行变换更少——这就是 §5 末尾说的「只解方程时,停在 $U$ 更快」。

试一试:例 2 化成 rref 要几步?每一步是 (a)(b)(c) 中的哪一种?

只要两步,都是 (a):第 2 行 − 第 1 行,得 $\begin{bmatrix}1 & 2 & 3 & 4\\ 0 & 0 & 1 & 1\end{bmatrix}$——第 2 列在第 2 行是 0,没有主元,跳过;第 3 列的主元恰好是 1,不需要 (c);再做第 1 行 − 3×第 2 行,得 $\begin{bmatrix}1 & 2 & 0 & 1\\ 0 & 0 & 1 & 1\end{bmatrix}$。主元已经都是 1、不需要换行,所以 (b)(c) 都没用上。可以在上面的演示里选「例 2」核对。

下面哪一个「不是」允许的行变换?

某个 3×4 矩阵 A 的 rref 是 Z,其中第 1、2 列是主元列,Z 的第 4 列是 (5, 6, 0)。由此可以直接断定 A 的第 4 列等于什么?

行变换row operations(a) 减去另一行的倍数;(b) 交换两行;(c) 一行除以它的第一个非零数。都可逆,等于左乘一个可逆矩阵。
Gauss–Jordan 消元Gauss-Jordan elimination在主元行的上方和下方都消元,并把主元化成 1,一直做到 rref。
本节要点
  • 三种可逆的行变换把 $A$ 化成 $Z=\mathrm{rref}(A)=\begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}P$,式 (3)。
  • 行变换 = 左乘可逆矩阵 $M$,对每一列做同样的事,所以列之间的关系不变;在 $Z$ 里主元列是单位向量,依赖列的配方可以直接读出。
  • 主元的位置 → $C$ 取 $A$ 的哪几列;非零行 → $R$;非主元列 → $F$;$m-r$ 个依赖的行 → 零行。

§4 逐列构造 rref:新列加入 I 还是 F 4. Column-by-column construction of rref(A)

在用 $A=CR$ 解 $Ax=0$(§5)之前,Strang 先给出一种逐列——从左到右、一次一列——由 $A$ 构造 $\mathrm{rref}(A)$ 的办法 §4。它把 §2 的「从左到右扫描」与 §3 的行变换合二为一:每处理一列,只需回答一个问题。

处理完前 k 列时的样子 After elimination on k columns

对前 $k$ 列做完消元后,矩阵的这一部分已经是它自己的 rref。现在轮到第 $k+1$ 列。把这一新列分成两段:上段 $u$ 位于已经有主元的那些行,下段 $\ell$ 位于其余各行 (4):

$$\text{前 }k+1\text{ 列:}\qquad \begin{bmatrix}I_k & F_k\\ 0 & 0\end{bmatrix}P_k\quad\text{后面接着}\quad\begin{bmatrix}u\\ \ell\end{bmatrix}$$(4)

下标 $k$ 表示「处理完前 $k$ 列」;$I_k$ 的大小等于这 $k$ 列中独立列的个数,$F_k$ 是已处理的依赖列的配方,$P_k$ 记录这些列在 $A$ 中的位置。

式 (4) 的示意:前 $k$ 列已化成 $\begin{bmatrix}I_k & F_k\\ 0 & 0\end{bmatrix}P_k$;新列在主元行上的部分是 $u$,其余部分是 $\ell$。只看 $\ell$ 就能决定新列的去向。

关键问题:加入 I 还是 F?Does column k + 1 join with I_k or F_k?

Strang 称之为「大问题」:新的第 $k+1$ 列是并入 $I_k$,还是并入 $F_k$?答案只取决于 $\ell$ §4:

情形 1:$\ell$ 全为 0 → 依赖,并入 $F$

新列依赖于前 $k$ 列。什么都不用做:上段 $u$ 直接并入 $F_k$,成为 $F_{k+1}$ 的新的一列,然后处理第 $k+2$ 列。

$u$ 就是这一列的配方:它说明新列 = 各主元列按 $u$ 的系数组合。

情形 2:$\ell$ 不全为 0 → 独立,并入 $I$

新列独立于前 $k$ 列。在 $\ell$ 中任选一个非零数(最好选最大的)作主元,把 $A$ 的这一行移到 $\ell$ 的最上面,再用这个主元行把第 $k+1$ 列的其余位置全部消成 0(这一步通常会改变 $k+1$ 之后的各列)。第 $k+1$ 列并入 $I_k$ 成为 $I_{k+1}$,调整 $P_k$,处理第 $k+2$ 列。

为什么「ℓ 全为 0」恰好等于「依赖于前面的列」

当前矩阵中,前 $k$ 列里的主元列都是单位向量,而且前 $k$ 列在 $\ell$ 所在的那些行上全是 0(式 (4) 下方的两块 0)。

  • 若 $\ell=0$:新列 $=\begin{bmatrix}u\\ 0\end{bmatrix}$ 正好是各主元列按 $u$ 的系数组合。行变换不改变列之间的关系(§3),所以在 $A$ 中,第 $k+1$ 列也是那些独立列按 $u$ 的系数组合——依赖,且配方是 $u$。
  • 若 $\ell\ne0$:前 $k$ 列的任何组合在 $\ell$ 那些行上都是 0,不可能等于新列——所以新列独立于前 $k$ 列。
补充:为什么「最好选最大的」作主元

用分数精确计算时(如本页的演示),选 $\ell$ 中任何一个非零数作主元,最后得到的 rref 都一样——rref 是唯一的(§2)。但计算机用浮点数计算时,除以一个很小的主元会放大舍入误差;选绝对值最大的数作主元,能让主元下方各行要减去的倍数都不超过 1,误差更小。这种做法叫部分主元法(partial pivoting)。

扫描结束:一张「最理想的列号表」A most desirable list of column numbers

消元结束时,我们得到一张最理想的列号表:它列出了 $A$ 的前 $r$ 个独立列。这些列就是 $C$ 的各列,它们在 $A=CR$ 的行因子 $R$ 中产生了 $r\times r$ 单位矩阵 $I_r$ §4。下面的演示把这个过程一列一列地放慢:

逐列扫描:新列的下半部分 ℓ 全是 0 吗?

每点一次「下一步」处理半步:先看新列(标出上段 $u$ 与下段 $\ell$),再做决定(并入 $F$,或选主元并入 $I$)。左图是当前矩阵(列保持原顺序),右图把已处理的列按 $P_k$ 重排成式 (4) 的样子 $\begin{bmatrix}I_k & F_k\\ 0 & 0\end{bmatrix}$,后面接着新列。勾选「选最大的主元」对比:中间过程不同,结果完全一样。

在例 1 中,第 3、4 列来到时 $\ell$ 都已经是 0:它们的 $u$ 分别是 $(3,4)$ 与 $(5,6)$——正是 $F$ 的两列。注意右图始终保持式 (4) 的形状:左上是单位矩阵,下方是 0。在「选最大主元」的例子里勾选复选框:第 1 列会选 6 而不是 2 作主元,中间的分数完全不同,但最后的列号表和 $F$ 一模一样。

例 1 的逐列记录 The column-by-column record for example 1

把演示里例 1 的四步整理成一张表(「处理前」指处理这一列之前,矩阵中这一列的样子):

列处理前的 $u$处理前的 $\ell$判断与动作去向
1(空)$(1,3,4)$$\ell\ne0$:主元 1 在第 1 行;第 2 行 − 3×第 1 行,第 3 行 − 4×第 1 行$I_1$
2$(2)$$(1,1)$$\ell\ne0$:主元 1 在第 2 行;第 1 行 − 2×第 2 行,第 3 行 − 第 2 行$I_2$
3$(3,4)$$(0)$$\ell=0$:依赖,不做任何行变换$F$ 的第 1 列 $(3,4)$
4$(5,6)$$(0)$$\ell=0$:依赖,不做任何行变换$F$ 的第 2 列 $(5,6)$

注意第 3、4 列的 $u$:它们在处理第 1、2 列时被「顺带」算好了(Strang 说主元那一步「预计会改变后面的各列」),轮到它们时只需看一眼 $\ell$。这也说明了为什么逐列构造与 §3 一次性做完的 Gauss–Jordan 得到同一个结果——它们是同一串行变换,只是记账方式不同。

试一试:对例 2 逐列走一遍,写出每一列的 u、ℓ 和去向

第 1 列:$u$ 为空,$\ell=(1,1)\ne0$ → 主元在第 1 行,第 2 行 − 第 1 行 → 并入 $I$。第 2 列:此时是 $(2,0)$,$u=(2)$,$\ell=(0)$ → 依赖,并入 $F$。第 3 列:此时是 $(3,1)$,$u=(3)$,$\ell=(1)\ne0$ → 主元在第 2 行,第 1 行 − 3×第 2 行 → 并入 $I$。第 4 列:此时是 $(1,1)$,两行都已有主元,$\ell$ 为空 → 依赖,$u=(1,1)$ 并入 $F$。注意第 2 列的配方在最终的 $F$ 里是 $(2,0)$:当时的 $\ell=(0)$ 恰好落在后来的主元行上,补上的就是这个 0。

逐列消元处理第 k+1 列时,发现它的下段 ℓ 全为 0。接下来应该怎么做?

3×6 矩阵逐列消元时,处理完前 4 列后已经有 3 个主元(每一行都有主元了)。第 5、6 列会怎样?

主元列 / 自由列pivot columns / free columnsrref 中含主元的列(对应 $A$ 的独立列,拼成 $I$)/ 其余的列(对应依赖列,拼成 $F$)。
部分主元法partial pivoting在候选位置中选绝对值最大的数作主元,以减小浮点运算的舍入误差;不影响最后的 rref。
本节要点
  • 逐列消元时,前 $k$ 列已是 $\begin{bmatrix}I_k & F_k\\ 0 & 0\end{bmatrix}P_k$;新列分成主元行上的 $u$ 与其余行上的 $\ell$。
  • $\ell=0$ → 依赖,$u$ 并入 $F$;$\ell\ne0$ → 独立,选主元(最好最大)、换行、消元,并入 $I$。
  • 最后得到「前 $r$ 个独立列」的列号表:它们就是 $C$,在 $R$ 中产生 $I_r$。

§5 F 给出零空间的基 5. The nullspace from F

把 $A$ 化成 $\mathrm{rref}(A)$ 究竟换来了什么?Strang 的回答是:行空间没有变!于是它的正交补——$A$ 的零空间——也没有变。$CF$ 的每一列说明 $A$ 的一个依赖列怎样由 $C$ 中的独立列组合出来;换个角度看,$F$ 的各列其实告诉了我们 $Ax=0$ 的 $n-r$ 个解 §5。这一节把这句话讲透。

原文的例子:2 个方程,4 个未知数 Solving Ax = 0 for the 3 by 4 example

例 1 的 $Ax=0$ 化简后只剩两个方程(第 3 个方程是前两个之和,自动成立,原文也只写了前两个)§5:

$$\begin{aligned}x_1+2x_2+11x_3+17x_4&=0\\ 3x_1+7x_2+37x_3+57x_4&=0\end{aligned}\quad\xrightarrow{\ \text{化简}\ }\quad \begin{bmatrix}I & F\end{bmatrix}x:\ \ \begin{aligned}x_1+3x_3+5x_4&=0\\ x_2+4x_3+6x_4&=0\end{aligned}$$§5

主元列对应的 $x_1,x_2$ 叫主元变量,其余的 $x_3,x_4$ 叫自由变量:自由变量可以随便取,主元变量随之确定——$x_1=-3x_3-5x_4$,$x_2=-4x_3-6x_4$。

  • 取 $x_3=1,\ x_4=0$:$x=(-3,-4,1,0)$。注意 3 和 4 来自 $F$($F$ 的第 1 列,带负号)。
  • 取 $x_3=0,\ x_4=1$:$x=(-5,-6,0,1)$。5 和 6 是 $F$ 的第 2 列。

这两个解就是 $AX=0$ 中矩阵 $X$ 的两列(这个例子 $P=I$)§5:

$$X=\begin{bmatrix}-3 & -5\\ -4 & -6\\ 1 & 0\\ 0 & 1\end{bmatrix}=\begin{bmatrix}-F\\ I\end{bmatrix},\qquad AX=\begin{bmatrix}1 & 2 & 11 & 17\\ 3 & 7 & 37 & 57\\ 4 & 9 & 48 & 74\end{bmatrix}\begin{bmatrix}-3 & -5\\ -4 & -6\\ 1 & 0\\ 0 & 1\end{bmatrix}=\begin{bmatrix}0 & 0\\ 0 & 0\\ 0 & 0\end{bmatrix}$$
定理零空间的一组自然的基a natural basis for the nullspace(5)

$X$ 的 $n-r$ 列是 $A$ 的零空间的一组自然的基:

$$A=C\begin{bmatrix}I & F\end{bmatrix}P\ \ \text{乘以}\ \ X=P^{\mathsf T}\begin{bmatrix}-F\\ I_{n-r}\end{bmatrix}\ \ \text{得到}\ \ AX=-CF+CF=0$$(5)
为什么 AX = 0,而且 X 的列是一组基

$AX=0$:置换满足 $PP^{\mathsf T}=I$,所以 $AX=C\begin{bmatrix}I & F\end{bmatrix}PP^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}=C\begin{bmatrix}I & F\end{bmatrix}\begin{bmatrix}-F\\ I\end{bmatrix}=C(-F+F)=0$。

独立:在自由变量的位置上,$X$ 的各列恰好是单位矩阵 $I_{n-r}$ 的各列,所以它们的组合只有系数全为 0 时才是零向量。

张成整个零空间:任取 $Ax=0$ 的解 $x$,按它在自由位置上的取值组合 $X$ 的列得到 $y$。则 $x-y$ 仍是解,且自由变量全为 0;而 $\begin{bmatrix}I & F\end{bmatrix}$ 的方程说明此时主元变量也全为 0。所以 $x=y$。

直觉:零空间的向量 = 「依赖列减去它的配方」

$x=(-3,-4,1,0)$ 在零空间里,说的就是 $-3a_1-4a_2+1\cdot a_3=0$,即 第 3 列 = 3(第 1 列)+ 4(第 2 列)。把依赖列放在一边、把它的配方放在另一边,移项就得到一个零空间向量。所以这 $n-r$ 个解「告诉我们的正是已知的事」:$A$ 的每个依赖列都是 $C$ 中独立列的组合 §5。几何上,零空间向量就是一组让 $A$ 的各列首尾相接后恰好回到原点的系数——下面的演示把这件事画出来。

试一试:例 1 中取 x₃ = 2、x₄ = −1,零空间里对应的 x 是什么?

$x=2\,(-3,-4,1,0)+(-1)(-5,-6,0,1)=(-1,-2,2,-1)$。验证第 1 个方程:$-1-4+22-17=0$ ✓;第 2 个:$-3-14+74-57=0$ ✓;第 3 个是前两个之和,自然也是 0。主元变量 $x_1,x_2$ 不用解方程,直接由 $-F$ 乘自由变量得到:$x_1=-(3\cdot2+5\cdot(-1))=-1$,$x_2=-(4\cdot2+6\cdot(-1))=-2$。

F 同时给出行空间的基:RX = 0 Row space and nullspace from the same F

摘要说 $F$ 揭示了行空间和零空间的基。行空间的基就是 $R=\begin{bmatrix}I & F\end{bmatrix}P$ 的 $r$ 行(§1);零空间的基是 $X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$ 的 $n-r$ 列。两者用的是同一个 $F$,而且

$$RX=\begin{bmatrix}I & F\end{bmatrix}PP^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}=-F+F=0.$$

$RX=0$ 的每一个元素都是「$R$ 的一行」与「$X$ 的一列」的点积,所以行空间的每个基向量都与零空间的每个基向量垂直——这正是 §1 中「零空间与行空间正交」的具体样子。例 1 中:$(1,0,3,5)\cdot(-3,-4,1,0)=-3+3=0$,$(0,1,4,6)\cdot(-3,-4,1,0)=-4+4=0$,$(1,0,3,5)\cdot(-5,-6,0,1)=-5+5=0$,$(0,1,4,6)\cdot(-5,-6,0,1)=-6+6=0$。维数也对得上:$r+(n-r)=n$,两个空间合起来正好填满 $\mathbb R^n$(第 1 章 P4 的「大图」)。

常见误区:零空间的基就是 F 的各列?

不是。$F$ 的列只有 $r$ 个分量,而零空间的向量有 $n$ 个分量。基向量是把 $-F$ 的一列(带负号)放在主元变量的位置、把单位向量放在自由变量的位置拼起来的:例 1 中 $F$ 的第 1 列是 $(3,4)$,对应的基向量是 $(-3,-4,1,0)$。忘了负号,$Ax$ 就变成 $2\times$(第 3 列)而不是 0。

有置换时:例 2 When P is not I

例 2 的独立列是第 1、3 列,$F=\begin{bmatrix}2 & 1\\ 0 & 1\end{bmatrix}$。先按「独立列在前」的顺序 $(x_1,x_3,x_2,x_4)$ 写出 $\begin{bmatrix}-F\\ I\end{bmatrix}$,再用 $P^{\mathsf T}$ 把行放回 $(x_1,x_2,x_3,x_4)$ 的顺序(交换第 2、3 行):

$$\begin{bmatrix}-F\\ I\end{bmatrix}=\begin{bmatrix}-2 & -1\\ 0 & -1\\ 1 & 0\\ 0 & 1\end{bmatrix}\ \xrightarrow{\ P^{\mathsf T}\ }\ X=\begin{bmatrix}-2 & -1\\ 1 & 0\\ 0 & -1\\ 0 & 1\end{bmatrix}$$

检验:$-2(1,1)+1\cdot(2,2)=(0,0)$,即第 2 列 = 2×第 1 列;$-(1,1)-(3,4)+(4,5)=(0,0)$,即第 4 列 = 第 1 列 + 第 3 列 ✓。$P^{\mathsf T}$ 的作用只是把「先排独立列」的变量顺序还原。

零空间:让各列首尾相接,回到原点

图中把 $x_1a_1,\ x_2a_2,\ \dots$ 首尾相接画出来,终点就是 $Ax$。拖动滑块改变两个自由变量,主元变量由 $F$ 自动算出:$x=s\cdot(\text{X 的第 1 列})+t\cdot(\text{X 的第 2 列})$。再拖动「扰动」滑块,给第一个主元变量加一点,看看折线还能不能闭合。三维的例子可以拖动「旋转」滑块换个角度看。

(自拟例子 $A=\begin{bmatrix}2 & 0 & 2 & -1\\ 0 & 1 & 3 & 2\end{bmatrix}$ 的第 3、4 列是 $a_3=a_1+3a_2$、$a_4=-\tfrac12a_1+2a_2$;原文两个例子的各列几乎同向,折线会很「扁」。)只要 $x$ 由 $X$ 的列组合而来(扰动 δ = 0),无论 $s,t$ 取什么,折线都回到原点:$Ax=0$。零空间是一个 $n-r=2$ 维的「系数空间」,自由变量就是它的两个坐标。一旦扰动主元变量,终点就偏离原点(红色箭头),偏离量恰好是 δ 乘以那个独立列——独立列无法被别的列「抵消」。

一个 4×7 矩阵的秩是 3。按 (5) 写出的零空间基矩阵 X 是什么形状?

已知 x = (−5, −6, 0, 1) 满足 Ax = 0。它直接说明了 A 的哪个事实?

只想解方程?停在 U 更快 Gauss versus Gauss-Jordan

原文第 5 段最后提醒了效率问题:通向 $A=CR$ 的 Gauss–Jordan 消元,不如直接解 $Ax=b$ 的 Gauss 消元高效。Gauss 消元停在三角形方程组 $Ux=c$,再用回代(back substitution)求出 $x$;Gauss–Jordan 多出了「向上消元」的代价。如果只想解方程,停在三角分解更快 §5。

同一个 5×5 可逆矩阵消元的终点。左:Gauss 只在主元下方造 0,得到上三角 $U$($*$ 为一般的数),然后回代。右:Gauss–Jordan 还要在主元上方造 0(琥珀色区域)并把主元化成 1,得到 $I$。

多出来的工作有多少?与其背公式,不如亲手数一数:

数一数:每个数被改写了几次

对一个一般的 $n\times n$ 矩阵(没有 0,不需要换行)做消元,统计每个位置被「乘-减」改写(或在 Gauss–Jordan 中被除以主元)的次数:颜色越深,改写越多。拖动滑块改变 $n$,看两种消元的总次数和它们的比值。

Gauss 中第 $i$ 行第 $j$ 列的数被改写 $\min(i,j)-1$ 次——越靠右下越多,主元上方的数很早就「定型」了。Gauss–Jordan 中第 $j$ 列的每个数都被改写 $j-1$ 次,主元上方也不例外:多出来的正是右上三角那片「向上消元」的工作。总次数分别是 $\tfrac{(n-1)n(2n-1)}{6}\approx\tfrac{n^3}{3}$ 与 $\tfrac{n^2(n-1)}{2}\approx\tfrac{n^3}{2}$,比值随 $n$ 增大趋近 $\tfrac32$——这就是数值线性代数里「Gauss–Jordan 多花约一半」的来历。

两种消元各有用处

求解方程组:用 Gauss($A=LU$,正文 2.3 节「Matrix Computations and $A=LU$」)。看清矩阵的结构——独立列、依赖关系 $F$、零空间的基、$A=CR$——用 Gauss–Jordan(正文 3.2 节「Computing the Nullspace by Elimination: $A=CR$」)。Strang 这篇短文关心的是后者。

零空间的基(特殊解)nullspace basis (special solutions)$X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$ 的 $n-r$ 列:令一个自由变量为 1、其余为 0 时 $Ax=0$ 的解。
自由变量 / 主元变量free variables / pivot variables对应自由列 / 主元列的未知数;自由变量任取,主元变量由 $F$ 确定(带负号)。
回代back substitution解上三角方程组 $Ux=c$:从最后一个方程解出最后一个未知数,再逐个往上代。
本节要点
  • 行变换不改变行空间,所以零空间也不变:$Ax=0$ 与 $\begin{bmatrix}I & F\end{bmatrix}Px=0$ 同解。
  • 零空间的基 $X=P^{\mathsf T}\begin{bmatrix}-F\\ I_{n-r}\end{bmatrix}$,$AX=-CF+CF=0$,式 (5);每一列就是「一个依赖列减去它的配方」。
  • 只解 $Ax=b$ 时,Gauss 停在 $U$ 再回代更快;Gauss–Jordan 多出向上消元的代价(大 $n$ 时约 $n^3/2$ 对 $n^3/3$)。

§6 分块消元:F = W⁻¹H 6. Block elimination

行变换一次只造出一个 0。站高一点、整块整块地看:rref 里那个 $r\times r$ 的单位矩阵 $I$ 告诉我们——某个 $r\times r$ 矩阵已经被求逆了。顺着这条线索走下去,就得到对消元的一种「矩阵式的理解」§6。

W 可逆时:消元的全部指令都来自 W Elimination takes all its instructions from W

设 $A$ 的前 $r$ 行与前 $r$ 列交叉处的矩阵 $W$ 可逆。那么消元的全部指令都来自 $W$!不论是一次消一个元素,还是用「分块消元」一次完成,$W$ 都会变成 $I$。也就是说,$A$ 的前 $r$ 行会变成 $I$ 和 $F$——这就确定了 $F=W^{-1}H$;而后 $m-r$ 行会变成零行 §6:

$$\text{分块消元:}\quad A=\begin{bmatrix}W & H\\ J & K\end{bmatrix}\ \longrightarrow\ \begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}=\mathrm{rref}(A)$$(6)
分块消元只有两步:第一块行左乘 $W^{-1}$($W\to I$,$H\to W^{-1}H$);第二块行减去 $J$ 乘新的第一块行($J\to0$,$K\to K-JW^{-1}H=0$)。

为什么后 $m-r$ 行一定变成 0?Strang 说这「只是在表达线性代数的事实」:如果 $A$ 的前 $r$ 行独立、而秩是 $r$,那么其余 $m-r$ 行都是这前 $r$ 行的组合 §6:

$$\begin{bmatrix}J & K\end{bmatrix}=JW^{-1}\begin{bmatrix}W & H\end{bmatrix}$$

这里 $JW^{-1}$ 就是「行的配方」:它的每一行说明 $A$ 的一个下方行由上方 $r$ 行怎样组合。消元时,正是减去这些组合,这 $m-r$ 行才变成零行。

例例 1 的分块消元§6

例 1 中 $r=2$,左上角 $W=\begin{bmatrix}1 & 2\\ 3 & 7\end{bmatrix}$,$\det W=7-6=1$,可逆,$W^{-1}=\begin{bmatrix}7 & -2\\ -3 & 1\end{bmatrix}$。于是

$$F=W^{-1}H=\begin{bmatrix}7 & -2\\ -3 & 1\end{bmatrix}\begin{bmatrix}11 & 17\\ 37 & 57\end{bmatrix}=\begin{bmatrix}3 & 5\\ 4 & 6\end{bmatrix},\qquad JW^{-1}=\begin{bmatrix}4 & 9\end{bmatrix}\begin{bmatrix}7 & -2\\ -3 & 1\end{bmatrix}=\begin{bmatrix}1 & 1\end{bmatrix}.$$

$F$ 与 §1 中 rref 的 $F$ 完全一致;而 $JW^{-1}=(1,1)$ 说的正是「第 3 行 = 第 1 行 + 第 2 行」。再验证 $K=JW^{-1}H=(1,1)\begin{bmatrix}11 & 17\\ 37 & 57\end{bmatrix}=(48,74)$ ✓。

分块消元就是左乘一个分块矩阵

把「第一块行左乘 $W^{-1}$」和「第二块行减去 $J$ 乘(新的第一块行)」合起来,就是左乘

$$E=\begin{bmatrix}W^{-1} & 0\\ -JW^{-1} & I\end{bmatrix},\qquad EA=\begin{bmatrix}I & W^{-1}H\\ 0 & K-JW^{-1}H\end{bmatrix}.$$

右下角 $K-JW^{-1}H$ 一定是 0:下方各行是上方 $r$ 行的组合 $y\begin{bmatrix}W & H\end{bmatrix}$,比较前 $r$ 个分量得 $J=yW$,即 $y=JW^{-1}$,于是 $K=yH=JW^{-1}H$。(这一块叫作 $W$ 在 $A$ 中的 Schur 补(Schur complement);$A$ 的秩恰为 $r$ 时它必为 0。)

试一试:例 1 中改用第 1、3 行作为「上方的 r 行」,W、W⁻¹H、JW⁻¹ 是什么?

$W=\begin{bmatrix}1 & 2\\ 4 & 9\end{bmatrix}$,$\det W=1$,$W^{-1}=\begin{bmatrix}9 & -2\\ -4 & 1\end{bmatrix}$。$H=\begin{bmatrix}11 & 17\\ 48 & 74\end{bmatrix}$,$W^{-1}H=\begin{bmatrix}99-96 & 153-148\\ -44+48 & -68+74\end{bmatrix}=\begin{bmatrix}3 & 5\\ 4 & 6\end{bmatrix}$——还是同一个 $F$。下方只剩第 2 行:$J=(3,7)$,$JW^{-1}=(27-28,\,-6+7)=(-1,1)$,说的是「第 2 行 = −第 1 行 + 第 3 行」,确实如此。$W$ 和 $JW^{-1}$(行的关系)变了,$F$(列的关系)没变。

一般情形:用置换把 W 挪到左上角 Row and column permutations P_r and P_c

一般来说,左上角那个 $r\times r$ 块不一定可逆。但消元会找到 $W$:用行置换 $P_r$ 和列置换 $P_c$ 把它挪到左上角,于是分块消元到简化行阶梯形的完整表达式是 (7)

$$P_rAP_c=\begin{bmatrix}W & H\\ J & K\end{bmatrix}\ \longrightarrow\ \begin{bmatrix}I & W^{-1}H\\ 0 & 0\end{bmatrix}$$(7)

消元找到的 $W$,就是「主元最终所在的行」与「主元列」的交叉。以例 2 为例:主元列是第 1、3 列,$P_c$ 交换第 2、3 列,$W=\begin{bmatrix}1 & 3\\ 1 & 4\end{bmatrix}$,$W^{-1}=\begin{bmatrix}4 & -3\\ -1 & 1\end{bmatrix}$,$H=\begin{bmatrix}2 & 4\\ 2 & 5\end{bmatrix}$,于是 $W^{-1}H=\begin{bmatrix}2 & 1\\ 0 & 1\end{bmatrix}=F$ ✓(这里 $m=r$,没有 $J$、$K$)。

直觉:I 是「已经求逆」的痕迹

一行一行地消元,就像一步一步地解 $Wx=$(某一列)。当 $W$ 变成 $I$ 时,同样的步骤作用在 $H$ 上,得到的正是 $W^{-1}H$。所以 rref 里的 $F$ 不是什么新东西:它就是「用 $W$ 去解 $H$ 的每一列」的结果——每一列的解,正是那一列的配方。

分块消元:一次把整块 W 变成 I

四种颜色标出四块:$W$(蓝)、$H$(琥珀)、$J$(绿)、$K$(紫)。点「下一步」:先找到 $W$,再用 $P_r$、$P_c$ 把它挪到左上角,然后第一块行左乘 $W^{-1}$、第二块行减去 $J\times$(新的第一块行)。还可以在「上方的 r 行」里换一组行试试:只要这几行独立,$W^{-1}H$ 都等于同一个 $F$。

只用两步「块运算」就到达 rref:$W\to I$ 的同时 $H\to W^{-1}H=F$;$J\to 0$ 的同时 $K\to K-JW^{-1}H=0$。换一组上方的行(只要它们独立):$W$、$W^{-1}$、$JW^{-1}$ 都变了,但 $W^{-1}H$ 始终等于同一个 $F$——因为 $F$ 是「列的配方」,与用哪几行去求它无关。若选的行不独立,$W$ 不可逆,分块消元就卡住了(§7 会说明:独立的行配独立的列,交叉处一定可逆)。

为什么换一组独立的行,W⁻¹H 仍然等于 F

列固定为主元列(即 $C$ 的列)。由 $A=C\begin{bmatrix}I & F\end{bmatrix}P$,只看所选的 $r$ 行(记这几行组成的 $C$ 的子矩阵为 $C_S$):这几行在主元列上的数是 $W=C_S$,在其余列上的数是 $H=C_SF$。只要这几行独立,$C_S$ 就可逆(§7),于是

$$W^{-1}H=C_S^{-1}C_SF=F.$$

$F$ 记录的是「列与列的关系」,用哪几行去求都一样;而 $W$、$W^{-1}$、$JW^{-1}$(行与行的关系)都会随所选的行改变。顺便一提,§3 例子中的消元矩阵 $M=\begin{bmatrix}7 & -2 & 0\\ -3 & 1 & 0\\ -1 & -1 & 1\end{bmatrix}$ 正是这里的 $\begin{bmatrix}W^{-1} & 0\\ -JW^{-1} & I\end{bmatrix}$($W^{-1}=\begin{bmatrix}7 & -2\\ -3 & 1\end{bmatrix}$,$JW^{-1}=(1,1)$)。

在分块消元 [W H; J K] → [I F; 0 0] 中,JW⁻¹ 的含义是什么?

例 1 的四步消元可以合成一个矩阵 M(MA = rref(A))。M 的左上角 2×2 块是什么?

分块消元block elimination把一整块当作一个「数」来消元:$\begin{bmatrix}W & H\\ J & K\end{bmatrix}\to\begin{bmatrix}I & W^{-1}H\\ 0 & K-JW^{-1}H\end{bmatrix}$。
可逆矩阵invertible matrix存在 $W^{-1}$ 使 $W^{-1}W=I$ 的方阵;等价于各列独立(满秩)。
本节要点
  • rref 中的 $I$ 意味着某个 $r\times r$ 子矩阵 $W$ 被求逆了;$F=W^{-1}H$,式 (6)。
  • 下方各行是上方 $r$ 行的组合:$\begin{bmatrix}J & K\end{bmatrix}=JW^{-1}\begin{bmatrix}W & H\end{bmatrix}$,所以变成零行。
  • 一般情形先用 $P_r$、$P_c$ 把可逆的 $W$ 挪到左上角:$P_rAP_c\to\begin{bmatrix}I & W^{-1}H\\ 0 & 0\end{bmatrix}$,式 (7)。

§7 交叉子矩阵 W 必可逆 7. The r by r intersection W is invertible

§6 引出了一个有趣的问题 §7。$A$ 的秩是 $r$,所以它有 $r$ 个独立的行,也有 $r$ 个独立的列。把这些行组成子矩阵 $B$($r\times n$),这些列组成子矩阵 $C$($m\times r$)。它们的 $r\times r$「交叉」$W$——既在所选行、又在所选列上的那些数——一定可逆吗?

大家都同意:$A$ 的某个地方一定藏着一个 $r\times r$ 的可逆子矩阵。问题是,$B$ 与 $C$ 的交叉 $B\cap C$ 能不能保证就是这样一个子矩阵?$W$ 会不会自动满秩?

在 4×5、秩 2 的矩阵里任选 2 个独立行(横条,组成 $B$)和 2 个独立列(竖条,组成 $C$)。它们相交处的 4 个数组成 2×2 的 $W$。

「大家都同意」的那一半很容易看出:先任取 $r$ 个独立行组成 $B$;由列秩 = 行秩,$B$ 的列秩也是 $r$,所以 $B$ 中能挑出 $r$ 个独立的列,它们组成的 $r\times r$ 方阵可逆。可这样挑出的列是为 $B$ 量身定做的。§7 要问的是更强的结论:先独立地挑好 $r$ 个独立列(比如消元给出的主元列),再随便配上任意 $r$ 个独立行——交叉还可逆吗?

定理独立行与独立列的交叉可逆the r by r intersection W is invertible§7

答案是肯定的。设 $A$ 的秩为 $r$。$A$ 的 $r$ 个独立行与 $r$ 个独立列的交叉,确实是一个秩为 $r$ 的矩阵 $W$。$W$ 可逆。

证明:只有四句话 Proof

Strang 的证明只有四句。下面的步骤播放器一句一句地配图解释,右下方用 4×5 例子的具体数字跟着走一遍(行取第 1、3 行,列取第 3、5 列):

第 1 句:A 的每一列都是 C 的 r 列的组合

$C$ 的 $r$ 列独立,而 $A$ 的列空间只有 $r$ 维,所以这 $r$ 列已经张成整个列空间:$A$ 的第 $j$ 列 $=Cy_j$,系数 $y_j$ 是一个 $r$ 维向量。例:第 4 列 $(5,10,7,17)=3\times$第 3 列 $-1\times$第 5 列,即 $y_4=(3,-1)$。

第 2 句:B 的每一列,是 W 的各列的「同一个」组合

把等式「$A$ 的第 $j$ 列 $=Cy_j$」只看属于 $B$ 的那 $r$ 行:左边变成 $B$ 的第 $j$ 列,右边的 $C$ 只剩下这 $r$ 行——正是 $W$。所以 $B$ 的第 $j$ 列 $=Wy_j$,系数完全相同。例:$(5,7)=3\,(2,3)-(1,2)$ ✓。

第 3 句:B 的秩是 r,它的列空间是整个 ℝʳ

$B$ 的 $r$ 行独立,行秩为 $r$;由 §1 的「列秩 = 行秩」,$B$ 的列秩也是 $r$。$B$ 的列都是 $r$ 维向量,$r$ 个独立的 $r$ 维向量张成整个 $\mathbb R^r$。

第 4 句:W 的列空间也是 ℝʳ,方阵 W 的秩为 r

由第 2 句,$B$ 的每一列都是 $W$ 的列的组合,所以 $W$ 的列空间包含 $B$ 的列空间,也就是整个 $\mathbb R^r$。一个 $r\times r$ 的方阵,列能张成 $\mathbb R^r$,秩就是 $r$——$W$ 可逆。证毕。

左:示意图(蓝色竖条 = 所选的列 $C$,绿色横条 = 所选的行 $B$,紫色 = 交叉 $W$)。右:4×5 例子中对应的数。

两个不能省的条件 Both conditions matter

常见误区:随便挑 r 行 r 列,或者少挑几行几列
  • 行和列都必须独立。4×5 例子中第 2 行 = 2×第 1 行。只要选了这两行,不管配哪两列,$W$ 的两行都成比例,一定不可逆。列也一样(第 2 列 = 2×第 1 列)。
  • 个数必须恰好等于秩 $r$。只挑 $k\lt r$ 个独立行和 $k$ 个独立列,交叉处可能不可逆。反例:$A=\begin{bmatrix}1 & 0 & 1\\ 0 & 1 & 1\\ 1 & 1 & 2\end{bmatrix}$ 的秩是 2;取 $k=1$:第 1 行 $(1,0,1)$ 和第 2 列 $(0,1,1)$ 各自都「独立」(都不是零向量),交叉处却是 $a_{12}=0$。证明在第 1 句就失效了:$k\lt r$ 个列张不成 $r$ 维的列空间,$A$ 的其余各列不一定是它们的组合。

这个定理也解释了 §6:消元找到的 $W$(主元行 × 主元列)只是众多可逆交叉中的一个。任何一组独立行配任何一组独立列都行——下面的实验可以让你亲手验证。

挑 r 行、r 列:交叉处的 W 可逆吗?

点击行号(左侧)或列号(上方)来选择行和列;被选中的行、列与它们的交叉 $W$ 会着色,右侧显示 $W$ 和它的行列式。按钮可以随机挑选;「做 500 次实验」比较两种挑法:①行与列都独立,②随意挑 $r$ 行 $r$ 列。

只要挑的是 $r$ 个独立行和 $r$ 个独立列,$\det W$ 永远不是 0——500 次实验 500 次可逆。随意挑时,一旦碰上「第 1、2 行」或「第 1、2 列」这样的相关组,$W$ 就不可逆(4×5 例子中约四分之一的挑法如此)。切到「k < r 的反例」,只选第 1 行和第 2 列:两者各自都独立,交叉处却是 0。

试一试:在例 1 中随便挑两行、两列,交叉都可逆吗?

都可逆。例 1 中任意两行都独立(第 3 行 = 第 1 行 + 第 2 行,但没有哪两行成比例),任意两列也都独立(四列两两不成比例),所以 $3\times6=18$ 种挑法全部满足定理的条件,18 个交叉 $W$ 都可逆。例如第 1、3 行 × 第 3、4 列:$\det\begin{bmatrix}11 & 17\\ 48 & 74\end{bmatrix}=814-816=-2\ne0$。在上面的演示中选「例 1」,点「做 500 次实验」,两种挑法都会是全部可逆——和 4×5 例子形成对比。

A 是 5×6 矩阵,秩为 3。任取 A 的 3 个独立行和 3 个独立列,它们交叉处的 3×3 矩阵 W:

§7 的证明在哪一步用到了「列秩 = 行秩」?

子矩阵submatrix从矩阵中选出若干行、若干列,保留交叉处的数得到的矩阵;§7 中的 $W=B\cap C$。
交叉子矩阵定理intersection of independent rows and columns秩为 $r$ 的矩阵中,$r$ 个独立行与 $r$ 个独立列交叉出的 $r\times r$ 子矩阵 $W$ 一定可逆。
本节要点
  • 秩为 $r$ 时,任取 $r$ 个独立行($B$)与 $r$ 个独立列($C$),交叉 $W$ 必可逆。
  • 证明:$A$ 的列 $=C\times$ 系数 → 限制到 $B$ 的行:$B$ 的列 $=W\times$ 同样的系数 → $B$ 的列张成 $\mathbb R^r$ → $W$ 的列也张成 $\mathbb R^r$。
  • 两个条件缺一不可:行列都要独立,个数要恰好等于秩。

本章小结

一条主线:消元把 $A$ 化成 $\mathrm{rref}(A)=\begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}P$,而 $F$ 就是依赖列的配方。于是:

  • §1 消元保住了行空间、零空间和列之间的依赖关系(但不保列空间),并给出 $A=CR$:$C$ 是前 $r$ 个独立列,$R$ 是 rref 的非零行。按列读、按行读 $A=CR$,证明了列秩 = 行秩。
  • §2 不需要任何算法也能描述 $C$ 与 $R$:$A=\begin{bmatrix}C & CF\end{bmatrix}P=C\begin{bmatrix}I & F\end{bmatrix}P$,式 (1)。$P$ 只负责把列放回原位;rref 由「独立列号 + $F$」唯一确定。
  • §3 三种可逆行变换 (a)(b)(c) 把 $A$ 化成式 (3);行变换 = 左乘可逆矩阵,所以 $Z$ 中一眼可读的配方在 $A$ 中同样成立。
  • §4 逐列构造:新列的下段 $\ell=0$ → 依赖,上段 $u$ 并入 $F$;$\ell\ne0$ → 选主元(最好最大),并入 $I$。最后得到前 $r$ 个独立列的列号表,式 (4)。
  • §5 零空间的基 $X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$,$AX=-CF+CF=0$,式 (5);每个基向量就是「一个依赖列减去它的配方」。只解方程时,Gauss 停在 $U$ 更快。
  • §6 分块地看:$P_rAP_c=\begin{bmatrix}W & H\\ J & K\end{bmatrix}\to\begin{bmatrix}I & W^{-1}H\\ 0 & 0\end{bmatrix}$,所以 $F=W^{-1}H$,下方各行 $=JW^{-1}\times$ 上方各行,式 (6)(7)。
  • §7 任取 $r$ 个独立行和 $r$ 个独立列,交叉处的 $W$ 一定可逆;两个条件(独立、个数恰为 $r$)缺一不可。
对象形状它是什么在例 1 中
$C$$m\times r$$A$ 的前 $r$ 个独立列(列空间的基)第 1、2 列
$R=\begin{bmatrix}I & F\end{bmatrix}P$$r\times n$rref 的非零行(行空间的基、所有列的配方)$(1,0,3,5)$,$(0,1,4,6)$
$F$$r\times(n-r)$依赖列的配方;$F=W^{-1}H$$\begin{bmatrix}3 & 5\\ 4 & 6\end{bmatrix}$
$P$$n\times n$列置换:把排好队的列放回原位$I$
$X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$$n\times(n-r)$零空间的基$(-3,-4,1,0)$,$(-5,-6,0,1)$
$W$$r\times r$独立行 × 独立列的交叉,可逆$\begin{bmatrix}1 & 2\\ 3 & 7\end{bmatrix}$
行变换之后保持不变?理由
行空间✓行的组合,且可撤销
零空间($Ax=0$ 的解)✓$Zx=MAx=0\iff Ax=0$($M$ 可逆)
列之间的依赖关系(哪些列独立、配方)✓每列都左乘同一个可逆矩阵 $M$
列空间✗列向量本身变了(例 1 中第 3 分量全变成 0)
GaussGauss–Jordan
在哪里造 0只在主元下方主元上方和下方
终点阶梯形 $U$($A=LU$)$\mathrm{rref}(A)$($A=CR$)
用途解 $Ax=b$:再回代读出 $C$、$F$、零空间的基
大 $n\times n$ 的运算量约 $n^3/3$约 $n^3/2$

常见疑问 FAQ

rref 和上三角 U 有什么区别?

$U$ 是 Gauss 消元的终点:只在主元下方造 0,主元不必是 1($A=LU$ 的 $U$)。rref 是 Gauss–Jordan 的终点:主元上下都是 0,主元都是 1。只有 rref 能让人「一眼读出」配方 $F$;解方程时用 $U$ 再回代更省(§5)。

为什么 C 取 A 的列,而不取 rref 的列?

因为行变换会改变列向量(列空间变了),只保住了列之间的关系。rref 的主元列是单位向量 $e_1,\dots,e_r$,它们一般不在 $A$ 的列空间里;我们要的是 $A$ 的列空间的基,所以要回到 $A$ 中取出同样位置的列(§1 的误区框、§3 的三维演示)。

P 什么时候等于 I?F 可以是空的吗?

当 $A$ 的 $r$ 个独立列恰好就是前 $r$ 列时,$P=I$(例 1)。当 $r=n$(所有列都独立)时没有依赖列,$F$ 是 $r\times0$ 的空矩阵,$R=I$,$C=A$,零空间只有零向量。

零空间为什么恰好是 n − r 维?

$n$ 个未知数分成两类:$r$ 个主元变量和 $n-r$ 个自由变量。自由变量可以任意取值,取定之后主元变量就被 $\begin{bmatrix}I & F\end{bmatrix}$ 的方程唯一确定。所以零空间里的向量与「自由变量的取值」一一对应,维数是 $n-r$;$X$ 的 $n-r$ 列就是让一个自由变量为 1、其余为 0 时的解。$r+(n-r)=n$:主元列与自由列合起来正好是全部 $n$ 列。

W 一定在左上角吗?一定唯一吗?

都不一定。左上角的 $r\times r$ 块可能不可逆(例 2 中左上角是 $\begin{bmatrix}1 & 2\\ 1 & 2\end{bmatrix}$),这时用 $P_r$、$P_c$ 把一个可逆的 $W$ 挪过去(§6)。可逆的 $W$ 也不唯一:§7 说明任何 $r$ 个独立行与任何 $r$ 个独立列的交叉都可逆。但 $F=W^{-1}H$(列取主元列时)不随所选的行改变。

行变换会不会把一个「独立」的列变成「依赖」的?

不会。行变换等于左乘可逆矩阵 $M$,$Ma=0$ 当且仅当 $a=0$,所以 $c_1a_1+\dots+c_ka_k=0$ 与 $c_1Ma_1+\dots+c_kMa_k=0$ 同时成立或同时不成立:列之间的独立/依赖关系,以及依赖的系数,都原样保留。

符号速查 Notation

符号含义出处
$m,\ n,\ r$行数、列数、秩(独立列数 = 独立行数 = 主元个数)§1
$Z=\mathrm{rref}(A)$简化行阶梯形(reduced row echelon form)§1、(3)
$C,\ R$$A$ 的前 $r$ 个独立列;rref 的 $r$ 个非零行。$A=CR$§1
$F$依赖列的配方,$r\times(n-r)$§2、(1)
$P$列置换矩阵:$R=\begin{bmatrix}I & F\end{bmatrix}P$§2、(1)(2)
(a)(b)(c)三种行变换:减去另一行的倍数、交换两行、除以第一个非零数§3
$I_k,\ F_k,\ P_k$处理完前 $k$ 列时的单位块、配方块、列置换§4、(4)
$u,\ \ell$新列在主元行上的部分 / 其余行上的部分§4、(4)
$X$零空间的基 $P^{\mathsf T}\begin{bmatrix}-F\\ I_{n-r}\end{bmatrix}$§5、(5)
$U$Gauss 消元的上三角终点($Ux=c$ 再回代)§5
$W,\ H,\ J,\ K$分块:$W$ 可逆的 $r\times r$ 块,$H$ 同行其余列,$J,K$ 其余各行§6、(6)
$P_r,\ P_c$把 $W$ 挪到左上角的行置换、列置换§6、(7)
$B,\ C$(§7)$r$ 个独立行组成的子矩阵、$r$ 个独立列组成的子矩阵;交叉 $W=B\cap C$§7

这些想法在正文哪里展开 Where the book develops these ideas

根据第 6 版的目录,这篇短文的每个想法在正文里都有对应的小节(页码为原书页码):

本章正文小节
§1 $A=CR$、列秩 = 行秩1.4 Matrix Multiplication $AB$ and $CR$(p. 27);3.5 Dimensions of the Four Subspaces(p. 120)
§1、§3 消元与行变换2.1 Elimination and Back Substitution(p. 40);2.2 Elimination Matrices and Inverse Matrices(p. 49)
§2 置换矩阵 $P$2.4 Permutations and Transposes(p. 64)
§3–§5 rref、零空间的基3.2 Computing the Nullspace by Elimination: $A=CR$(p. 84);3.3 The Complete Solution to $Ax=b$(p. 95)
§4 独立列与基3.4 Independence, Basis, and Dimension(p. 106)
§5 Gauss 与 $A=LU$2.3 Matrix Computations and $A=LU$(p. 57)
全文附录 9 Elimination and Factorization(p. 410)

综合例题:一个 4×5 矩阵走完全章 One matrix through all seven sections

把 §1–§7 串起来用一遍。矩阵用 §6、§7 演示里的 4×5 矩阵(秩 2;第 2 行 = 2×第 1 行,第 4 行 = 2×第 1 行 + 第 3 行):

$$A=\begin{bmatrix}1 & 2 & 2 & 5 & 1\\ 2 & 4 & 4 & 10 & 2\\ 1 & 2 & 3 & 7 & 2\\ 3 & 6 & 7 & 17 & 4\end{bmatrix}$$

① 行变换(§3)

第 2 行 − 2×第 1 行、第 3 行 − 第 1 行、第 4 行 − 3×第 1 行,得到 $\begin{bmatrix}1 & 2 & 2 & 5 & 1\\ 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 2 & 1\\ 0 & 0 & 1 & 2 & 1\end{bmatrix}$。第 2 列在主元行下方全是 0——没有主元。第 3 列的非零数在第 3 行,(b) 交换第 2、3 行;再用新的第 2 行消去第 1 行和第 4 行的第 3 列:

$$\mathrm{rref}(A)=\begin{bmatrix}1 & 2 & 0 & 1 & -1\\ 0 & 0 & 1 & 2 & 1\\ 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0\end{bmatrix}\qquad(\text{共 6 次行变换})$$

② A = CR(§1)

主元在第 1、3 列,秩 $r=2$。$C$ 取 $A$ 的第 1、3 列,$R$ 取 rref 的两个非零行:

$$A=\begin{bmatrix}1 & 2\\ 2 & 4\\ 1 & 3\\ 3 & 7\end{bmatrix}\begin{bmatrix}1 & 2 & 0 & 1 & -1\\ 0 & 0 & 1 & 2 & 1\end{bmatrix}=CR$$

按行读:$A$ 的第 2 行 $=2\times(R\text{ 第 1 行})+4\times(R\text{ 第 2 行})=(2,4,4,10,2)$ ✓。两个独立列、两个独立行:列秩 = 行秩 = 2。

③ F 与 P(§2)

$F=\begin{bmatrix}2 & 1 & -1\\ 0 & 2 & 1\end{bmatrix}$,三列依次是第 2、4、5 列的配方:

$$a_2=2a_1,\qquad a_4=a_1+2a_3,\qquad a_5=-a_1+a_3$$

验证 $a_4$:$(1,2,1,3)+2(2,4,3,7)=(5,10,7,17)$ ✓。独立列在第 1、3 列,所以 $P$ 把排好队的列 $(a_1,a_3\,|\,a_2,a_4,a_5)$ 放回 $1,2,3,4,5$ 的顺序。注意 $a_2$ 的配方 $(2,0)$ 在「第 3 列」那一项上是 0——它在 $a_3$ 之前。

④ 逐列构造(§4)

列$u$$\ell$去向
1(空)$(1,2,1,3)$$\ell\ne0$ → $I$(主元行 1)
2$(2)$$(0,0,0)$$\ell=0$ → $F$ 的列 $(2,0)$
3$(2)$$(0,1,1)$$\ell\ne0$ → 第 3 行换上来作主元 → $I$
4$(1,2)$$(0,0)$$\ell=0$ → $F$ 的列 $(1,2)$
5$(-1,1)$$(0,0)$$\ell=0$ → $F$ 的列 $(-1,1)$

列号表:1、3。

⑤ 零空间的基(§5)

$n-r=3$ 个基向量,自由变量是 $x_2,x_4,x_5$:

$$X=P^{\mathsf T}\begin{bmatrix}-F\\ I_3\end{bmatrix}=\begin{bmatrix}-2 & -1 & 1\\ 1 & 0 & 0\\ 0 & -2 & -1\\ 0 & 1 & 0\\ 0 & 0 & 1\end{bmatrix}$$

第 2 列 $(-1,0,-2,1,0)$ 说的是 $-a_1-2a_3+a_4=0$,即 $a_4=a_1+2a_3$;第 3 列说的是 $a_5=-a_1+a_3$。

⑥ 分块消元(§6)

消元找到的 $W$ 是第 1、3 行 × 第 1、3 列:

$$W=\begin{bmatrix}1 & 2\\ 1 & 3\end{bmatrix},\quad W^{-1}=\begin{bmatrix}3 & -2\\ -1 & 1\end{bmatrix},\quad W^{-1}H=\begin{bmatrix}3 & -2\\ -1 & 1\end{bmatrix}\begin{bmatrix}2 & 5 & 1\\ 2 & 7 & 2\end{bmatrix}=\begin{bmatrix}2 & 1 & -1\\ 0 & 2 & 1\end{bmatrix}=F$$

下方两行(第 2、4 行):$JW^{-1}=\begin{bmatrix}2 & 4\\ 3 & 7\end{bmatrix}W^{-1}=\begin{bmatrix}2 & 0\\ 2 & 1\end{bmatrix}$,即第 2 行 = 2×第 1 行,第 4 行 = 2×第 1 行 + 第 3 行 ✓。

⑦ 交叉子矩阵(§7)

任取两个独立行与两个独立列,例如第 3、4 行 × 第 4、5 列:$W=\begin{bmatrix}7 & 2\\ 17 & 4\end{bmatrix}$,$\det W=28-34=-6\ne0$ ✓。反之,第 1、2 行(第 2 行 = 2×第 1 行)配任何两列,例如第 3、4 列:$\begin{bmatrix}2 & 5\\ 4 & 10\end{bmatrix}$,$\det=0$。在全部 $6\times10=60$ 种「2 行 × 2 列」的挑法中,恰有 45 种行、列都独立,它们的交叉全部可逆,其余 15 种全都不可逆。

对照原文:十二句关键话 Key sentences of the paper

以后读英文原文时,抓住这几句就抓住了全文(左列是原文,右列是本章的说法):

段原文意思
AbstractF multiplies those first r independent columns of A to give its n−r dependent columns.$F$ 乘前 $r$ 个独立列,得到其余 $n-r$ 个依赖列——$F$ 是依赖列的配方。
§1Simplify the matrix A without losing the information it contains.化简 $A$,而不丢失它包含的信息——消元的初衷。
§1Elimination factors A into C times R = (m × r) times (r × n).消元把 $A$ 分解成 $C$ 乘 $R$。
§1Column rank equals row rank.列秩 = 行秩:$A=CR$ 附带的「第一个伟大定理」。
§2Then the other n − r columns of A must be combinations CF of those independent columns in C.其余各列一定是独立列的组合 $CF$,与算法无关。
§2This uniquely defines Z in equation (3).独立列号 + $F$ 唯一确定 rref。
§3The position of I reveals the first r independent columns of A.$I$ 的位置揭示了前 $r$ 个独立列。
§4Does this new column k + 1 join with Ik or Fk?新列加入 $I$ 还是 $F$?看 $\ell$ 是否全为 0。
§5The columns of F are telling us n − r solutions to Ax = 0.$F$ 的各列给出 $Ax=0$ 的 $n-r$ 个解。
§5If we only want to solve equations, stopping at a triangular factorization is faster.只解方程时,停在三角分解更快。
§6That output I tells us that some r by r matrix has been inverted. … Elimination takes all its instructions from W!$I$ 说明某个 $r\times r$ 矩阵被求逆了;消元的指令全部来自 $W$,于是 $F=W^{-1}H$。
§7The intersection of r independent rows of A with r independent columns does produce a matrix W of rank r. W is invertible.$r$ 个独立行与 $r$ 个独立列的交叉 $W$ 可逆。

自测

先用一个随机练习热身:它每次生成一个新矩阵,你自己找独立列、读出 $F$,演示会逐列告诉你对错和原因。然后是 4 道综合选择题(前面各节已经穿插了 14 道)。

随机练习:找出独立列,读出 F

第 1 步:点击列号($a_1,a_2,\dots$),选出你认为的「前 $r$ 个独立列」,点「核对独立列」。第 2 步:在出现的表格里填 $F$(依赖列的配方,可以填分数如 1/2),点「核对 F」。卡住了就点「看答案」,或「换一题」。提示:从左到右,一列一列地问「它是前面各列的组合吗?」

F =

判断独立列只需要「从左到右」:第 1 列只要不是 0 就独立;之后每一列,看它能否由前面已选出的独立列组合出来。填 $F$ 时,每个依赖列的配方只用到它左边的独立列,右边独立列对应的位置一定是 0。

某矩阵的 rref 是 [1 0 2; 0 1 −1; 0 0 0]。A 的第 3 列与第 1、2 列是什么关系?

下面哪个矩阵「不可能」是任何矩阵的 rref?

把例 1 中 A 的元素 48 改成 49(第 3 行第 3 列),rref 中的 F 会变成什么?

一个 6×9 矩阵的秩是 4。下面哪组形状是对的?

习题

原文没有习题;下面 11 道题按 §1–§7 的顺序自拟,每题附提示与完整解答。建议先动手算,再对照演示检查。

2.1(§1–§3)对 $A=\begin{bmatrix}1 & 3 & 0 & 2\\ 2 & 6 & 1 & 7\\ 1 & 3 & 1 & 5\end{bmatrix}$ 做消元,求 $\mathrm{rref}(A)$、秩 $r$、$C$、$F$ 和 $P$,写出 $A=C\begin{bmatrix}I & F\end{bmatrix}P$,并用一句话说出 $F$ 每一列的含义。
提示先消第 1 列;注意第 2 列在主元行下方会全部变成 0——它是依赖列。可以把矩阵输入 §3 的演示核对。
参考解答

第 2 行 − 2×第 1 行 → $(0,0,1,3)$;第 3 行 − 第 1 行 → $(0,0,1,3)$;第 3 行 − 新第 2 行 → 0。第 2 列在主元行下方全为 0(依赖),第 3 列有主元。得

$$\mathrm{rref}(A)=\begin{bmatrix}1 & 3 & 0 & 2\\ 0 & 0 & 1 & 3\\ 0 & 0 & 0 & 0\end{bmatrix},\quad r=2,\quad C=\begin{bmatrix}1 & 0\\ 2 & 1\\ 1 & 1\end{bmatrix},\quad F=\begin{bmatrix}3 & 2\\ 0 & 3\end{bmatrix}.$$

独立列是第 1、3 列,所以 $P$ 交换第 2、3 列:$\begin{bmatrix}I & F\end{bmatrix}P=\begin{bmatrix}1 & 0 & 3 & 2\\ 0 & 1 & 0 & 3\end{bmatrix}P=\begin{bmatrix}1 & 3 & 0 & 2\\ 0 & 0 & 1 & 3\end{bmatrix}=R$。$F$ 的第 1 列 $(3,0)$:第 2 列 $=3\times$第 1 列;第 2 列 $(2,3)$:第 4 列 $=2\times$第 1 列 $+3\times$第 3 列。验证:$2(1,2,1)+3(0,1,1)=(2,7,5)$ ✓。

2.2(§5)对习题 2.1 的矩阵,用 $X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$ 写出零空间的一组基,验证 $AX=0$,并说明每个基向量对应哪一条「依赖列 = 配方」的关系。
提示先按 $(x_1,x_3,x_2,x_4)$ 的顺序写 $\begin{bmatrix}-F\\ I\end{bmatrix}$,再交换第 2、3 行。
参考解答
$$\begin{bmatrix}-F\\ I\end{bmatrix}=\begin{bmatrix}-3 & -2\\ 0 & -3\\ 1 & 0\\ 0 & 1\end{bmatrix}\ \xrightarrow{\ P^{\mathsf T}\ }\ X=\begin{bmatrix}-3 & -2\\ 1 & 0\\ 0 & -3\\ 0 & 1\end{bmatrix}.$$

$A$ 乘第 1 列:$-3(1,2,1)+(3,6,3)=0$,对应「第 2 列 = 3×第 1 列」。$A$ 乘第 2 列:$-2(1,2,1)-3(0,1,1)+(2,7,5)=(0,0,0)$,对应「第 4 列 = 2×第 1 列 + 3×第 3 列」。两列在自由位置(第 2、4 个分量)上是单位矩阵,所以独立;$n-r=2$,它们是零空间的基。

2.3(§2)「与算法无关」地造一个矩阵:设 3×4 矩阵 $A$ 的独立列在第 1、3 列,$C=\begin{bmatrix}1 & 0\\ 1 & 1\\ 2 & 1\end{bmatrix}$,依赖列的配方是:第 2 列用 $(2,0)$,第 4 列用 $(1,4)$。(a) 写出 $A$。(b) 为什么第 2 列的配方的第二个数必须是 0?(c) 不做消元,直接写出 $\mathrm{rref}(A)$。
提示$A$ 的第 $j$ 列 $=C\times$(第 $j$ 列的配方);独立列的配方是单位向量。
参考解答

(a) $a_1=(1,1,2)$,$a_3=(0,1,1)$,$a_2=2a_1=(2,2,4)$,$a_4=a_1+4a_3=(1,5,6)$,所以 $A=\begin{bmatrix}1 & 2 & 0 & 1\\ 1 & 2 & 1 & 5\\ 2 & 4 & 1 & 6\end{bmatrix}$。

(b) 第 2 列排在第 3 列(独立列)之前。如果它的配方里用到了 $a_3$(第二个数不为 0),它就不是「前面各列」的组合,从左到右扫描时会被当作独立列——与「独立列在第 1、3 列」矛盾。这正是 rref 里「主元 1 的左边只能是 0」。

(c) $\mathrm{rref}(A)=\begin{bmatrix}1 & 2 & 0 & 1\\ 0 & 0 & 1 & 4\\ 0 & 0 & 0 & 0\end{bmatrix}$:主元列放单位向量,依赖列放配方,最后补 $m-r=1$ 个零行。(检验:第 3 行 = 第 1 行 + 第 2 行,确实会被消成 0。)

2.4(§6)对 $A=\begin{bmatrix}2 & 1 & 3 & 4\\ 4 & 3 & 7 & 10\\ 6 & 4 & 10 & 14\end{bmatrix}$(秩 2),取 $W$ 为左上角 2×2 块。计算 $W^{-1}$、$F=W^{-1}H$ 和 $JW^{-1}$,并据此直接写出 $\mathrm{rref}(A)$。
提示2×2 矩阵 $\begin{bmatrix}a & b\\ c & d\end{bmatrix}$ 的逆是 $\frac{1}{ad-bc}\begin{bmatrix}d & -b\\ -c & a\end{bmatrix}$。
参考解答

$W=\begin{bmatrix}2 & 1\\ 4 & 3\end{bmatrix}$,$\det W=2$,$W^{-1}=\begin{bmatrix}3/2 & -1/2\\ -2 & 1\end{bmatrix}$。$H=\begin{bmatrix}3 & 4\\ 7 & 10\end{bmatrix}$,

$$F=W^{-1}H=\begin{bmatrix}\tfrac92-\tfrac72 & 6-5\\ -6+7 & -8+10\end{bmatrix}=\begin{bmatrix}1 & 1\\ 1 & 2\end{bmatrix},\qquad JW^{-1}=\begin{bmatrix}6 & 4\end{bmatrix}W^{-1}=\begin{bmatrix}1 & 1\end{bmatrix}.$$

$JW^{-1}=(1,1)$:第 3 行 = 第 1 行 + 第 2 行(确实 $(2,1,3,4)+(4,3,7,10)=(6,4,10,14)$)。所以 $\mathrm{rref}(A)=\begin{bmatrix}1 & 0 & 1 & 1\\ 0 & 1 & 1 & 2\\ 0 & 0 & 0 & 0\end{bmatrix}$。

2.5(§7)秩为 1 的情形可以直接证明。设 $A=uv^{\mathsf T}$($u\in\mathbb R^m$、$v\in\mathbb R^n$ 都不是零向量,于是 $A$ 的秩是 1)。证明:$A$ 的任何一个非零行与任何一个非零列交叉处的数 $a_{ij}$ 都不是 0。这正是 §7 定理在 $r=1$ 时的内容。
提示$A$ 的第 $i$ 行是 $u_iv^{\mathsf T}$,第 $j$ 列是 $v_ju$,交叉处 $a_{ij}=u_iv_j$。
参考解答

第 $i$ 行 $=u_iv^{\mathsf T}$ 非零,而 $v\ne0$,所以 $u_i\ne0$。第 $j$ 列 $=v_ju$ 非零,而 $u\ne0$,所以 $v_j\ne0$。于是 $a_{ij}=u_iv_j\ne0$。当 $r=1$ 时,「独立的 1 行」就是非零行,「独立的 1 列」就是非零列,$1\times1$ 的 $W=[a_{ij}]$ 可逆即 $a_{ij}\ne0$。

2.6(§7)(a) 说明:若所选的 $r$ 行不独立,则不论配哪 $r$ 列,交叉 $W$ 都不可逆。(b) 举一个例子说明:若只选 $k\lt r$ 个独立行和 $k$ 个独立列,交叉处可能不可逆。
提示(a) $W$ 的行是所选各行的一部分分量。(b) 试试本章 §7 演示中的 3×3 矩阵。
参考解答

(a) 若所选各行满足某个非平凡关系 $\sum c_i(\text{第 }i\text{ 行})=0$,只看所选的那 $r$ 列,同样的关系对 $W$ 的各行也成立,所以 $W$ 的行不独立,$W$ 不可逆。

(b) $A=\begin{bmatrix}1 & 0 & 1\\ 0 & 1 & 1\\ 1 & 1 & 2\end{bmatrix}$ 的秩是 2。取 $k=1$:第 1 行 $(1,0,1)$ 与第 2 列 $(0,1,1)$ 都非零(各自独立),交叉处却是 $a_{12}=0$。若取 $k=r=2$,例如第 1、2 行与第 2、3 列,$W=\begin{bmatrix}0 & 1\\ 1 & 1\end{bmatrix}$,$\det W=-1\ne0$,符合定理。

2.7(§1)(a) 对 $A=\begin{bmatrix}1 & 2 & 3\\ 2 & 4 & 6\end{bmatrix}$ 写出 $A=CR$,并用「按行读」说明 $A$ 的两行都是 $R$ 的那一行的倍数。(b) 一般地,说明 $A=CR$ 可以写成 $r$ 个「列乘行」之和:$A=\sum_{k=1}^{r}(C\text{ 的第 }k\text{ 列})(R\text{ 的第 }k\text{ 行})$,因此秩为 $r$ 的矩阵是 $r$ 个秩 1 矩阵之和。
提示(b) 看 $CR$ 的第 $(i,j)$ 个数:$\sum_k c_{ik}r_{kj}$。
参考解答

(a) 第 2 列 $=2\times$第 1 列,第 3 列 $=3\times$第 1 列,秩 1:$C=\begin{bmatrix}1\\ 2\end{bmatrix}$,$R=\begin{bmatrix}1 & 2 & 3\end{bmatrix}$。按行读:第 1 行 $=1\times R$,第 2 行 $=2\times R$,系数就是 $C$ 的两行。行秩 $=1=$ 列秩。

(b) $(CR)_{ij}=\sum_{k=1}^{r}c_{ik}r_{kj}$,而 $\big((C\text{ 的第 }k\text{ 列})(R\text{ 的第 }k\text{ 行})\big)_{ij}=c_{ik}r_{kj}$,对 $k$ 求和即得。每一项「一列乘一行」都是秩 1 矩阵(各列都是同一列的倍数),所以 $A$ 是 $r$ 个秩 1 矩阵之和。例 1:$A=\begin{bmatrix}1\\ 3\\ 4\end{bmatrix}\begin{bmatrix}1 & 0 & 3 & 5\end{bmatrix}+\begin{bmatrix}2\\ 7\\ 9\end{bmatrix}\begin{bmatrix}0 & 1 & 4 & 6\end{bmatrix}$。

2.8(§6、§7 的推论)设 $A$ 的秩为 $r$,$C$ 是 $A$ 的主元列(前 $r$ 个独立列),$B$ 是 $A$ 的任意 $r$ 个独立行,$W$ 是它们的交叉。证明 $A=CW^{-1}B$,并用例 1(取第 1、2 行)验证。
提示先说明 $B=WR$:$B$ 的行就是 $A=CR$ 中对应的那几行。
参考解答

$A=CR$。只取 $B$ 那几行:$B=C_SR$,其中 $C_S$ 是 $C$ 的对应行,恰好就是交叉 $W$(行取自 $B$、列是主元列)。由 §7,$W$ 可逆,所以 $R=W^{-1}B$,代回得 $A=CR=CW^{-1}B$。例 1:$W=\begin{bmatrix}1 & 2\\ 3 & 7\end{bmatrix}$,$W^{-1}B=\begin{bmatrix}7 & -2\\ -3 & 1\end{bmatrix}\begin{bmatrix}1 & 2 & 11 & 17\\ 3 & 7 & 37 & 57\end{bmatrix}=\begin{bmatrix}1 & 0 & 3 & 5\\ 0 & 1 & 4 & 6\end{bmatrix}=R$ ✓,再乘 $C$ 就回到 $A$。这说明:$A$ 完全由它的 $r$ 个独立列、$r$ 个独立行和交叉 $W$ 决定。

2.9(§4)逐列消元时,如果 $\ell$ 中有好几个非零数,选不同的数作主元,会不会改变最后的列号表、$C$ 或 $F$?会不会改变中间过程?用 §4 演示中「选最大主元时要换行」的例子说明。
提示一列是否「依赖于前面的列」,只取决于 $A$ 本身。
参考解答

中间过程会变:例子 $A=\begin{bmatrix}2 & 4 & 1 & 3\\ 4 & 8 & 3 & 7\\ 6 & 12 & 2 & 8\end{bmatrix}$ 中,选第一个非零数时主元是 2,不交换行;选最大数时主元是 6,要交换第 1、3 行,中间出现 $\tfrac13$、$\tfrac53$ 之类的分数。但结果不变:第 $k+1$ 列是否依赖于前 $k$ 列($\ell$ 是否全为 0)是 $A$ 本身的性质,与选哪个主元无关,所以列号表(第 1、3 列)和 $C$ 不变;$F$ 是依赖列用 $C$ 表示的唯一系数,也不变:$F=\begin{bmatrix}2 & 1\\ 0 & 1\end{bmatrix}$,两种做法的 rref 都是 $\begin{bmatrix}1 & 2 & 0 & 1\\ 0 & 0 & 1 & 1\\ 0 & 0 & 0 & 0\end{bmatrix}$。

2.10(§3、§6)对例 2 的 $A=\begin{bmatrix}1 & 2 & 3 & 4\\ 1 & 2 & 4 & 5\end{bmatrix}$ 做 Gauss–Jordan 消元,把各步行变换合成一个矩阵 $M$(使 $MA=\mathrm{rref}(A)$)。说明 $M$ 恰好等于 $W^{-1}$,其中 $W$ 是主元行 × 主元列的交叉。
提示对 2×2 单位矩阵依次做同样的行变换。主元列是第 1、3 列。
参考解答

步骤:第 2 行 − 第 1 行,得 $\begin{bmatrix}1 & 2 & 3 & 4\\ 0 & 0 & 1 & 1\end{bmatrix}$;第 1 行 − 3×第 2 行,得 $R=\begin{bmatrix}1 & 2 & 0 & 1\\ 0 & 0 & 1 & 1\end{bmatrix}$。对 $I$ 做同样两步:$\begin{bmatrix}1 & 0\\ -1 & 1\end{bmatrix}\to\begin{bmatrix}4 & -3\\ -1 & 1\end{bmatrix}=M$。主元列是第 1、3 列,$W=\begin{bmatrix}1 & 3\\ 1 & 4\end{bmatrix}$,$W^{-1}=\begin{bmatrix}4 & -3\\ -1 & 1\end{bmatrix}=M$ ✓。这里 $m=r=2$,没有 $J$、$K$,分块消元矩阵就只剩 $W^{-1}$:$MA=W^{-1}A$ 把 $A$ 的主元列变成 $I$,其余列变成 $W^{-1}H=F$。

2.11(§5)对没有 0、不需换行的 $n\times n$ 矩阵,证明:Gauss(只向下消元)中第 $i$ 行第 $j$ 列的数被改写 $\min(i,j)-1$ 次;Gauss–Jordan(先把主元行除以主元,再消去其余各行)中第 $j$ 列的每个数被改写 $j-1$ 次。由此求两者的总次数,并说明比值趋近 $\tfrac32$。
提示第 $k$ 步(第 $k$ 个主元)改写哪些位置?只数主元列右边的数。
参考解答

Gauss:第 $k$ 步只改写第 $k$ 行下方、第 $k$ 列右边的数,即 $i\gt k$ 且 $j\gt k$。位置 $(i,j)$ 被改写的步数 = 满足 $k\lt i$ 且 $k\lt j$ 的 $k$ 的个数 $=\min(i,j)-1$。总数 $\sum_{k=1}^{n-1}(n-k)^2=\tfrac{(n-1)n(2n-1)}{6}$。

Gauss–Jordan:第 $k$ 步改写第 $k$ 列右边所有行的数(第 $k$ 行是除以主元,其余行是乘-减),即所有 $i$、所有 $j\gt k$。位置 $(i,j)$ 被改写的步数 = 满足 $k\lt j$ 的 $k$ 的个数 $=j-1$。总数 $n\sum_{j=1}^{n}(j-1)=\tfrac{n^2(n-1)}{2}$。

比值 $\dfrac{n^2(n-1)/2}{(n-1)n(2n-1)/6}=\dfrac{3n}{2n-1}\to\dfrac32$。例如 $n=3$:5 次对 9 次;$n=6$:55 次对 90 次(与 §5 的演示一致)。

附录

中英术语表

汇总各章术语卡片(共 46 条),方便对照英文原书。输入中文或英文即可筛选;点击章号跳到对应小节。

中文English释义章
列向量column vector竖着排成一列的一组数。有 3 个分量的列向量对应三维空间中的一个点,也可画成从原点出发的箭头。1
零向量zero vector所有分量都是 0 的向量,是向量图的中心点(原点)。任何一组向量乘以全 0 系数再相加都得到它。1
线性组合linear combination先数乘、再相加得到的向量 $ca_1+da_2$;系数 $c,d$ 可以是任何数(负数、分数都行)。1
矩阵matrix把 $n$ 个列向量并排放在一起得到的 $m\times n$ 数表($m$ 行、$n$ 列;先说行数)。1
列空间column space矩阵各列的所有线性组合,也就是所有 $Ax$ 组成的集合。$m\times n$ 矩阵的列空间在 $\mathbb R^m$ 里。1
线性无关(独立linearly independent只有「全部乘 0」这一种组合能得到零向量;等价地,没有哪一列是其他列的组合,每一列都带来新方向。1
秩rank矩阵独立列的个数 $r$(也等于独立行的个数);$A=CR$ 中 $C$ 的列数。1
列-行分解 A = CRcolumn-row factorization$C$:$A$ 的前 $r$ 个独立列;$R$:把 $C$ 的列组合成 $A$ 每一列的系数($r\times n$)。1
行空间row space各行的所有组合;位于 $\mathbb R^n$,维数 $r$。1
零空间nullspace$Ax=\mathbf 0$ 的所有解 = 与每一行都垂直的向量;位于 $\mathbb R^n$,维数 $n-r$。1
Aᵀ 的零空间nullspace of Aᵀ与每一列都垂直的向量($A^{\mathsf T}y=\mathbf 0$ 的解);位于 $\mathbb R^m$,维数 $m-r$。1
维数dimension一个空间里独立方向的个数:过原点的直线是 1,平面是 2,$\mathbb R^3$ 是 3,只含零向量的空间是 0。1
线性代数基本定理Fundamental Theorem of Linear Algebra四个子空间的维数 $r,\ n-r,\ r,\ m-r$ 与两对垂直关系;独立列数 = 独立行数;第 7 章补上四个子空间的特殊基。1
转置transpose把矩阵的行变成列得到 $A^{\mathsf T}$;$m\times n$ 矩阵的转置是 $n\times m$。1
正交矩阵orthogonal matrix各列是互相垂直的单位向量的方阵;乘它不改变长度,例如旋转矩阵。1
下三角 / 上三角矩阵lower / upper triangular matrix对角线上方全为 0 的是下三角(如 $L$),对角线下方全为 0 的是上三角(如 $U$、$R$)。1
对称矩阵symmetric matrix满足 $S^{\mathsf T}=S$ 的方阵;可以分解成 $S=Q\Lambda Q^{\mathsf T}$。1
特征值与特征向量eigenvalue & eigenvector$Sq=\lambda q$:矩阵作用在特征向量 $q$ 上只把它伸缩 $\lambda$ 倍。对称矩阵的特征值都是实数。1
奇异值分解singular value decomposition (SVD$A=U\Sigma V^{\mathsf T}$:$U$、$V$ 正交,$\Sigma$ 对角且为正奇异值;对每个矩阵都成立。$Av_k=\sigma_ku_k$。1
奇异值singular value$\Sigma$ 对角线上的正数 $\sigma_1\ge\sigma_2\ge\dots$;几何上是单位圆(球)被 $A$ 变成的椭圆(椭球)的半轴长。1
深度学习deep learning从数据中学出输入-输出规则的方法;核心是构造学习函数 $F(x,v)$ 并求出权重 $x$。1
分段线性函数piecewise linear function由若干直线段在折点处连成的函数:每段简单,整体通用。深度学习中学习函数的首选。1
ReLUrectified linear unit$\mathrm{ReLU}(t)=\max(0,t)$:只在 0 处折一次的最简单的分段线性函数。1
训练数据 / 测试数据training data / test data训练数据用来确定权重;测试数据没参与训练,用来检验 $F$ 在新数据上是否仍然接近正确。1
马尔可夫矩阵Markov matrix每一列都是加起来为 1 的非负概率;描述状态之间的一步转移。反复相乘趋向稳定分布(特征值 1 的特征向量)。1
关联矩阵incidence matrix图的矩阵:每行一条边,每列一个节点;边的起点记 −1、终点记 +1,其余为 0。1
傅里叶矩阵Fourier matrix把一串数据变换到频率上的矩阵,揭示数据中含有哪些频率、各有多强。1
协方差矩阵covariance matrix对角线是各变量的方差,非对角线是两两之间的协方差;描述变量之间的依赖。它是对称矩阵。1
优化optimization求函数的最小值;变量很多时,「导数 = 0」变成一个矩阵方程。深度学习中计算权重靠它(第 9 章)。1
消元elimination用行变换系统地制造 0,把 $Ax=b$ 化成同解但更简单的方程组;最古老的线性代数算法。2
简化行阶梯形reduced row echelon form (rref消元的终点:主元都是 1、主元列其余全是 0、零行在最下面。$\mathrm{rref}(A)=\begin{bmatrix}I & F\\ 0 & 0\end{bmatrix}P$,且唯一。2
主元pivot每个非零行的第一个非零数(在 rref 中化为 1);主元个数 = 秩 $r$。2
满列秩 / 满行秩full column rank / full row rank所有列互相独立(秩 = 列数)/ 所有行互相独立(秩 = 行数)。$A=CR$ 中 $C$ 满列秩,$R$ 满行秩。2
置换矩阵permutation matrix单位矩阵的各列重新排序;右乘 $P$ 重排列,左乘重排行;$PP^{\mathsf T}=I$。2
依赖列dependent columns是前面各列组合的列;在 $A=CR$ 中它们组成 $CF$,配方写在 $F$ 里。2
行变换row operations(a) 减去另一行的倍数;(b) 交换两行;(c) 一行除以它的第一个非零数。都可逆,等于左乘一个可逆矩阵。2
Gauss–Jordan 消元Gauss-Jordan elimination在主元行的上方和下方都消元,并把主元化成 1,一直做到 rref。2
主元列 / 自由列pivot columns / free columnsrref 中含主元的列(对应 $A$ 的独立列,拼成 $I$)/ 其余的列(对应依赖列,拼成 $F$)。2
部分主元法partial pivoting在候选位置中选绝对值最大的数作主元,以减小浮点运算的舍入误差;不影响最后的 rref。2
零空间的基(特殊解nullspace basis (special solutions$X=P^{\mathsf T}\begin{bmatrix}-F\\ I\end{bmatrix}$ 的 $n-r$ 列:令一个自由变量为 1、其余为 0 时 $Ax=0$ 的解。2
自由变量 / 主元变量free variables / pivot variables对应自由列 / 主元列的未知数;自由变量任取,主元变量由 $F$ 确定(带负号)。2
回代back substitution解上三角方程组 $Ux=c$:从最后一个方程解出最后一个未知数,再逐个往上代。2
分块消元block elimination把一整块当作一个「数」来消元:$\begin{bmatrix}W & H\\ J & K\end{bmatrix}\to\begin{bmatrix}I & W^{-1}H\\ 0 & K-JW^{-1}H\end{bmatrix}$。2
可逆矩阵invertible matrix存在 $W^{-1}$ 使 $W^{-1}W=I$ 的方阵;等价于各列独立(满秩)。2
子矩阵submatrix从矩阵中选出若干行、若干列,保留交叉处的数得到的矩阵;§7 中的 $W=B\cap C$。2
交叉子矩阵定理intersection of independent rows and columns秩为 $r$ 的矩阵中,$r$ 个独立行与 $r$ 个独立列交叉出的 $r\times r$ 子矩阵 $W$ 一定可逆。2