☰
线性代数标准型全解析:行最简形、相似对角形、若尔当与规范形实战指南
2026/10/22 15:57:33 网站建设 项目流程

带过几届学生的线性代数之后,我发现一个规律:凡是学到"标准型"这一章还精神抖擞的,只有两类人——一类是天生喜欢收拾房间的,另一类是已经放弃治疗的。剩下的绝大多数人,都会在"行最简形""相似对角形""二次型标准形""若尔当标准形"之间反复横跳,考前背了一堆名字,考场上还是分不清哪个该往哪儿填。

这篇文章不打算按教材目录讲。我想以一名常年在这个主题上带着学生做题、自己也踩过不少坑的人的身份,把这几个"标准型"放到同一张桌面上慢慢拆。你会看清楚它们各自解决什么问题、允许做什么操作、保持什么东西不变,以及做题时怎么一眼认出该用哪个。适合正在复习线代的同学、自学备考的人,也适合想把这章彻底想明白、而不是背下来的读者。

1. 三个"标准型"背后的三套游戏规则:先分清谁是老板

很多人晕就晕在:教材第2章讲"行最简形",第5章讲"相似对角形",第6章又冒出"二次型的标准形"。名字都带"标准"两个字,但它们的底层逻辑完全不同。我的建议是:不要背名字,先看场景。

1.1 标准型本质上都是"换坐标系"

线性代数里所有"标准型",共通的目标只有一个:在保证某些核心性质不变的前提下,把对象变到最简单的样子。就好比一台相机,无论你怎么旋转、平移,拍到的其实是同一个场景,只是换了个视角。标准型干的事,就是帮你找到那个"拍出来最清爽"的角度。

不同的问题场景,允许使用的"拍摄动作"不一样,因此得到的"简单样子"也不一样。这三套规则的差异可以用一张表说清楚:

场景允许做的操作保持不变量得到的最简形式
解线性方程组行初等变换方程组的解集、矩阵的秩行最简形
研究线性变换/方阵相似变换P⁻¹AP特征值、迹、行列式、极小多项式对角矩阵或若尔当标准形
研究二次型合同变换CᵀAC矩阵的秩、正负惯性指数二次型标准形/规范形

注意"保持不变量"这一列,这才是标准型的灵魂。什么样的操作能让你放心大胆地化简?答案是:化简过程中"不能丢失的东西"恰好就是那个问题里你最关心的东西。

  • 解方程组时,你关心解集变不变。行变换不改变解集,所以随便消元。
  • 研究线性变换时,你关心它的本质性质,也就是特征值、极小多项式这些"几何品格"。相似变换正好能保住这些。
  • 研究二次型时,你关心的是这个二次齐次式代表的几何对象(椭圆、双曲线……)以及符号正负情况。合同变换恰好保住惯性。

我见过太多人把"行最简形"和"对角矩阵"画等号,就是因为没分清第一个场景和第二个场景的游戏规则。行变换做出来的对角样子,根本保不住特征值;相似变换做出来的对角矩阵,也跟解方程没有半点关系。

1.2 一个容易被忽略的事实:"标准型"不只有一个

教材里"标准型"这个词被复用了无数次。严格来说:

  • 行最简形是矩阵在行等价意义下的标准型;
  • 相似对角形是矩阵在相似等价意义下的标准型;
  • 若尔当标准形是相似意义下"能到的最接近对角"的标准型;
  • 二次型标准形是合同意义下的标准型;
  • 史密斯标准形是多项式矩阵在行列等价意义下的标准型。

它们分布在不同的"等价关系"里,各自的唯一性结论也不同。想把这章学透,第一件事就是把"等价关系"和"标准型"配对记住,而不是把"标准型"当成一个包罗万象的神秘名词。

2. 行最简形:解方程组时真正在用的"傻瓜操作手册"

这一节我们先解决最务实的问题:拿到一个线性方程组,怎么又快又稳地求出所有解,并且不丢解、不增解。

2.1 为什么只允许"行"变换,绝不动列

方程组的本质是等式。你做的每一步操作,都必须保证新的方程组和旧的方程组同解。合法的三类操作是:

  1. 交换两行的位置;
  2. 给某一行乘非零常数;
  3. 给某一行加上另一行的若干倍。

这三类操作对应到一个数学结论:对增广矩阵做初等行变换,不改变方程组的解集。这就是高斯消元法能成立的全部底气。

那为什么不能做列变换?因为列交换相当于把未知数的顺序换了。你本来认为第一列是 (x),第二列是 (y),交换之后第一列变成 (y),解出来的数值和未知数对不上号了。稍微极端一点的例子:方程 (x+2y=3) 和 (2x+y=3),解分别是 (x=1,y=1) 和 (x=3,y=-3)。你要是对系数矩阵动一列,表面上矩阵好看了,解却彻底乱了。所以列变换在解方程这个场景下是禁区。

顺便说一个很多人不知道的点:秩这个概念之所以是"行等价不变量",也是因为行变换可以任意做,列变换会影响行空间的结构。虽然高斯消元时"秩"用行最简形里的主元个数来数,但秩的定义从来都依赖"行最简形的非零行数",而不是"化简后有几个圆圈"。

2.2 行阶梯形和行最简形的实操步骤

先说两个定义,很多教材一句话带过,但做题时区分不清:

  • 行阶梯形:非零行都在上面,零行全部在下面;每一行第一个非零元素(主元)所在的列,随着行号增加不断右移;主元下方全是零。
  • 行最简形:在行阶梯形基础上,每个主元都化为 1,而且主元所在列的其他元素全部化为 0。

我用一个具体的方程组演示完整流程。考虑:

[ \begin{cases} x+2y+z=4\ 2x+4y+3z=9\ x+y+z=3 \end{cases} ]

增广矩阵:

[ \begin{bmatrix} 1 & 2 & 1 & 4\ 2 & 4 & 3 & 9\ 1 & 1 & 1 & 3 \end{bmatrix} ]

第一步,把第一列第一行的 1 当作主元,消去下面两个元素。第二行减去第一行的 2 倍,第三行减去第一行的 1 倍:

[ \begin{bmatrix} 1 & 2 & 1 & 4\ 0 & 0 & 1 & 1\ 0 & -1 & 0 & -1 \end{bmatrix} ]

第二步,现在第二列的主元出现在第三行(-1),为了满足"主元随行数右移",交换第二行和第三行,再给第二行乘 -1:

[ \begin{bmatrix} 1 & 2 & 1 & 4\ 0 & 1 & 0 & 1\ 0 & 0 & 1 & 1 \end{bmatrix} ]

到这里已经是行阶梯形了。如果只是想判断解的情况,到这步就能看出秩为 3,唯一解。但如果要求行最简形,还要继续:把第三列也消干净,第二行、第一行上方都处理成 0。第一行减去第二行的 2 倍再减去第三行的 1 倍:

[ \begin{bmatrix} 1 & 0 & 0 & 1\ 0 & 1 & 0 & 1\ 0 & 0 & 1 & 1 \end{bmatrix} ]

于是直接读出 (x=1,y=1,z=1)。这个例子我想说明一个实操经验:行最简形不是为了好看,而是为了把解直接"读"出来。如果只到行阶梯形,你还得回头做回代;做到行最简形,答案就在增广列里。

2.3 两个常见的翻车点

第一个翻车点:过早引入分数。我见过很多学生拿到矩阵,非要把某个元素直接化成 1,结果引入一堆分数,算着算着自己先乱了。正确做法是:先消元,后归一。尽量用整数运算把下方元素消成 0,最后再考虑把主元化 1。中间一旦出现分数,计算量爆炸式增长,出错率也直线上升。

第二个翻车点:自由变量选错。遇到 (m<n) 的方程组,主元列对应的是"约束变量",非主元列对应"自由变量"。有个学生曾经问:老师,我为什么不能把自由变量选成主元列那一列?因为自由变量本来就可以取任意值,所有解都由它生成。你如果把约束变量当自由变量,会丢掉一部分解。记住:主元在哪一列,哪一列就不是自由变量。

行最简形还有个两用妙处:求逆矩阵。把 ((A|I)) 做行变换化成 ((I|A^{-1})),本质就是用一系列行变换拆解出逆矩阵。原理和消元完全一致,不多讲,但前提是你对行变换足够熟练。

3. 相似标准型:把同一个变换放到"最舒服的坐标系"里

矩阵相乘可以看成线性变换,但同一个线性变换,换一组基,对应的矩阵就变了。相似标准型要回答的问题是:在所有可能的基底下,这个线性变换的矩阵能简单到什么程度?

3.1 对角化为什么不是万能钥匙

如果矩阵 (A) 有 (n) 个线性无关的特征向量,把它们排成矩阵 (P),那么 (P^{-1}AP) 就等于对角矩阵,对角线上的元素就是特征值。这个结论背后的直觉是:如果你用特征向量作为新坐标系,线性变换在这个坐标系里就只是"在各个方向上伸缩",没有交叉影响,所以矩阵是对角的。

问题是,很多矩阵凑不齐 (n) 个线性无关的特征向量。最典型的例子是:

[ A = \begin{bmatrix} 2 & -1 \ 1 & 4 \end{bmatrix} ]

计算特征多项式:

[ \det(\lambda I - A) = (\lambda-2)(\lambda-4)+1 = \lambda^2 - 6\lambda + 9 = (\lambda-3)^2 ]

特征值只有 (\lambda=3),代数重数为 2。但是:

[ A - 3I = \begin{bmatrix} -1 & -1 \ 1 & 1 \end{bmatrix} ]

这个矩阵的秩是 1,所以零空间维数是 1,也就是说几何重数只有 1。特征向量只能找出一条独立的方向,根本凑不出两个线性无关的特征向量,无法对角化。

这里引出判断可对角化的黄金条件:对每个特征值,代数重数必须等于几何重数。代数重数是特征多项式里的重数,几何重数是零空间维数。两者一旦不相等,这个矩阵就是对角化不了的。

3.2 若尔当标准型:最后的避难所

对角化不了怎么办?那就允许对角线附近出现一点"1",这就是若尔当标准型。每个若尔当块长这样:

[ J_k(\lambda) = \begin{bmatrix} \lambda & 1 & & \ & \lambda & 1 & \ & & \ddots & \ddots \ & & & \lambda \end{bmatrix} ]

那个 (1) 是怎么来的?我们不再要求每个基向量都在 ((A-\lambda I)) 作用后变成 0,而是放宽为:经过若干次 ((A-\lambda I)) 作用后才变成 0。这种向量叫广义特征向量。若尔当块中的 1 表示基向量之间存在一条传递链:

[ (A-\lambda I)v_1 = 0,\quad (A-\lambda I)v_2 = v_1,\quad (A-\lambda I)v_3 = v_2 ]

所以若尔当块的大小,本质上是这条"广义特征向量链"的长度。

来看一个直观的例子。三个矩阵特征值全是 2,但若尔当标准型完全不同:

[ A_1 = \begin{bmatrix} 2 & 1 & 0 \ 0 & 2 & 0 \ 0 & 0 & 2 \end{bmatrix},\quad A_2 = \begin{bmatrix} 2 & 1 & 0 \ 0 & 2 & 1 \ 0 & 0 & 2 \end{bmatrix},\quad A_3 = \begin{bmatrix} 2 & 0 & 0 \ 0 & 2 & 0 \ 0 & 0 & 2 \end{bmatrix} ]

它们的特征多项式都是 ((\lambda-2)^3),但:

  • (A_3) 几何重数是 3,可以对角化,若尔当标准型是三个 1 阶块;
  • (A_1) 里 ((A_1-2I)) 的秩是 1,零空间维数是 2,对应两个若尔当块,一个 2 阶一个 1 阶;
  • (A_2) 里 ((A_2-2I)) 的秩是 2,零空间维数是 1,对应一个 3 阶若尔当块。

注意,我故意把矩阵直接写成"已经接近若尔当块"的样子,方便你看清结构。实际做题时矩阵通常长得更乱,我们需要一套系统化的算法。

3.3 算若尔当标准型的实操算法

求若尔当标准型,不要靠蒙。我常用的套路是四步:

  1. 先求特征多项式,拿到所有特征值和代数重数;
  2. 对每个特征值 (\lambda),计算零空间维数,也就是 (\dim\ker(A-\lambda I)),它直接告诉你对应特征值的若尔当块个数;
  3. 继续计算 (\dim\ker((A-\lambda I)^2))、(\dim\ker((A-\lambda I)^3)),直到维数不再增长;
  4. 用相邻两层的维数差确定每层块的个数。

以刚才的 (A_2) 为例,(\lambda=2):

(k)(\dim\ker((A_2-2I)^k))比上一层的增量
111个至少1阶的块
22多了1个至少2阶的块
33多了1个至少3阶的块

这说明有一个若尔当块能达到 3 阶,所以标准型就是单个 (J_3(2))。对 (A_1) 算,第一层维数是 2,说明有两个块;第二层维数仍然是 2,说明没有块超过 2 阶,所以结果是 (J_2(2)\oplus J_1(2))。

为什么用这个差值法?因为 (\dim\ker((A-\lambda I)^k)) 数的是"链长至少为 k 的广义特征向量"张成的空间维数,相邻两层之差正好是"链长恰好为 k"的块数。把这个想明白了,若尔当标准型就不再是需要死记的魔法。

提示:这套方法默认特征多项式在讨论的范围内能够完全分解。在复数范围内任何矩阵都可以,但如果你在实数范围内讨论一个没有实特征值的矩阵(比如旋转矩阵),若尔当标准形就不太适合了。这类矩阵要用后面第 5 节的有理标准形。

4. 二次型的标准形与规范形:换坐标系看几何

二次型这部分的名字最混乱,因为既叫"标准形"又叫"规范形",还经常和特征值混在一起。我拆开讲。

4.1 配方法和正交变换法得到的是同一个"标准形"吗

二次型长这样:

[ q(x,y) = 2x^2 + 4xy - y^2 ]

它对应的对称矩阵是:

[ A = \begin{bmatrix} 2 & 2 \ 2 & -1 \end{bmatrix} ]

因为 (q(x,y) = [x\ y] A [x\ y]^T)。我们想把交叉项 (4xy) 消掉,办法是换一组变量,这个换法在矩阵语言里就是合同变换:(B = C^T A C)。

第一种做法是配方法。把 (2x^2 + 4xy) 看成完全平方的一部分:

[ q = 2(x^2+2xy)-y^2 = 2[(x+y)^2 - y^2] - y^2 = 2(x+y)^2 - 3y^2 ]

令 (u = x+y,\ v = y),就得到:

[ q = 2u^2 - 3v^2 ]

这是标准形之一,对角线上的元素是 2 和 -3。

第二种做法是用正交变换。对称矩阵一定能正交对角化,求出 (A) 的特征值即可:

[ \det(\lambda I - A) = (\lambda-2)(\lambda+1) - 4 = \lambda^2 - \lambda - 6 = (\lambda-3)(\lambda+2) ]

于是经过正交变换后:

[ q = 3u'^2 - 2v'^2 ]

两种方法得到的是不同的标准形(一个 2 和 -3,一个 3 和 -2),但这不矛盾。标准形就是在合同意义下的"尽量对角",它并不唯一,因为你可以随时把变量再缩放。关键的不变量是:正项的个数永远是一个,负项的个数永远是一个。这就是惯性定理,也叫西尔维斯特惯性定律。

把每个非零项再归一化成 (+1) 或 (-1),得到的样子:

[ q = w_1^2 - w_2^2 ]

才是规范形。规范形在合同意义下是唯一的,正负惯性指数分别是 1 和 1,秩为 2。

4.2 规范形怎么给二次曲线验明正身

二次型不只是代数练习题,它决定了一条二次曲线的形状。比如一般形式的:

[ ax^2 + bxy + cy^2 + dx + ey + f = 0 ]

把二次齐次部分化成规范形,就等于把坐标系旋转到没有交叉项的角度,这时曲线就现出原形。结论可以用一张小表总结:

规范形(只看二次部分)曲线的类型
(u^2 + v^2)椭圆(或圆)
(u^2 - v^2)双曲线
(u^2) 或 (v^2)抛物线(或退化情况)
(0)退化情形,比如两条直线

判断的关键是正惯性指数:全正的是椭圆型,一正一负的是双曲型,有零出现的是抛物型。这个思路直接推广到三维就是二次曲面的分类,考试和论文里都常出现。

4.3 做题时的实用判断

拿到一个对称矩阵要做合同标准形时,我一般这样选方法:

  • 如果题目要求"可逆线性变换",配方法最稳妥,永远能做,步骤也不容易错;
  • 如果题目要求"正交变换",那必须走特征值路线,因为只有正交变换才保证不改变图形的角度和距离感;
  • 如果题目问"规范形是什么",别急着配方法,直接数正负惯性指数,也就是看特征值符号,更快。

另外要提醒:正交矩阵是特殊的合同变换,但合同变换不一定是正交变换。用配方法化出来的对角阵,对应的变换矩阵 (C) 一般不是正交的,但没关系,因为在"二次型合同"这个语义下,我们只关心惯性,不关心是否保持角度。

5. 进阶的两种标准型:当矩阵开始"多项式化"

如果你考的是数学专业、或者做矩阵理论、控制理论相关的研究,还会碰到另外两种标准型。它们出现的频率低一点,但一旦出现就是"降维打击"级别的工具。

5.1 史密斯标准形:多项式矩阵的"行最简形"

把矩阵的元素从数字换成一元多项式,就得到多项式矩阵。比如:

[ B(x) = \begin{bmatrix} x-1 & x-1 \ 0 & x-1 \end{bmatrix} ]

我们允许对多项式矩阵做三类操作:交换两行/两列、给某行/某列乘非零常数、把某行/某列加上另一行/另一列的多项式倍。注意,这里乘的只能是非零常数或者多项式倍数吗?严格来说,初等操作里"乘以一个可逆元",在一元多项式环里可逆元就是非零常数。这跟数值矩阵不同:你不能给多项式矩阵某一行整行乘 ((x-1)),因为 ((x-1)) 没有多项式逆元,乘了之后信息就变了。

对 (B(x)),只需做列变换 (C_2 - C_1),就变成:

[ \begin{bmatrix} x-1 & 0 \ 0 & x-1 \end{bmatrix} ]

对角线元素能按整除关系排好,这就是史密斯标准形。一般地,史密斯标准形是:

[ \mathrm{diag}(d_1(x), d_2(x), \dots, d_r(x), 0, \dots, 0) ]

并且满足 (d_i(x)) 整除 (d_{i+1}(x))。这些 (d_i(x)) 叫不变因子,它们在行列等价意义下唯一。

不变的因子有什么用?最大用处之一是判断两个矩阵是否相似。直接算两个原始矩阵的相似性很麻烦,但把 (xI-A) 和 (xI-B) 分别化成史密斯标准形,如果它们的不变因子完全一样,那么 (A) 和 (B) 相似。这个结论在解矩阵方程、研究线性微分方程组时都是杀手锏。

5.2 有理标准形:不依赖数域的标准型

若尔当标准形有个前提:特征多项式必须在讨论的数域里完全分解。但一个矩阵在实数范围可能根本没有实特征值,比如旋转矩阵:

[ R = \begin{bmatrix} 0 & -1 \ 1 & 0 \end{bmatrix} ]

它的特征多项式是 (\lambda^2+1),实数范围内没有根,所以实数范围内谈不上若尔当标准形。但这个矩阵也有一个"最简形"——它自己就是某类"有理标准形"。

有理标准形由不变因子组装而成,每个不变因子对应一个伴侣矩阵。假设有一个首一多项式:

[ p(\lambda) = \lambda^k + a_{k-1}\lambda^{k-1} + \cdots + a_0 ]

它的伴侣矩阵是:

[ C(p) = \begin{bmatrix} 0 & 0 & \cdots & 0 & -a_0 \ 1 & 0 & \cdots & 0 & -a_1 \ 0 & 1 & \cdots & 0 & -a_2 \ \vdots & & \ddots & \vdots & \vdots \ 0 & 0 & \cdots & 1 & -a_{k-1} \end{bmatrix} ]

上面那个旋转矩阵 (R) 的特征多项式是 (\lambda^2+1),伴侣矩阵写出来是:

[ \begin{bmatrix} 0 & -1 \ 1 & 0 \end{bmatrix} ]

恰好就是 (R) 自己。也就是说,(R) 的有理标准形就是自身,它不需要引入任何虚数。

有理标准形的意义在于:不管数域是什么,所有矩阵都能有唯一的标准形。它比若尔当标准形的适用范围更广,代价是块里的结构不如若尔当块直观。做理论研究、处理有限域上的矩阵问题时,有理标准形几乎是必需品。

6. 标准型家族对照表与复习建议

学到最后,最有用的是把它们并排放好。我整理了一份对照表,建议你抄在笔记本上,考前只看这张表就够:

标准型允许的操作/变换研究对象保持的核心不变量唯一性典型用途
行最简形初等行变换方程组的增广矩阵解集、秩唯一解方程组、求秩、求逆
相似对角形相似变换 (P^{-1}AP)可对角化的方阵特征值、特征向量结构不唯一(特征向量基可缩放)矩阵幂、解耦线性系统
若尔当标准形相似变换任意复方阵特征值、代数/几何重数、极小多项式唯一(块顺序可交换)矩阵函数、微分方程组
二次型规范形合同变换 (C^TAC)对称矩阵/二次型秩、正负惯性指数唯一二次曲线曲面分类、极值判定
史密斯标准形多项式矩阵的行列初等变换多项式矩阵不变因子唯一判定相似、解矩阵方程
有理标准形相似变换任意数域上的方阵不变因子唯一不依赖特征值的矩阵研究

复习时我最想强调的一件事:先判断场景,再选工具。看到"解线性方程组"就想行最简形;看到"矩阵的高次幂""线性变换的几何结构"就想特征值、相似与若尔当;看到"二次齐次式""曲线曲面分类"就想合同变换和规范形。场景判断对了,后面的计算只是熟练度问题。

做若尔当标准形的题时,我强烈建议先画一张"核空间维数表",像第 3 节那样把每一层的维数列出来,再推导块数。直接凭感觉猜块数,十个有九个会错。

做二次型规范形的题时,先判断题目要求的是"标准形"还是"规范形"。标准形不必唯一,规范形必须写成正负 1,这俩在考场上常常被混着批改。

我还想多说一句个人体会:标准型之所以让这么多人头疼,是因为大家总想背结论,而不是追问"为什么允许这么做"。只要你愿意多问一句"这个变换保住了什么",整个线性代数里一大半公式就都串起来了。我不喜欢把线性代数说得玄乎,但"标准型"这一章,确实是整门课里最能看到"数学思想"的地方——它教你用等价关系看问题,而不是死盯一个对象的表面长相。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询