上三角矩阵 #
这讲讲什么:把算子的矩阵化成「对角线以下全为 0」的形状,并给出「什么时候做得到」的完整判据——在复数域上永远做得到
前置:17 讲(不变子空间、特征值与特征向量)、18 讲(极小多项式)、08 讲的线性映射基本定理
一句话:上三角化就是在空间里找到一串「逐层稳定」的嵌套子空间;它做得成的充要条件是极小多项式能拆成一次因式之积,而 C 恰好保证了这一点。
一、为什么需要它 #
从 09 讲开始,一个算子 T∈L(V) 被写成矩阵 M(T),而这个矩阵依赖基的选取。同一个算子换一组基,矩阵就整个换掉。既然基可以挑,就该挑一组让矩阵尽可能简单的。
「简单」在矩阵语言里有一个可量化的意思:零尽可能多。
我们已经能做到一小半。取 T 的一个特征值 λ 与特征向量 v,把 v 扩充成 V 的基 v,v2,…,vn。因为 Tv=λv,矩阵的第一列是
M(T)=λ0⋮0∗∗⋮∗⋯⋯⋯∗∗⋮∗
第一列除了顶端那个 λ,下面全是 0。这是一次实打实的胜利:一列清干净了。
但问题立刻来了:第二列怎么办? 上面那个矩阵的其余部分是一团星号,没有任何保证。你可能会想「对 n−1 维空间再用一次同样的办法」——可 T 未必把 v2,…,vn 张成的那个子空间映回它自己,这一步就断掉了。
本讲要做的,正是把这一步接上:
能不能一次清掉所有对角线以下的元素,得到上三角?
答案分两半,而且两半都很干净:
- 什么时候做得到:当且仅当 T 的极小多项式能拆成一次因式之积(第三节 3.5)。
- 复数域上永远做得到:因为复系数多项式一定拆得开(第三节 3.6)。
而回报是巨大的:一旦矩阵是上三角,对角线上的元素就是 T 的全部特征值,一个不多一个不少(第三节 3.4)。求特征值这件本来没有通用算法的事,在「有上三角矩阵」的前提下变成免费读取。
「存在」不等于「能算出来」。即使保证了上三角矩阵一定存在,一般也没有实用的办法把它算出来。
本讲给的是结构性的定理:它告诉你该往哪个方向找基、什么样的算子配得上这种简单形状,
而不是一个可以照着跑的计算流程。把它当成「分类工具」而不是「计算工具」,心态就对了。
二、定义与最小例子 #
先用一句话把「对角线」钉死,后面的定义才不含糊。
定义(对角线):方阵的对角线,指的是从左上角走到右下角那条线上的元素,即第 1 行第 1 列、第 2 行第 2 列、……、第 n 行第 n 列这些位置。
定义(上三角矩阵):称一个方阵为上三角矩阵,如果它对角线以下的所有元素都是 0。
写成形状就是
λ10⋱∗λn
这里对角线之上的星号表示「随便是什么,我们不关心」,对角线之下的 0 表示「这个 n×n 矩阵里,凡是在对角线下面的位置一律是 0」。
星号不是「某个具体但未知的数」,而是「与当前讨论无关的元素」。
它在不同场合可以取不同值,甚至可以为 0。写星号是为了让注意力集中在对角线与零的位置上。
你在后面所有证明里都该这样读它:看到星号就别管它。
最小例子 #
2×2 的情形最省事。下面两个矩阵
A=(2075),B=(2705)
A 是上三角的(对角线以下只有左下角那个 0),B 不是(左下角是 7,它在对角线下面)。
3×3 的时候,要清空的位置多了三个:
C=200150038
对角线以下是 (2,1)、(3,1)、(3,2) 三个位置,全是 0,所以 C 是上三角的。而对角线本身是 2,5,8,对角线之上的 1 和 3 完全不受限制。
回看定义里的三个细节 #
第一,只约束对角线以下。 定义没有要求对角线上方是 0——如果要求了,那叫对角矩阵,是更强的东西。上三角比对角宽松,宽松的代价与好处后面都会看到。
第二,对角元可以是 0。 定义没说对角线非零。一个上三角矩阵完全可以对角线上全是 0,例如
(0010)
这对矩阵本身没有矛盾,只是它的特征值全是 0,因而不可逆。别把「上三角」和「可逆」混在一起。
第三,它有多简单。 一个 n×n 矩阵有 n2 个元素,其中对角线以下是
2n(n−1)
个位置。要求它们全为 0,就一次性固定了差不多一半的元素。n 越大,这个比例越接近 21。这就是「简单」的定量含义。
下三角要求对角线以上全为 0,与上三角互为转置。两者理论完全平行:本讲每条结论把矩阵转置一下就对下三角成立。
习惯上统一用上三角,只是因为矩阵乘法的书写习惯让它更顺手。
三、几个必须自己算一遍的结论 #
这一节是全讲的主体。五个结论,每个都要能自己推一遍。
3.1 上三角的三种等价说法 #
第一个结论把「矩阵长什么样」翻译成「子空间怎么样」。它是后面一切证明的枢纽。
定理(上三角的条件):设 T∈L(V),v1,…,vn 是 V 的基。下面三条等价:
- (a) T 关于 v1,…,vn 的矩阵是上三角矩阵;
- (b) 对每个 k=1,…,n,span(v1,…,vk) 在 T 下不变;
- (c) 对每个 k=1,…,n,Tvk∈span(v1,…,vk)。
证明(沿 (a)⇒(b)⇒(c)⇒(a) 绕一圈)。
(a)⇒(b):设 k 给定。矩阵上三角意味着,对每个 j,
Tvj∈span(v1,…,vj)
(第 j 列在对角线以下的位置都是 0,所以 Tvj 只用得到前 j 个基向量)。当 j≤k 时,span(v1,…,vj)⊆span(v1,…,vk),于是对每个 j≤k 都有
Tvj∈span(v1,…,vk)
而 span(v1,…,vk) 里每个向量都是 v1,…,vk 的线性组合,T 是线性的,所以它们的像也都落在这个张成空间里。这就是「在 T 下不变」。
(b)⇒(c):取定 k。因为 vk∈span(v1,…,vk),而这个子空间在 T 下不变,所以 Tvk 也在这个子空间里。注意这一步是把「整个子空间不变」用在了一个具体的向量上,而 (c) 恰恰只要求这么一点。
(c)⇒(a):把 Tvk 用基写出来:
Tvk=A1,kv1+A2,kv2+⋯+An,kvn
(c) 说这个和式里只用到 v1,…,vk,也就是说 j>k 时系数 Aj,k=0。而 j>k 正是「第 j 行第 k 列落在对角线以下」。于是矩阵是上三角的。■
它把「矩阵的形状」换成了「一串子空间的稳定性」。
矩阵依赖于基,换基就变;而「有没有一串维数依次加一、层层都在 T 下不变的子空间」是关于 T 与空间的几何事实。
从这一刻起,上三角化不再是矩阵技巧,而是找子空间的问题。
顺带得到一个漂亮的副产品:条件 (b) 说 span(v1,…,vk) 对每个 k 都不变。取定任意 k,你就得到了一个 k 维不变子空间。所以
复向量空间上的每个算子,都有任意指定维数的不变子空间。
这件事在实数域上不成立(旋转 90∘ 连一维不变子空间都没有),原因与 3.6 将讲的是同一个。
3.2 上三角矩阵的特征多项式 #
先做一次纯计算,把「对角元」和「特征值」的联系在计算层面看清楚。
设 A 是 2×2 上三角矩阵 A=(α0βδ)。按定义
det(A−zI)=α−z0βδ−z=(α−z)(δ−z)
(左下角是 0,行列式就是两个对角元之积)。所以
det(A−zI)=(z−α)(z−δ)
特征多项式直接就是两个一次因式之积,根是 α 与 δ——对角线上的两个数。
3×3 也一样。设 A 上三角,按第一列展开 det(A−zI):第一列只有第一个元素 α1−z 非零,于是
det(A−zI)=(α1−z)⋅det(右下角的 2×2 块−zI)
右下角那个 2×2 块仍然是上三角的,用上一步的结果继续。归纳下去得到
det(A−zI)=(z−α1)(z−α2)⋯(z−αn)(19.1)
这一步值得自己动手写两遍:它说明上三角矩阵的特征多项式不需要任何技巧,就是对角元的一次因式之积。于是特征值一目了然,连重数都读得出来——α 在式 (19.1) 里出现几次,它的代数重数就是几。
但请注意:这是矩阵的性质。真正想要的是算子的结论,而算子只有在「存在一组基使矩阵上三角」的前提下才能借用这个计算。这就引出 3.4。
3.3 对角元给出的算子等式 #
第二个结论比 3.2 更深:它不只给出特征多项式,还给出一个算子层面的恒等式。
定理:设 T∈L(V),存在 V 的基使 T 关于该基的矩阵为上三角,其对角元依次是 λ1,…,λn。那么
(T−λ1I)(T−λ2I)⋯(T−λnI)=0(19.2)
证明:思路是「逐个基向量击破」,并且要用一个关键观察。
关键观察:这些因子两两可交换。因为每个因子都是 T 的多项式,而 T 的多项式之间总是可交换的。所以调整因子的顺序不改变乘积。
现在逐个看基向量。
看 v1:矩阵第一列在对角线以下是 0,所以 Tv1=λ1v1,即 (T−λ1I)v1=0。既然第一个因子就把 v1 打成 0,那么再乘上任何别的因子仍然是 0。所以对每个 m≥1,(T−λ1I)⋯(T−λmI)v1=0。
看 v2:矩阵第二列只在前两行可能有数,所以 Tv2=λ2v2+(v1 的倍数),即
(T−λ2I)v2∈span(v1)
把它记作 cv1。由上一段知道 (T−λ1I) 把 v1 打成 0,于是
(T−λ1I)(T−λ2I)v2=(T−λ1I)(cv1)=c⋅0=0
再乘后面的因子也没关系(乘上去还是 0)。所以对每个 m≥2,(T−λ1I)⋯(T−λmI)v2=0。
看 v3:同理 (T−λ3I)v3∈span(v1,v2)。而前两段已经证明:落在 span(v1,v2) 里的向量,被 (T−λ1I)(T−λ2I) 打成 0(对 v1、v2 各打一次,线性组合照样打)。于是
(T−λ1I)(T−λ2I)(T−λ3I)v3=0
一般地:(T−λkI)vk∈span(v1,…,vk−1),而前面 k−1 个因子已经能把这整个张成空间打成 0。归纳下去,对每个 k 都有
(T−λ1I)⋯(T−λnI)vk=0
这个乘积算子把基里每个向量都打成 0,所以它是零算子。■
它是**「上三角」定义的直接翻译**:第 k 列只往上漏 k−1 个方向,
而前 k−1 个因子恰好够把这 k−1 个方向清空。
一步清一层,n 层清完,算子归零。
后面 3.5 的归纳证明、20 讲可对角化的判据,用的都是这个「一层一层剥」的骨架。
式 (19.2) 有一个等价说法:多项式
q(z)=(z−λ1)(z−λ2)⋯(z−λn)
满足 q(T)=0,即 q 是一个零化多项式。按 18 讲的结论,极小多项式整除每一个零化多项式,所以
极小多项式∣q(19.3)
这条整除关系是 3.4 和 3.5 的共同出发点。
3.4 特征值就是对角元 #
定理:设 T∈L(V) 关于某组基有上三角矩阵。那么 T 的特征值,恰好就是该矩阵对角线上的那些数。
证明分两半:先证「对角元都是特征值」,再证「没有别的特征值」。
前半:每个 λk 都是特征值。
λ1 是免费的:Tv1=λ1v1,而 v1=0。
λk(k≥2)需要一点维数论证。考察算子 T−λkI 在子空间 W=span(v1,…,vk) 上的行为:
- 对 j<k:Tvj∈span(v1,…,vj)⊆W,所以 (T−λkI)vj∈W;
- 对 j=k:Tvk=λkvk+(v1,…,vk−1 的组合),所以 (T−λkI)vk∈span(v1,…,vk−1)。
第二行是重点:vk 自己的分量被 λkvk 抵消干净了,只剩下前面的方向。所以
(T−λkI)(W)⊆span(v1,…,vk−1)
左边出发的空间维数是 k,右边落到的空间维数是 k−1。一个从 k 维空间到 k−1 维空间的线性映射不可能是单射(08 讲的线性映射基本定理:dimW=dimnull+dimrange,右边最多 k−1,所以零空间至少一维)。于是存在非零 v∈W 使 (T−λkI)v=0,即 λk 是特征值。
T−λkI 把「第 k 层」整个压到「前 k−1 层」里去,压扁了一维,必有一维被压成 0。
被压成 0 的那个向量就是特征向量。「压扁必塌」是这套证明唯一的力学。
后半:没有别的特征值。
设 λ 是 T 的任一特征值。按 17 讲,λ 是极小多项式的一个零点;按式 (19.3),极小多项式整除 q。整除意味着 q=极小多项式×另一个多项式,所以极小多项式的每个零点也是 q 的零点。于是 q(λ)=0,即
(λ−λ1)(λ−λ2)⋯(λ−λn)=0
乘积为零意味着某个因子为零,即 λ∈{λ1,…,λn}。■
一般矩阵求特征值要解 n 次方程,没有通用公式(n≥5 时连根式解都没有)。
而只要矩阵上三角,特征值就是对角线上的数,白送。
这就是本讲全部动机的来源:花力气换一个上三角形状,换来的是特征值的免费清单。
顺带得到:上三角矩阵可逆当且仅当对角元全不为零(因为 det=∏λk)。
3.5 什么时候做得到:充要条件 #
现在回答核心问题。上三角化需要什么?
定理(存在上三角矩阵的充要条件):设 V 有限维,T∈L(V)。那么 T 关于 V 的某组基有上三角矩阵,当且仅当 T 的极小多项式形如
(z−λ1)(z−λ2)⋯(z−λm),λ1,…,λm∈F
即极小多项式在 F 上完全分解成一次因式之积。
证明。
(⇒)先设 T 有上三角矩阵。 设对角元为 α1,…,αn,令 q(z)=∏(z−αj)。由 3.3,q(T)=0,所以极小多项式整除 q(18 讲)。而 q 本身已经是 n 个一次因式之积,q 的任何一个首一因式当然也是若干个一次因式之积(从 q 的因式里挑几个出来)。所以极小多项式是一次因式之积。而且这些因式的根 λ1,…,λm 都取自 {α1,…,αn}。
这一步实际上说明:极小多项式的根集 ⊆ 对角元集合。配合 3.4(对角元都是特征值、特征值都是极小多项式的根),三者其实是同一个集合,只是极小多项式可能不重复地列出它们。
(⇐)反过来,设极小多项式 =(z−λ1)⋯(z−λm)。 对 m 做归纳。
基础 m=1:极小多项式是 z−λ1,意味着 (T−λ1I)v=0 对所有 v 成立,即 T=λ1I。此时 T 关于任何基的矩阵都是 λ1I,那是上三角的(还是对角的)。
归纳步:设 m>1,并假设结论对所有更小的 m 成立。令
U=range(T−λmI)
第一步:U 在 T 下不变。 因为 T 与 T−λmI 可交换,对任意 u=(T−λmI)v∈U,
Tu=T(T−λmI)v=(T−λmI)(Tv)∈range(T−λmI)=U
所以 T 把 U 映进 U,T∣U 是 U 上的一个算子。
第二步:T∣U 的极小多项式长度至多 m−1。 对 u=(T−λmI)v∈U,
(T−λ1I)⋯(T−λm−1I)u=(T−λ1I)⋯(T−λm−1I)(T−λmI)v
右边正是把 T 的极小多项式作用在 v 上,等于 0。所以 (z−λ1)⋯(z−λm−1) 零化 T∣U,于是 T∣U 的极小多项式整除它,是至多 m−1 个一次因式之积。
第三步:用归纳假设。 由第二步,T∣U 满足归纳假设的条件,所以存在 U 的基 u1,…,uM,使 T∣U 关于它有上三角矩阵。由 3.1,这意味着
Tuk=(T∣U)(uk)∈span(u1,…,uk),k=1,…,M(19.4)
第四步:扩充成 V 的基并检查。 把 u1,…,uM 扩充成 V 的基
u1,…,uM,v1,…,vN
对每个 vk 做一个恒等变形:
Tvk=(T−λmI)vk+λmvk
第一项按 U 的定义落在 U=span(u1,…,uM) 里,第二项是 vk 的倍数。所以
Tvk∈span(u1,…,uM,v1,…,vk)(19.5)
式 (19.4) 与式 (19.5) 合起来,正是 3.1 的条件 (c)——把整个基排成 u1,…,uM,v1,…,vN 之后,每个基向量的像都落在它自己及之前那些向量张成的空间里。所以 T 关于这组基有上三角矩阵。■
归纳步里用了「U 上的归纳假设」。严格说还要确认 m>1 时 U={0}:
若 U={0},则 T−λmI=0,即 T=λmI,那 T 的极小多项式就是 z−λm,长度为 1,与 m>1 矛盾。
所以 m>1 时 U 确实是个非零的、维数严格更小的空间,归纳站得住。
这条定理的形状值得盯一会儿。它说的是:
上三角化不是关于「算子有没有足够多的特征向量」的问题,而是关于「多项式能不能拆开」的问题。
可对角化要求空间能被特征向量张满,那是个强得多的要求;上三角化只要求极小多项式拆得开。所以「可对角化 ⟹ 可上三角化」,反过来不成立(见第五节误区 5)。
由于极小多项式与特征多项式有相同的根集(18 讲),等价地:
可上三角化⟺特征多项式在 F 上完全分解(19.6)
在 F=C 上,这个条件永远成立。
3.6 为什么复数是关键 #
定理:设 V 是有限维复向量空间,T∈L(V)。那么 T 关于 V 的某组基具有上三角矩阵。
证明:只需两步。
第一步:T 的极小多项式是复系数多项式。由 15 讲的代数基本定理,每个次数 ≥1 的复系数多项式都有零点;反复除以一次因式,任何复系数多项式都能写成一次因式之积。所以极小多项式
p(z)=(z−λ1)⋯(z−λm),λj∈C
第二步:直接引用 3.5 的(⇐)方向。■
证明只有两行,但答案全在数域上。
关键在于第一步能成立完全是因为 F=C。换成 R:
- z2+1 没有实根,不能拆成两个实一次因式之积;
- 所以一个实算子的极小多项式可能是 z2+1,它不满足 3.5 的条件;
- 于是这个算子在 R 上没有上三角矩阵。
而同一个算子,看成复向量空间上的算子,极小多项式 z2+1=(z−i)(z+i) 立刻拆开了,上三角矩阵马上就有。
缺了「复」字就是错的。
正确的说法是:有限维复向量空间上的每个算子都有上三角矩阵。
数域不是背景板,它是定理的一部分。
3.7 同一个算子,两个数域:一个完整例子 #
抽象说完了,来看一个能真正算的例子。定义 T∈L(F4) 为
T(z1,z2,z3,z4)=(−z2, z1, 2z1+3z3, z3+3z4)
先看这个映射在做什么。前两个坐标上是 (z1,z2)↦(−z2,z1)——这是平面上逆时针转 90∘。后两个坐标上是 (z3,z4)↦(3z3, z3+3z4),一个带耦合的拉伸。
它的极小多项式是
p(z)=z4−6z3+10z2−6z+9
这个式子不好看,但可以拆开验证:
p(z)=(z2+1)(z−3)2
(乘开:(z2+1)(z2−6z+9)=z4−6z3+9z2+z2−6z+9=z4−6z3+10z2−6z+9,对上了。)
情形 F=R:z2+1 在实数上不可再拆(它没有实根)。所以 p 不能写成实一次因式之积,按 3.5 不存在 R4 的基使 T 有上三角矩阵。
这一半的几何原因是清楚的:T 在 z1z2-平面上是旋转 90∘,而旋转 90∘ 在实平面上没有特征向量(没有任何非零向量转 90∘ 后还是自己的倍数)。所以第一列都清不干净,遑论整块。
情形 F=C:z2+1=(z−i)(z+i),于是
p(z)=(z−i)(z+i)(z−3)(z−3)
四个一次因式,按 3.5 存在 C4 的基使 T 有上三角矩阵。具体的一组基是
u1u2u3u4=(4−3i, −3−4i, −3+i, 1)=(4+3i, −3+4i, −3−i, 1)=(0,0,0,1)=(0,0,1,0)
T 关于它的矩阵是
i0000−i0000300013
自己验一列(这个动作比读十遍推导有用)。取 u1:
Tu1=(−(−3−4i), 4−3i, 2(4−3i)+3(−3+i), (−3+i)+3)
逐项算:第一项 3+4i;第二项 4−3i;第三项 8−6i−9+3i=−1−3i;第四项 i。所以
Tu1=(3+4i, 4−3i, −1−3i, i)=i(4−3i, −3−4i, −3+i, 1)=iu1
第一列确实是 (i,0,0,0)T。再验 u3=(0,0,0,1):Tu3=(0,0,0,3)=3u3,第三列是 (0,0,3,0)T。再验 u4=(0,0,1,0):Tu4=(0,0,3,1)=u3+3u4,第四列是 (0,0,1,3)T——正好那个星号位置上的 1。
矩阵的对角线是 i,−i,3,3,按 3.4 这就是 T 的全部特征值:两个非实的成对出现,3 是重根。和 p 的分解完全一致。
① 「有没有上三角矩阵」可以只随数域变化,算子本身没变;
② 对角元按多重集恰好是极小多项式的根,重数也一致;
③ 上三角矩阵里那个星号可以是 0(这里前两块就是 0),也可以非零(第三行第四列的 1)。
星号的位置决定了「这组基离对角化有多远」。
3.8 上三角矩阵自己的算术 #
最后补一组「自己动手算一遍」的结论。它们不出现在核心证明里,但非常实用,而且每一个都能在纸上十分钟内验证。
设 A,B 是同阶上三角矩阵,A 的对角元是 α1,…,αn,B 的是 β1,…,βn。
(1) A+B 也是上三角,对角元是 α1+β1,…,αn+βn。
对角线以下的位置在两个矩阵里都是 0,加起来还是 0;对角元逐个相加。一行就证完。
(2) AB 也是上三角,对角元是 α1β1,…,αnβn。
设 j>k(即 (j,k) 在对角线以下),看乘积的第 (j,k) 个元素:
(AB)jk=l=1∑nAjlBlk
对每一项分类:
- 若 l≤k:则 j>k≥l,即 j>l,所以 Ajl=0(它在 A 的对角线以下);
- 若 l>k:则 Blk=0(它在 B 的对角线以下)。
两种情形覆盖了全部 l,每一项都是 0,故 (AB)jk=0。上三角乘上三角还是上三角。
对角元呢?取 j=k:
(AB)kk=l=1∑nAklBlk
- 若 l<k:Akl=0(对角线以下);
- 若 l>k:Blk=0(对角线以下)。
只剩 l=k 一项:(AB)kk=AkkBkk=αkβk。
由上三角矩阵的乘积仍上三角、对角元相乘,对任意正整数 m 有:Am 上三角,对角元是 αkm。
所以多项式 p(A) 也上三角,对角元是 p(αk)。这条在 18 讲(极小多项式)与 20 讲(可对角化)里都会反复用到。
另外它也解释了为什么 detA=∏αk——三角矩阵的行列式就是对角元之积,这正是 37 讲那条一般公式在三角情形下的退化。
(3) A 可逆时,A−1 也是上三角,对角元是 1/α1,…,1/αn。
先注意:A 可逆 ⟺ 所有 αk=0(因为 detA=∏αk=0)。
证明走子空间路线,比硬算逆矩阵干净。设 e1,…,en 是标准基。A 上三角等价于(3.1 那条定理的条件 (c))
Aek∈span(e1,…,ek)
于是 A 把 Ek=span(e1,…,ek) 映入 Ek。限制映射 A∣Ek:Ek→Ek 是 k 维到 k 维的映射,且 A 整体可逆故单射,所以它在 Ek 上也是单射,从而满射:A(Ek)=Ek。两边作用 A−1 得 A−1(Ek)=Ek,即 A−1 也把每个 Ek 映回自己。由 3.1,A−1 上三角。
对角元:在 (A−1A)kk=1 上用 (2) 的对角元公式,得 (A−1)kk⋅αk=1,所以 (A−1)kk=1/αk。
这三条合起来说明:上三角矩阵构成一个「封闭的家族」——加、乘、取逆都不跑出去,而且对角元的行为和对角矩阵一模一样(相加、相乘、取倒数)。
换句话说,上三角矩阵在「对角元」这一层上是可计算的:你几乎可以把上三角矩阵当成对角矩阵来用,代价只在星号那一半。
四、几何直观 / 记忆钩子 #
钩子一:旗(flag) #
3.1 的条件 (b) 说:存在一串子空间
{0}⊊V1⊊V2⊊⋯⊊Vn=V,dimVk=k
每一个都在 T 下不变。这样一串「维数每层加一、层层嵌套」的子空间,几何上叫一面旗(flag)。于是
上三角化 = 给 T 找到一面被它整面保留的旗。
「不变」在这里的意思是:旗的每一层不被 T 打出界。T 可以在一层里乱动,但不能把第 k 层的向量扔到第 k 层外面去。
钩子二:只准往上漏 #
把旗想成一栋楼,第 k 层是 Vk,vk 是「第 k 层新增的那个方向」。条件 (c) 说的是:
Tvk∈Vk=span(v1,…,vk)
即 vk 被 T 作用后,最多只能带上前面各层的信息,绝不会用到后面的层。
- 对角矩阵:每层原地不动,Tvk=λkvk,一个方向都不外漏;
- 上三角矩阵:只准往上漏,Tvk 可以沾上前 k 层;
- 下三角矩阵:只准往下漏。
三种形状,记一句话就够:对角是「不出门」,上三角是「只上楼」,下三角是「只下楼」。
钩子三:对角元是「每层的放大倍数」 #
在第 k 层这个位置上,T 把 vk 变成 λkvk 加上一些「更早的方向」。如果把那些更早的方向当成噪声忽略掉,T 在第 k 层上就是一个纯缩放,倍数是 λk。
这解释了两件事:
- 为什么 detA=∏λk:面积/体积在每一层被放大 λk 倍,总共放大乘积倍;
- 为什么特征值就是对角元:λk 是「第 k 层」这个方向上的缩放倍数,而特征值正是「某个方向上纯缩放」的倍数。
严格讲,λk 是 T 在商空间 Vk/Vk−1 上诱导的算子(一维空间上就是乘以某个数)的那个数。
一维空间上的算子只能乘一个数,这个数就是 λk。所以对角元一点也不神秘:它是每一层「新增方向」上的缩放率。
商空间的概念在 11 讲,这里只要能接受「每一层相对上一层多出一个方向」就够了。
钩子四:归纳就是剥洋葱 #
3.5 的归纳证明在几何上是从外往里剥:
- 先取 U=range(T−λmI)——这是一个维数更小的不变子空间(T−λmI 把最后一层方向压掉了);
- 在 U 里头按归纳假设找到一面小旗;
- 把小旗的顶层向量扩充到整个 V,多出来的那些 vk 就自动满足「只往上漏」。
一句话记住这个动作:
先剥掉一层(用 T−λmI 压掉一维),在剩下的空间里做同样的事,再把基接回去。
而 3.4 前半的证明是它的「反向」:T−λkI 把第 k 层压到前 k−1 层,压扁必塌,塌出来的就是特征向量。
五、常见误区 #
这是最容易犯、也最要命的一个。一个矩阵做行变换后得到的行阶梯形是上三角的,但这个上三角矩阵与「算子关于某组基的上三角矩阵」毫无关系。
具体反例:T 是 R2 上的旋转 90∘,矩阵 A=(01−10)。对 A 做行变换能得到 (1001),那是上三角的。但按 3.5,T 的极小多项式是 z2+1,在 R 上拆不开,所以 T 关于任何基都没有上三角矩阵。
判别口诀:行阶梯形是「同一个算子在换行」,上三角矩阵是「同一个算子在换基」。 前者改矩阵、不改算子;后者改的是算子的坐标表达。特征值只有后者能读出来。
只有 v1 一定是。vk 是特征向量,当且仅当矩阵第 k 列除了第 k 个元素外全为 0。
反例:A=(2015),v1=(1,0) 是特征向量(Tv1=2v1),但 v2=(0,1) 不是:Tv2=(1,5),它不是 (0,1) 的任何倍数。
所以「上三角化」不等于「找到足够多的特征向量」。它只保证有一面旗,不保证旗的每一层都是特征方向。这一点也正是它与可对角化的分界线。
严格的说法是「T 关于某组基有上三角矩阵」,或者简称「T 可上三角化」。矩阵形状永远是相对于基的。
同一个算子,在一组基下矩阵 2×2 全部非零(完全不是上三角),换一组基就可能变成上三角。说「T 是上三角的」是病句。
「对角元全非零 ⟹ 可逆」只在三角情形成立。一般矩阵上这句话是错的,两个方向都错:
- A=(0110) 对角元是 0,0,但 A 可逆(det=−1);
- B=(1111) 对角元是 1,1,但 B 不可逆(两行相同,det=0)。
这两类反例正是提醒:3.4 的前提是「该矩阵确实上三角」,删掉前提,结论失效。
反了。可对角化 ⇒ 可上三角化,但反过来不成立。
反例:A=(2012) 是上三角的(因而可上三角化),但特征值只有 2 一个且重数为 2;若可对角化,R2 就得有一组由特征向量组成的基,那矩阵等于 2I,与 A=2I 矛盾。
一句话:上三角是「部分简化」,对角是「完全简化」。前者门槛低得多,后者要求空间被特征向量张满。
3.6 保证了复空间上一定存在上三角矩阵,但这个基一般没法用有限步的有效算法求出来(求特征值本身就没有通用公式)。
所以这条定理的用途是「解释结构、判断能不能」,不是「给一个照着跑的程序」。真要在数值上得到上三角/Schur 形,靠的是迭代算法(见第六节)。
六、拓展(可跳过) #
① Schur 三角化(更漂亮的上三角)。 加上内积结构之后可以加码:不只要基,还要求这组基是规范正交基。结论是——复内积空间上的每个算子,都存在一组规范正交基使它关于该基上三角。这叫 Schur 三角化,是 26 讲谱定理的铺垫。它把「抽象的上三角化」升级成「数值上稳定的上三角化」,因为正交变换不放大误差;数值线性代数里求特征值的标准形状(Schur 形)就是它。
② 两个算子同时上三角化。 单个算子总是能做(复数域上);两个算子要同时上三角化,条件是它们可交换:ST=TS。这正是 21 讲(可交换算子)的主题。顺序很自然:先学会一个,再看一对。
③ 不变子空间的丰富性。 3.1 的直接推论是:复空间上的算子在每个维数 k 上都有不变子空间(取 span(v1,…,vk))。这对实算子可以失效——旋转 90∘ 一个非平凡不变子空间都没有。
④ 限制与商。 若 T 可上三角化,U 是 T-不变子空间,则 T∣U 与商算子 T/U 都可上三角化;反过来也成立(拼起来)。这条就是把 3.5 的归纳从「抽象的存在性」变成「可以逐块拼装」的工具。
⑤ Jordan 形(33 讲)。 上三角矩阵里那些星号仍然是自由的。能不能把它们也规范掉?能:在对角线附近允许「1」出现,其余全清成 0,得到 Jordan 形。所以本讲是 Jordan 理论的第一级台阶:先把形状做成上三角,再把星号整理成 Jordan 块。
⑥ 数值视角。 工程上求特征值的主力算法(QR 算法)本质上是迭代地把矩阵推向(准)上三角/Schur 形。这解释了为什么「上三角」这个形状值得单独一讲:它不只是理论上的中间站,还是所有实用特征值算法的终点形状。
七、自测(先做,再看答案) #
1. 判断下列方阵是否上三角,并说明 4×4 上三角矩阵至少有多少个零:
A=100240356,B=123045006,C=(0070)
2. 设 A=300120251。(a) 写出 A 的全部特征值;(b) A 是否可逆?(c) A−2I 是否可逆?(d) dimnull(A−2I) 至少是多少?
3. 设 A,B 是同阶上三角矩阵,对角元分别为 α1,…,αn 与 β1,…,βn。证明 AB 上三角,且对角元为 α1β1,…,αnβn。
4. 设 T∈L(R2) 为 T(x,y)=(−y,x)(逆时针转 90∘)。(a) 证明不存在 R2 的基使 T 有上三角矩阵;(b) 把它看成 C2 上的算子,给出一组基使矩阵上三角,并写出对角元。
答案(点开)
1. A 是上三角(对角线以下三个位置全为 0)。B 不是(左下角 2,3,5 都在对角线以下)。C 是上三角(左下角是 0),虽然对角元全是 0。
4×4 时对角线以下的个数是 24⋅3=6,即 16 个元素里至少 6 个是 0,超过三分之一。
2. (a) 按 3.4,特征值就是对角元:3,2,1。
(b) 可逆。对角元全非零,detA=3⋅2⋅1=6=0。
(c) 不可逆。A−2I 仍是上三角(上三角减标量倍单位阵还是上三角),其对角元是 1,0,−1,出现 0,故 det=0。
(d) 至少 1 维。A−2I=10010025−1 是上三角矩阵,对角元是 1,0,−1,含 0,故不可逆,于是 dimnull(A−2I)≥1。
想看精确值也行:第二、三行分别给出 5z=0 与 −z=0,即 z=0;第一行给出 x+y=0。所以零空间是 {(x,−x,0)},恰好 1 维。这与 3.4 前半「λk 的重数决定了能压扁几维」的印象一致——对角的 0 只出现一次,就只塌一维。
3. 见 3.8 的 (2)。要点是分 l≤k 与 l>k 两种情形,前者用 A 的下三角为零,后者用 B 的下三角为零;对角元只剩 l=k 一项。
4. (a) 矩阵(关于标准基)是 (01−10),特征多项式 det(A−zI)=z2+1,在 R 上不可分解。所以极小多项式(等于 z2+1,因为它不是一次式而 z2+1 零化 T)不满足 3.5 的条件,T 在 R 上不可上三角化。
几何理由:若存在上三角矩阵,对角线第一个元素 λ1 会是特征值,于是存在实特征向量;但旋转 90∘ 把每个非零向量都转出原来的直线,没有实特征向量。矛盾。
(b) 取 v1=(i,1)、v2=(−i,1)。验证:T(i,1)=(−1,i)=i(i,1) ✓;T(−i,1)=(−1,−i)=−i(−i,1) ✓。
所以矩阵是 (i00−i),对角元 i,−i,正好是 z2+1 的两个根。
八、复习卡 #
| 项 |
内容 |
| 对角线 |
从左上到右下那条线上的元素 A11,A22,…,Ann |
| 上三角矩阵 |
对角线以下全为 0 的方阵 |
| 零的个数 |
n×n 上三角矩阵至少 2n(n−1) 个零 |
| 等价条件 (b) |
对每个 k,span(v1,…,vk) 在 T 下不变 |
| 等价条件 (c) |
对每个 k,Tvk∈span(v1,…,vk) |
| 几何说法 |
上三角化 = 找到一面被 T 保留的旗 |
| 对角元等式 |
(T−λ1I)⋯(T−λnI)=0 |
| 特征值 |
就是上三角矩阵对角线上的元素(一个不多一个不少) |
| 可逆判据 |
上三角矩阵可逆 ⟺ 对角元全非零 |
| 充要条件 |
可上三角化 ⟺ 极小多项式在 F 上完全分解 |
| 等价说法 |
可上三角化 ⟺ 特征多项式在 F 上完全分解 |
| 复数定理 |
有限维复向量空间上每个算子都有上三角矩阵 |
| 为什么靠复数 |
代数基本定理保证复系数多项式必有一次因式 |
| 实数反例 |
旋转 90∘:极小多项式 z2+1,R 上不可上三角化 |
| 乘积 |
上三角 × 上三角 = 上三角,对角元相乘 |
| 逆 |
上三角的逆仍是上三角,对角元取倒数 |
| 与可对角化 |
可对角化 ⇒ 可上三角化,反之不成立 |
| 与行阶梯形 |
完全无关:一个换基、一个换行 |
九、出处与延伸(可选,不影响阅读) #
- 主线出处:上述定义与五个核心结论(对角线与上三角矩阵的定义、上三角的条件、对角元等式、特征值定理、充要条件、复空间定理)系统的对应位置是《线性代数应该这样学》(第 4 版)第 5C 节,印刷页码 p143–149。原文编号为 5.37(对角线)、5.38(上三角矩阵)、5.39(上三角矩阵的条件)、5.40(对角元等式)、5.41(由上三角矩阵确定特征值)、5.44(存在上三角矩阵的充要条件)、5.47(复数域上的定理);例子是 5.36、5.42、5.43。
- 本讲的顺序调整:原文把「特征值即对角元」(5.41)排在「充要条件」(5.44)之前,又用 5.40 作为桥梁。本讲把 3.2(特征多项式的纯计算)提到 3.3 之前,是为了让读者先在手算层面看到「对角元是根」,再看算子层面的等式,接受度更好。逻辑关系未变。
- 第三节 3.5 中「m>1 时 U={0}」那一句,原文未显式写下,是为补上归纳法的严格性而加的旁注,非原文内容。
- 第四节「旗」的说法:原文未用「旗」(flag)一词,这是线性代数里的通行几何叫法,用来把条件 (b) 说得更形象;用它不影响结论。
- **3.8 三条(和、积、逆的对角元)**对应第 5C 节习题 2、3;习题 4、5 正是第五节误区 4 的那两个反例(对角全 0 却可逆、对角全非零却不可逆),习题 6 是「任意 k 维不变子空间」,习题 12、13 是限制算子与商算子的版本,习题 10 是下三角的平行结论。
- 想深挖时:Schur 三角化的标准处理见任何一本矩阵分析教材(Horn & Johnson, Matrix Analysis 第 2 章);Jordan 形与本讲的关系见本课 33 讲;「一行一列地剥」的算法视角可查数值线性代数中的 QR 迭代。
- 术语别名:上三角矩阵 = upper-triangular matrix = 上三角形矩阵;下三角 = lower-triangular;对角线 = diagonal;「可上三角化」也有人写「可三角化」「triangularizable」。对角矩阵 = diagonal matrix。这些译名差异不影响内容。
本讲真正的收获不是「上三角矩阵长什么样」,而是那条判据:能不能把矩阵做简单,取决于极小多项式能不能拆开;而能不能拆开,取决于你在哪个数域上工作。
下一站(20 讲)要把上三角进一步收紧成对角,那时判据会变得更苛刻——不只是「拆得开」,还要求「每一层都能找到自己的特征方向,且这些方向能凑满整个空间」。