矩阵标准型全解析:从若尔当形到有理标准型的化简逻辑与应用

发布时间:2026/10/22 15:58:02
矩阵标准型全解析:从若尔当形到有理标准型的化简逻辑与应用 矩阵分析里最值得反复咀嚼的一个概念我觉得是“标准型”。很多同学一开始觉得自己在背一堆不同名字的形阶梯形、对角形、若尔当形、有理标准型背完就忘。核心问题其实是同一个一个矩阵或者说一个线性变换换个坐标系看怎么表示最省力。这篇文章我会把线性代数里各种标准型的选择逻辑、若尔当标准型的构造细节、有理标准型的思路以及做题和上手编程时容易踩的坑一起讲清楚。适合正在复习矩阵理论、准备研究生入学考试或者工作中需要做矩阵分解、微分方程求解的人。1. 标准型到底在解决什么问题先分清相抵、相似、合同1.1 同一个线性变换不同的“表情”先打个比方。同样一个人在中国用中文介绍在美国用英文介绍在德国用德文介绍。内容还是一个人但描述方式完全不一样。矩阵标准型就是这个道理同一个线性变换在一组基底下写成矩阵 A在另一组基底下可能就写成 B。这两个矩阵之间隔着一个“换坐标”的操作形式上叫作相似变换B P^{-1} A PP 是两组基之间的过渡矩阵。如果 P 选得好B 就会特别简单简单到你一眼能看出这个变换在干什么哪些方向被拉伸了哪些方向被旋转了哪些方向被“切”了一下。标准型本质上是一套约定让大家尽量把矩阵化简到同一个“最省事”的形态然后在这个形态上做分析。这就是为什么学到的第一个标准型往往是行最简形——它把解线性方程组时真正的自由变量暴露出来。而在方阵理论里最有代表性的则是对角形和若尔当形它们把线性变换的“不变方向”暴露出来。1.2 三种“标准型”别搞混先提醒一个非常常见的误区很多人在同一张卷子里把“相抵标准型”和“相似标准型”混着用。它们不是一回事。相抵标准型解决的是一个 m 行 n 列的矩阵经过左乘、右乘可逆矩阵后能化简成什么样。答案是唯一的只跟秩 r 有关长这样[ \begin{pmatrix} I_r 0 \ 0 0 \end{pmatrix} ]这里的核心不变量就是秩。两个矩阵相抵说明它们可以通过初等变换互相转化但不代表它们的特征值一样。相似标准型解决的是同一个方阵在不同基底下会有什么不同外表。允许的操作是相似变换 (P^{-1}AP)。核心不变量有很多特征多项式、最小多项式、迹、行列式、若尔当结构。相抵标准型在这里不够用因为两个方阵就算秩相同特征值也可能完全不同。合同标准型解决的是二次型或者对称矩阵的问题。允许的操作是 (P^{T}AP)核心不变量是正惯性指数和负惯性指数。这一点在实二次型化简里非常关键。下表可以快速区分对象允许操作标准型形态核心不变量一般 m×n 矩阵可逆矩阵左乘、右乘([I_r \ 0;\ 0 \ 0])秩 r方阵相似变换 (P^{-1}AP)对角形、若尔当形、有理标准型特征多项式、最小多项式、若尔当块结构实对称矩阵合同变换 (P^{T}AP)(\operatorname{diag}(1,\dots,-1,\dots,0))正负惯性指数做题时先问自己这是在讨论线性方程组的解空间还是在讨论一个方阵的迭代、指数和动力学性质问清楚之后才知道该用哪一套标准型。1.3 相似标准型的共同目标相似标准型的共同目标只有一个把矩阵化简成“分块对角”的形态让每个分块都对应一个不变子空间。能对角化就分成一维不变子空间不能对角化就用若尔当块处理带重特征值的部分再不行用有理标准型保证在任何域上都能分解。这个目标一旦想明白后面学到的所有标准型本质上是同一个思路在不同条件下的不同实现。2. 对角化失灵怎么办从广义特征向量到若尔当标准型2.1 能不能对角化只看一个关键数很多同学一看到特征值有重根就以为矩阵不能对角化。这个判断是错的。最简单的反例是单位矩阵特征值全是 1重根重到不能再重了但它已经是对角矩阵。所以判断标准不是“有没有重根”而是一个更细的数几何重数。设矩阵 A 有一个特征值 (\lambda)它的代数重数是特征多项式中 ((\lambda - x)^k) 这一项的幂次 k。几何重数是特征子空间的维数也就是 (\operatorname{dim}\ker(A-\lambda I))。如果对每个特征值都有几何重数 代数重数那么 A 可以对角化。只要有一个特征值几何重数小于代数重数标准型里就会出现若尔当块。我举个例子。矩阵[ B \begin{pmatrix} 1 1 0 \ -1 3 0 \ 0 0 3 \end{pmatrix} ]先算特征多项式[ \det(B-\lambda I)(\lambda-2)^2(\lambda-3) ]所以 (\lambda2) 的代数重数是 2(\lambda3) 的代数重数是 1。再算 (\lambda2) 的几何重数[ B-2I \begin{pmatrix} -1 1 0 \ -1 1 0 \ 0 0 1 \end{pmatrix} ]解 ((B-2I)x0)得到 (x_30)(x_1x_2)。特征子空间只有一维几何重数是 1。等于说这个特征值“名义上占了二维空间实际上只贡献了一个特征方向”矩阵自然不能对角化。2.2 用广义特征向量搭出若尔当块不能对角化我们就想办法把缺失的方向补回来。补回来的工具是广义特征向量。对于特征值 (\lambda)特征向量 v 满足 ((A-\lambda I)v0)。广义特征向量 w 可能不直接被 A 缩小零而是被 ((A-\lambda I)) 映到前面那个特征向量上[ (A-\lambda I)w v ]这样沿着 w 方向A 的作用不是纯缩放而是缩放加“剪切”。两个方向合起来在基底下就变成一个若尔当块[ \begin{pmatrix} \lambda 1 \ 0 \lambda \end{pmatrix} ]还是用刚才的 B。对 (\lambda2)我先取特征向量[ v (1,1,0)^T ]然后解[ (B-2I)w v ]展开就是[ \begin{pmatrix} -1 1 0 \ -1 1 0 \ 0 0 1 \end{pmatrix} w \begin{pmatrix} 1 \ 1 \ 0 \end{pmatrix} ]取 (w(0,1,0)^T) 即可。现在把 v 和 w 排成基底再加上特征值 3 的特征向量 (e_3(0,0,1)^T)得到[ P \begin{pmatrix} 1 0 0 \ 1 1 0 \ 0 0 1 \end{pmatrix} ]这时[ P^{-1} B P \begin{pmatrix} 2 1 0 \ 0 2 0 \ 0 0 3 \end{pmatrix} ]这就是 B 的若尔当标准型。验证方法很简单直接算 (B P) 是不是等于 (P J)。这两个乘积相等说明 P 选对了不需要真的去算 (P^{-1})。更高阶的若尔当块也同理。如果要做一个大小为 3 的块就找一条链[ (A-\lambda I)u w,\quad (A-\lambda I)w v,\quad (A-\lambda I)v 0 ]然后把 (v, w, u) 按这个顺序排成基底对应块就是[ \begin{pmatrix} \lambda 1 0 \ 0 \lambda 1 \ 0 0 \lambda \end{pmatrix} ]注意填 1 的位置是上对角线不是下对角线。有些教材喜欢按下若尔当形写1 在下对角线本质上只是基底顺序反过来了没必要为此纠结。2.3 怎么快速确定若尔当块的个数和尺寸这里有个非常实用的小工具看 ((A-\lambda I)^k) 的零空间维数变化。设[ d_k \operatorname{dim}\ker((A-\lambda I)^k) ]那么 (d_1) 就是特征子空间的维数也就是 (\lambda) 的若尔当块个数。而[ d_k - d_{k-1} ]表示的是“尺寸至少为 k”的若尔当块个数。相邻差值再比较就能推出每个尺寸的块有多少个。回到刚才的 B。对 (\lambda2)(d_1 1)(d_2 2)(d_3 2)所以尺寸至少为 1 的块有 1 个尺寸至少为 2 的块有 (d_2-d_11) 个。由于 (d_3-d_20)说明没有尺寸为 3 或更大的块。结论就是(\lambda2) 对应一个 (2\times2) 若尔当块。算到这里标准型的骨架已经出来了。这个方法最大的价值是避免瞎猜广义特征向量。先知道块尺寸再决定要解多少次 ((A-\lambda I)wv)。有些题目先给你若尔当形让你反推 A 是否相似本质上也是在比较这两串维数。2.4 若尔当标准型的适用范围若尔当标准型要求特征多项式在所用数域内能完全分解成一次因子。在复数域上任何矩阵都能做到这一点所以在复线性代数课程里若尔当形是万能终点。如果在实数域上讨论特征值可能是一对共轭复数这时可以直接把矩阵复化到复数域上做若尔当分解。如果题目要求实数域上的分解可以用“实若尔当标准型”把一对共轭复特征值对应成 (2\times2) 的旋转缩放块但这不是默认形态。若尔当形在数值计算里也不稳定这一点留到第四部分专门讲。3. 不依赖特征值分解的有理标准型跨域选择的出路3.1 为什么不能假装只有复数域复数域上的若尔当形漂亮但并不是所有场景都允许你“开方号”。比如在有理数域上研究一个矩阵特征多项式可能是[ x^2 - 2 ]它在有理数域里没有根在实数域里才有 (\pm\sqrt{2})。如果这道题限定在有理数域上处理你根本取不到无理数特征值。这时候需要另一套标准型——有理标准型。它最大的优点是不要求特征多项式分裂成一次因子也不需要可选择地扩充数域。只要矩阵的元素落在某个域里有理标准型就存在而且唯一。有理标准型的构成单元是“友矩阵”。一个首一多项式[ p(x)x^ka_{k-1}x^{k-1}\cdotsa_1xa_0 ]对应的友矩阵是[ C \begin{pmatrix} 0 0 \cdots 0 -a_0 \ 1 0 \cdots 0 -a_1 \ 0 1 \cdots 0 -a_2 \ \vdots \vdots \ddots \vdots \vdots \ 0 0 \cdots 1 -a_{k-1} \end{pmatrix} ]这个矩阵的特征多项式恰好就是 (p(x))。所以把矩阵拆成若干友矩阵的分块对角就是有理标准型。直觉上每个友矩阵对应一个“由单个向量反复迭代生成”的循环不变子空间因此有理标准型也叫循环分解标准型。3.2 Smith标准型与不变因子想要具体求出有理标准型绕不开一个工具Smith标准型。对矩阵 A研究多项式矩阵[ xI - A ]它的元素都是关于 x 的多项式。允许做的初等变换有三种交换两行或两列某一行或某一列乘一个非零常数某一行加上另一个行的任意多项式倍。通过这些变换可以把它化简成对角形[ \operatorname{diag}(d_1(x), d_2(x), \dots, d_n(x)) ]其中每个 (d_i(x)) 都是首一多项式并且满足[ d_1(x) \mid d_2(x) \mid \cdots \mid d_n(x) ]这串多项式就是不变因子。它们三个最重要的性质是特征多项式等于所有不变因子的乘积。最后一个不变因子 (d_n(x)) 就是最小多项式。不变因子在允许的初等变换下完全不变所以它们是相似不变量。举个例子如果[ A \begin{pmatrix} 1 0 \ 0 3 \end{pmatrix} ]那么[ xI-A \begin{pmatrix} x-1 0 \ 0 x-3 \end{pmatrix} ]行列式因子算一下两个元素的公因式是 1所以 Smith 标准型是[ \operatorname{diag}(1,\ (x-1)(x-3)) ]这一个例子足以说明即使 A 已经是对角矩阵它在有理数域上的“有理标准型”也不一定是对角形而可能是一个友矩阵。因为有理标准型要在一个不引入额外根的域里把所有循环子空间拆开。换句话说对角形依赖特征值能否在域内取到而友矩阵只要多项式的系数在域内即可。3.3 有理标准型的形态与应用求有理标准型时先把 (xI-A) 化成 Smith 标准型得到不变因子 (d_1(x),\dots,d_r(x))。然后对每个非零的不变因子写出对应的友矩阵再拼成分块对角[ C_{d_1(x)} \oplus C_{d_2(x)} \oplus \cdots \oplus C_{d_r(x)} ]这就是有理标准型。这里有一个容易让人意外的事实两个矩阵如果有相同的若尔当标准型它们一定相似但在还没考虑数域扩充的问题时若尔当形可能把本质不同的矩阵混在一起。有理标准型区分得更细因为它的不变因子不取决于你是否在某个扩域里能开根。这个性质在群论表示、密码学里的有限域矩阵、控制理论的状态空间实现中都很有用。计算机代数系统里普遍实现的是有理标准型而不是若尔当形因为在浮点运算中若尔当形非常不稳定而多项式环上的初等变换可以用精确有理数一步步做下去。4. 标准型的实际应用与踩坑实录4.1 矩阵指数、递推与控制理论里的标准型标准型不是考试专用道具。最典型的一个应用是矩阵指数 (e^{tA})。在线性常微分方程组[ \frac{dx}{dt}Ax ]里解的表达式直接是 (x(t)e^{tA}x(0))。直接算无穷级数不现实但如果先把 A 化成若尔当形问题就简单很多。若尔当块可以写为[ J \lambda I N ]其中 N 是一个幂零矩阵。对大小 2 的块(N^20)所以[ e^{tJ} e^{\lambda t} e^{tN} e^{\lambda t} \begin{pmatrix} 1 t \ 0 1 \end{pmatrix} ]对更大尺寸的块高阶位置会出现 (t^2/2!)、(t^3/3!) 等项。把这个结果通过 P 换回原坐标系就能得到完整解。类似的逻辑在差分方程里也一样解矩阵的幂 (A^n) 时用若尔当块[ J^n \lambda^n \begin{pmatrix} 1 n\lambda^{-1} \cdots \ 0 1 \cdots \end{pmatrix} ]就可以把高次幂变成有限项组合。控制理论里的能控标准型、能观标准型也和有理标准型有着直接联系——通过选择合适的状态坐标把系统方程化成友矩阵的形式这样反馈增益就变成多项式系数的直接调参。这就是标准型“影响范围”的真实体现它不只在纸面上而是直接参与系统分析和算法设计。4.2 高频疑难与常见误区速查这里把我在批改和答疑时遇到最多的问题整理成一个速查表疑问正确理解特征值有重根一定不能对角化错。要看几何重数是否等于代数重数。单位矩阵就是最好的反例。特征值全互异一定能对角化对。因为每个特征值的几何重数至少为 1又不超过代数重数 1所以一定相等。特征多项式一样矩阵就相似不够。特征多项式相同只能保证迹、行列式、特征值一样不能保证若尔当块尺寸分布一样。最小多项式一样就相似还不够。最小多项式只决定最大的若尔当块尺寸多个相同尺寸的块分布仍可能不同。算出的若尔当形对不对怎么快速验证直接验证 (APPJ)不要反过来先算 (P^{-1}AP)容易把列顺序搞反。实数矩阵能不能直接用若尔当形可以在复数域上分解但结果会含复数。如果想保持实数表示要用实若尔当标准型或有理标准型。最后一个误区值得多说一句若尔当标准型对理论证明极其好用但不适合做浮点数值计算。原因是“重特征值”在浮点世界里几乎不可能精确出现。比如一个矩阵理论上应该是 (\lambda1) 的二重若尔当块经过一点点舍入误差特征值可能变成 (1.0000001) 和 (0.9999999)于是若尔当形突然退化成一个可对角化的矩阵标准型结构完全变了。所以数值计算里更常用的是Schur分解把一个方阵正交相似成上三角矩阵对角线依次是特征值结构稳定得多。4.3 手算和写代码时的小技巧手算若尔当形时我的习惯是第一先把代数重数和几何重数列成一个表。每个特征值的几何重数就是若尔当块数量。如果几何重数等于 1那这个特征值就是一个大块尺寸等于代数重数。如果几何重数等于代数重数那这个特征值只出对角块没有剪切项。第二搭广义特征向量时从“最顶层”往回找。比如需要三阶块时先找到满足 ((A-\lambda I)^2u0) 但 ((A-\lambda I)u\neq0) 的向量再一路作用回去得到链。不要从 v 往前推因为 ((A-\lambda I)wv) 不一定有解从高一层往低层推每一步都有解的概率更高。第三列基底顺序和若尔当块顺序保持一致。一般教材约定如果块里 1 在上对角线列向量顺序是从已归零的特征向量开始一层一层往外排如果 1 在下对角线顺序反过来。自己用一套约定后统一检查 (APPJ)能省掉非常多验算时间。如果用代码辅助以 Python 的 SymPy 为例import sympy as sp B sp.Matrix([[1, 1, 0], [-1, 3, 0], [0, 0, 3]]) J, P B.jordan_form() sp.pprint(sp.simplify(P.inv() * B * P))输出结果就是若尔当形。注意jordan_form()内部用的是精确符号算法所以适合教材里的整数矩阵。如果你要做大规模数值计算不要用这个函数改用数值线性代数库里的 Schur 分解。想验证有理标准型也可以用类似方式调用rational_form()它会直接在有理数域上给出标准型。我个人的体会是每次算完标准型先拿最小多项式检查一遍。若尔当形里最大的那个块尺寸一定等于最小多项式中对应因子的次数有理标准型里最后一个不变因子就是最小多项式。这条规律只要对上了标准型基本不会算错。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询