ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Jordan标准形核心:用秩序列锁定Jordan块的阶数与个数

Jordan标准形核心:用秩序列锁定Jordan块的阶数与个数 Jordan标准形这四个字大概是很多人学高等代数或者矩阵论时最头疼的一关。特征值能求特征多项式能写可一到写出该矩阵的Jordan标准形就卡住——卡点几乎从来不在于特征值本身而在于说不清每个特征值究竟对应几个Jordan块、每个块又是几阶的。这两个量块个数和块阶数才是Jordan标准形真正的信息量所在也是考试和应用里最容易翻车的地方。我第一次接触Jordan标准形的时候就在这道坎上摔过特征值明明算对了块也大体排出来了但阶数分布搞错一道大题直接掉一半分。后来把规律彻底摸透才发现确定Jordan块的阶数和个数其实有一套非常机械的流程只要抓住秩序列这一个核心工具几乎不会出错。下面我把这套方法和踩过的坑完整写出来从概念澄清到公式推导再到具体算例尽量让刚学线代的小白也能跟着走一遍。全文围绕Jordan标准形、Jordan块的阶数与个数这条主线展开涉及的每个结论都会说明它为什么成立而不只是丢一个公式给你背。1. 先把阶数和个数这两个概念掰清楚1.1 会求特征值真不等于会写Jordan标准形很多人对Jordan标准形的误解是把整件事理解为求出特征值把它们摆到对角线上。这只完成了对角线部分也就是特征值本身的分布而Jordan标准形真正区别于对角矩阵的地方恰恰是那些对角线右上方的1。这些1的位置和数量完全由每个特征值对应的Jordan块结构决定。比如一个4阶矩阵特征值是2、2、2、2它可能是四个1阶块拼成的对角阵也可能是一个3阶块加一个1阶块还可能是两个2阶块甚至是一个4阶块。这四种情况对应的矩阵形态天差地别但它们有完全相同的特征多项式。只靠特征多项式你根本区分不出它们。所以做题和实际计算时正确的思路是分两步第一步求出所有特征值及其代数重数第二步对每个特征值单独确定它对应的Jordan块有几个、各自几阶。代数重数只告诉你这个特征值一共占了几个格子而格子的划分方式需要额外的信息才能定下来。这个额外信息就是几何重数以及更高阶的核空间维数。1.2 块个数由几何重数决定块阶数要看更高阶的核先给一个几乎人人都记得的结论某个特征值对应的Jordan块个数等于它的几何重数也就是线性无关特征向量的个数等价于 n 减去 rank(A − λI)。这个结论非常常用但它只解决了块有几个完全没告诉你每个块几阶。比如几何重数是2可能是22也可能是31两者的块个数一样但结构完全不同。要区分这两种情况就必须往更深一层看。直觉是这样的一个2阶Jordan块在(A−λI)的作用下会把两个向量压到一个而一个3阶块会把三个向量压成一个。块越长它的压缩能力越强而压缩能力强弱恰好能被不同次幂的核空间维数记录下来。这就是为什么确定Jordan块阶数本质上是在研究矩阵 (A−λI)、 (A−λI)²、 (A−λI)³…… 这一串矩阵的核空间或者秩的变化。核空间每多膨胀一点就说明有一批更长的块存在。把这个膨胀过程量化就是下一节要讲的秩序列方法。我在学习阶段一直有个误区觉得几何重数知道就够了结果遇到几何重数相同、代数重数也相同但结构不同的题目时完全没辙。后来明白几何重数只揭开了第一层帷幕后面还有好几层得一层层用幂次去掀。2. 核心武器用秩序列精确锁定块的阶数和个数2.1 秩序列公式为什么是 r(k-1) − r(k)先把符号定好。设 λ 是矩阵 A 的一个特征值令 N A − λI。定义 r(k) rank(Nᵏ)约定 r(0) nn是矩阵阶数。那么有一个非常漂亮的结论阶数大于等于 k 的Jordan块个数等于 r(k−1) − r(k)。也就是说pk r(k−1) − r(k) 这个数就是长度至少为k的块有多少个。由此立刻能得到阶数恰好等于 k 的块个数 bk pk − p(k1) r(k−1) − 2r(k) r(k1)。我先说这个公式怎么来的因为理解了来源你才敢放心用。关键在一个幂零Jordan块的行为一个d阶的幂零块 Jd它的k次幂 Jdᵏ 的秩是 max(d − k, 0)也就是每乘一次幂秩掉1掉到0为止。那么一个特征值λ对应的所有Jordan块它们各个幂次的秩之和就是 r(k)。计算 r(k−1) − r(k) 时每个块贡献的就是它还能不能撑住第k层一个d阶块当 d ≥ k 时它在 r(k−1) − r(k) 里贡献1当 d k 时贡献0。累加起来正好就是长度至少为k的块数。这个推导干净利落没有一点凑的成分。举个最直观的检验固定k1长度至少为1的块就是所有块数量等于 r(0) − r(1) n − rank(A − λI)这正是几何重数。你看我们熟悉的几何重数原来只是这个公式在k1时的特例。整个体系是自洽的。2.2 阶数与个数的换算表把上面的公式整理成一张表做题时可以直接对着套。设某个特征值λn是矩阵阶数r(k) rank((A−λI)ᵏ)。量用秩表达的公式含义代数重数 m特征多项式里( x − λ )的指数λ一共占几个格几何重数块个数r(0) − r(1)λ对应几个Jordan块长度≥2的块数r(1) − r(2)阶数至少为2的块有几个长度≥3的块数r(2) − r(3)阶数至少为3的块有几个恰好k阶的块数 bkr(k−1) − 2r(k) r(k1)阶数正好为k的块有几个最大块阶数最小的k使r(k−1)r(k)λ对应最长块有多长用这张表时有个小提醒当 r(k) 已经降到不再变化通常降到其他特征值的贡献所构成的常数时后面的差值就是0对应不再有更长的块。所以实际操作时你只需要一路算到秩不再下降为止剩下的都是0不必无限往下算。2.3 一个必须澄清的疑问为什么不用先分离广义特征子空间很多人看到 r(k) rank((A−λI)ᵏ) 会有一个疑惑A−λI 作用在整个空间上别的特征值不也混进来了吗答案是不用担心因为这些别的特征值的贡献在做差的时候会被自动消掉。原因是这样的对整个空间做广义特征子空间分解后(A−λI) 在λ自己的子空间上是幂零的秩会随幂次一直掉到0而在其它特征值μ对应的子空间上是可逆的因为μ−λ≠0它的秩是一个不随k变化的常数。所以在 r(k−1) − r(k) 里那个常数被减掉了剩下的恰好只反映λ自己的块结构。这也是为什么我们可以放心地直接对 A−λI 求秩不必多此一举先做投影。这个点我是吃过亏的。当年一度以为必须先把矩阵限制到广义特征子空间上再算秩多做了好多无用功还经常算错。后来意识到差值天然免疫其它特征值效率一下子上来了。理解这一点你就真正掌握方法的适用边界了。3. 手把手实操三个算例把流程走一遍3.1 例一4阶矩阵一个2阶块加两个1阶块先看一个元素简单、但结构不平凡的例子。设A [ 3 -1 0 0 ] [ 1 1 0 0 ] [ 0 0 2 0 ] [ 0 0 0 2 ]第一步求特征值。A是上三角分块结构特征是2。可验证特征多项式为 (x − 2)⁴所以λ2的代数重数 m 4。第二步算秩序列。令 N A − 2IN [ 1 -1 0 0 ] [ 1 -1 0 0 ] [ 0 0 0 0 ] [ 0 0 0 0 ]明显第一行和第二行相同秩为1所以 r(1) 1。再算 N²由于 N 的两行都是 (1, −1, 0, 0) 的倍数相乘后 N² 0于是 r(2) 0往后全为0。约定 r(0) 4。第三步套公式块个数 r(0) − r(1) 4 − 1 3长度≥2的块数 r(1) − r(2) 1 − 0 1长度≥3的块数 r(2) − r(3) 0。所以恰好1阶的块有 3 − 1 2 个恰好2阶的块有 1 个。λ2对应的结构是一个2阶块 两个1阶块Jordan标准形为 J₂(2) ⊕ [2] ⊕ [2]展开写成J [ 2 1 0 0 ] [ 0 2 0 0 ] [ 0 0 2 0 ] [ 0 0 0 2 ]这里要强调一个坑如果只算几何重数得3你会知道有三个块但完全不知道是112还是13还是别的。正是 r(1) − r(2) 1 这个数才把那个隐藏的2阶块揪了出来。3.2 例二6阶幂零矩阵两个3阶块再看一个能体现多层秩的例子。设N [ 0 1 0 0 0 0 ] [ 0 0 1 0 0 0 ] [ 0 0 0 0 0 0 ] [ 0 0 0 0 1 0 ] [ 0 0 0 0 0 1 ] [ 0 0 0 0 0 0 ]这个矩阵本身是幂零的唯一特征值是λ0代数重数 m 6。取 A N则 A − 0·I 就是 N 自己。约定 r(0) 6。算秩N 的非零行是第1行和第4行秩 r(1) 4。N² 的非零行只有第1行和第4行各留一个非零元秩 r(2) 2。N³ 直接是零矩阵r(3) 0。套公式块个数 r(0) − r(1) 6 − 4 2长度≥2的块数 r(1) − r(2) 4 − 2 2长度≥3的块数 r(2) − r(3) 2 − 0 2长度≥4的块数 r(3) − r(4) 0。于是恰好1阶块 2 − 2 0恰好2阶块 2 − 2 0恰好3阶块 2 − 0 2。结论是两个3阶块6 3 3Jordan标准形就是两个 J₃(0) 拼起来。校验一下阶数和3 3 6等于代数重数对上了。这一步校验非常重要我后面还会专门讲。这个例子的价值在于它逼着你看 r(2) 这一层。只看到 r(0) 和 r(1)你只知道有两个块压根不知道它们是33还是222后者块数应是3矛盾还是别的。答案藏在第二层、第三层的秩里。3.3 例三两个不同特征值分而治之实际题目里经常出现多个不同特征值这时候诀窍是一个特征值一套计算互不干扰。设A [ 1 1 0 ] [ 0 1 0 ] [ 0 0 2 ]特征值是1代数重数2和2代数重数1。先处理λ1。A − I 为[ 0 1 0 ] [ 0 0 0 ] [ 0 0 1 ]第1行和第3行非零且线性无关秩 r(1) 2于是块个数 r(0) − r(1) 3 − 2 1。只有一个块占2个格所以是2阶块 J₂(1)。再处理λ2。A − 2I 为[ -1 1 0 ] [ 0 -1 0 ] [ 0 0 0 ]前两行线性无关秩 r(1) 2块个数 3 − 2 1占1个格所以是1阶块 [2]。合起来Jordan标准形是 J₂(1) ⊕ [2]J [ 1 1 0 ] [ 0 1 0 ] [ 0 0 2 ]注意在算λ1时那个由λ2贡献的部分第三行的1或0完全不影响差值 r(0) − r(1) 的结果这正是2.3节讲过的无关特征值贡献自动抵消的具体体现。你会发现每个特征值各算各的非常省心。3.4 高频场景秩到底怎么算得快实操里最耗时的是算 (A−λI)ᵏ 的秩。我总结了几个提速技巧。第一先算 A−λI 并用初等行变换化到行阶梯形得到 r(1)这个阶梯形本身也是判断几何重数的基础。第二算更高次幂时别盲目硬乘先观察矩阵结构如果它是块上三角、稀疏或者某几行明显成比例可以先把无用的行剔除减少乘法规模。第三利用秩是单调不增的这一点算到某一步秩不再下降就可以停手后面的块长度已经定格。第四牢记每个特征值分开算别把不同特征值的贡献混在一起否则 r(k) 里会残留一个常数越算越乱。还有个经验练习时可以把算完的块阶数和代数重数做个求和校验阶数之和必须等于代数重数块个数必须等于几何重数。这两个校验一旦有一个不满足中间一定算错了立刻回头查比全做完再发现错误省时得多。4. 常见错误与排查清单4.1 高频错误速查表Jordan块结构这道题错误其实高度集中我整理了一张速查表做题卡壳时对着看。现象可能原因排查办法块个数算错把代数重数当成了块个数块个数必须用几何重数 n − r(1)阶数分布错了只看了一层秩继续算 r(2) 及更高层阶数之和≠代数重数中间秩算错或特征值归属混了重新逐个特征值单独计算并求和校验把别的特征值算进了当前块没有分子空间、一起做差每个λ单独用 A−λI 算靠差值消常数最大块阶数顶了天没找到秩停止下降的位置最大块阶数最小 k 使 r(k−1)r(k)以为能对角化却是非对角几何重数代数重数检查每个λ的 n − r(1) 是否等于其代数重数这张表里的最后一条特别容易被忽视。很多人一看特征值都是单根或者几何重数恰好等于代数重数就断定可以对角化结果遇到重根就放松警惕。判断能不能对角化唯一的硬标准是对每个特征值块个数是否等于代数重数只要有一个特征值不满足矩阵就不可对角化必然存在Jordan块。4.2 三个我常用的校验技巧除了求和校验我还有三个习惯用的检查动作能挡下绝大多数错误。第一个是秩序列单调递减检查。r(0) ≥ r(1) ≥ r(2) ≥ …并且差值 p(k) r(k−1) − r(k) 是单调不增的长度≥k的块数越长越少。如果算出来的 p(k) 出现了增大的情况肯定是某个秩算错了。这个规律来自结构本身能撑到第k层的块必然是能撑到第k−1层的块的子集。第二个是最小多项式检查。最小多项式里 (x − λ) 的指数应该等于λ对应最大Jordan块的阶数。你可以单独求一次最小多项式和秩序列推出的最大块阶数对比两者一致才放心。这个技巧特别好用因为它提供了一条完全独立的验证路径。第三个是特征向量个数检查。几何重数就是线性无关特征向量的个数它一定等于块个数也一定不大于代数重数。如果两个特征值对应的几何重数加起来超过矩阵阶数说明计算出了大问题。这三个校验我基本每次都会做其中的一到两个尤其是求和校验几乎零成本却能立刻暴露阶数分布的错误。5. 和最小多项式、对角化的联系进阶理解5.1 最小多项式怎么读出最大块阶数前面提到最小多项式可以当校验工具这里展开说清楚它和Jordan块的关系。一个特征值λ在最小多项式里的指数恰好等于该λ对应最大Jordan块的阶数。也就是说如果你知道最大块是3阶那么最小多项式里就有因子 (x − λ)³。反过来最大块阶数也等于最小的k使 r(k−1) r(k)两条路殊途同归。为什么会有这个对应回忆最小多项式的定义它是让 p(A) 0 的次数最低的首一多项式。而对单个Jordan块 Jd(λ) 来说让 (Jd(λ) − λI)ᵏ 0 成立的最小k正是d。所以消掉所有λ对应的块需要的幂次就是最大块阶数。这个联系非常本质理解了它你对Jordan标准形和最小多项式就不再是两套割裂的知识而是同一结构的两面。我在复习时特别喜欢用这一点先算秩序列得块结构再用最小多项式复核两条路交叉验证几乎不可能翻车。5.2 什么时候矩阵能对角化把所有结论收拢对角化条件就一目了然了。矩阵可对角化等价于它所有Jordan块都是1阶的等价于对每个特征值块个数等于代数重数也等价于 r(0) − r(1) m 对每个λ成立还等价于最小多项式没有重根。这几个说法是等价的你可以挑最好算的那个来用。判断时最顺手的还是几何重数和代数重数的比较对每个特征值算 n − r(1)看它是否恰好等于该特征值的代数重数。全部相等就对角化有一个不等就不可对角化。之所以强调全部是因为只要有一个特征值卡住整个矩阵就不可对角化哪怕其它特征值都很乖巧。这一点在实际做题中被反复考很多人只检查了一个特征值就下结论结果漏判。顺带说一个延伸的应用场景。在理论和工程里Jordan标准形常用来判断矩阵的稳定性、分析线性微分方程组解的结构、研究矩阵幂的渐近行为。当矩阵不可对角化时解里会出现形如 t 乘指数项的成分这类项的来源正是Jordan块中的那个非对角1。所以搞清块的阶数和个数不只是做题技巧它直接决定了动力系统解里会不会出现振幅随时间多项式增长的项这个影响是很实在的。最后分享一个我个人的小习惯每次确定完Jordan块结构我都会在心里默念一遍块个数几何重数阶数和代数重数最长块最小多项式指数三个自检做完基本就稳了。这套流程用了这么多年从应付考试到后面做一些小规模矩阵分析几乎没再出过结构性错误。真正把秩序列这一层看透之后Jordan标准形对你就从一个背公式的题目变成了一个有章可循、机械可查的流程剩下的只是耐心算秩而已。
返回列表