行列式降阶计算:子式、余子式与代数余子式

发布时间:2026/10/1 19:37:14

行列式降阶计算:子式、余子式与代数余子式 对线性代数有点感觉的人大多是在行列式这一章第一次被“劝退”的。三阶还行硬算也能算出来一上四阶数字一多展开就成了一团乱麻。而在这一章里有两个名字听上去特别像的概念会把大部分人绕晕子式和余子式紧接着还有第三个更拗口的——代数余子式。我在写线性代数学习整理的系列笔记时第十一篇专门留给它们是因为这三个东西是能否真正理解行列式展开、矩阵求逆、甚至后面向量组线性相关性的分水岭。说白了子式是“从大矩阵里挑一小块”余子式是“把某一行某一列挖掉后剩下的那块”代数余子式则是在余子式的基础上加了个正负号。它们解决的问题很具体把一个高阶行列式的计算拆成一串低阶行列式的和。这篇文章适合谁看如果你正在自学线代、准备考研、或者过一遍大学课程复习对行列式只会硬算但不知道它为什么能“降维”计算那接下来这些内容会帮你把这块逻辑彻底打通。1. 先搞清楚子式与余子式到底在解决什么问题1.1 从行列式计算的痛点说起要理解子式和余子式为什么存在得先回到行列式本身。二阶行列式大家都会算主对角线乘积减副对角线乘积两步搞定。三阶用对角线法则也能勉强应付六项一加一减手快的话问题不大。但从四阶开始一切就变了。四阶行列式按定义展开有 24 项五阶是 120 项六阶是 720 项。项数按阶乘增长这个增长速度有多恐怖四阶还能算五阶就已经开始容易出错六阶以上靠人力按定义展开基本等于自找麻烦。我最早学的时候就是不服气四阶硬是按定义一项一项展开了。算出来确实对但过程整整写了一页纸中间符号错了一次导致最后答案差了正负号。后来才明白数学家不会用定义去算高阶行列式真正扛起计算量的是按行或按列展开的降阶方法。而降阶能实现的核心就建立在余子式和代数余子式上。这套思路的价值在于把一个 n 阶行列式转化成 n 个 n-1 阶行列式的组合再继续拆下去直到拆成熟悉的二阶、三阶为止。这样每一步的计算规模都控制在我们能驾驭的范围里出错率大幅下降。所以子式、余子式绝不是定义游戏它们是行列式降阶计算的“零件”。你后面学克拉默法则解线性方程组、用伴随矩阵求逆矩阵本质上都在反复调用代数余子式。1.2 一句话区分子式和余子式很多人搞混是因为这两个概念就差一个字而且定义里都涉及“去掉某些行列”。我习惯用两个生活类比来记子式就像从一副扑克里任抽几张牌只要你抽出来的是排成方阵的行数和列数相同这几张牌构成的那个小行列式就是一个子式。行和列可以是任意的、不相邻的、任意挑选的。余子式就像从一整块蛋糕里挖掉特定的一整行和一整列剩下那块完整的部分。这个“挖法”是固定的只挖一行、一列剩下的就是余子式。具体到定义上子式在一个 m 行 n 列的矩阵中任取 k 行和 k 列由这些行列交点上的元素按原来的相对位置组成的 k 阶行列式就叫做这个矩阵的一个 k 阶子式。关键是“任取”行可以不连续列也可以不连续自由度很高。矩阵里一共能选出多少个 k 阶子式组合数 C(m,k) 乘以 C(n,k)。一个 3×4 的矩阵里二阶子式就有 C(3,2)×C(4,2)3×618 个。余子式针对某个元素来说的。在 n 阶行列式中把元素 a_ij 所在的第 i 行和第 j 列整个划掉剩下的 n-1 阶行列式就是这个元素的余子式通常记作 M_ij。注意余子式一定是相对某个特定元素定义的脱离元素谈余子式没有意义。两者的区别一句话概括子式是“任意挑”余子式是“专门挖掉一行一列后剩下的”而且余子式一定是 n-1 阶的对于 n 阶行列式而言。提示余子式 M_ij 是一个行列式是一个数它没有正负号的额外处理就是剩下的那个 n-1 阶行列式的值。别一上来就把它跟代数余子式混为一谈。1.3 代数余子式多出来的那个符号如果止步于余子式展开定理还写不干净因为按不同位置展开时符号是交替的。于是引入代数余子式A_ij (-1)^(ij) × M_ij。也就是说代数余子式就是给余子式乘上一个由位置决定的正负号。这个 (-1)^(ij) 看起来突兀其实很有规律。你可以把符号按位置写成一个棋盘位置ij符号(1,1)2(1,2)3-(1,3)4(2,1)3-(2,2)4(2,3)5-(3,1)4(3,2)5-(3,3)6排出来就是左上角为“”然后像国际象棋棋盘一样正负交替。我记这个符号的方法是看行列下标之和的奇偶性奇数为负偶数为正。就这么简单不用去背什么“正负相间”。记住这一个规则任意位置的代数余子式符号都能当场推出来比死记硬背那个棋盘靠谱得多。到这里三个概念的关系就清楚了子式最宽泛余子式是子式里的一种特殊情况挖掉固定的一行一列代数余子式是在余子式上加符号。展开定理用的正是代数余子式而不是余子式这一点千万别在考试或推导里写错。2. 按行按列展开的核心机制拆解2.1 拉普拉斯展开定理在做什么有了代数余子式就能写出那个著名的展开公式。行列式 D 等于它任意一行的每个元素分别乘以自己的代数余子式然后全部加起来D a_i1·A_i1 a_i2·A_i2 ... a_in·A_in按列展开同理任选一列也能得到同样的结果。这个定理之所以强大在于两点一是“任意”二字意味着你可以挑含有最多零的那一行或那一列来展开把计算量压到最低二是它给出了递归降阶的合法路径n 阶拆成 n 个 n-1 阶一路拆到能直接算的阶数。第一次看到这个公式时我有个疑问为什么可以按任意一行展开结果都一样我的理解是这样的行列式本身是多重线性反对称函数代数余子式正好是这个函数对各元素的“偏系数”而所有的“交叉项”因为反对称性相互抵消了剩下的只有主项。这个解释不算严谨证明但能帮直觉建立起来。真正的严格证明一般用归纳法教材里都有这里不展开。展开定理最实用的副产品是如果某一行或某一列有大量零展开就极其轻松。因为零元素乘以它的代数余子式直接是零不用算。比如某行只有一个非零元素那行列式就等于这个元素乘它的代数余子式一步就降到了 n-1 阶。这就是为什么做行列式题时第一步永远是“制造零”。2.2 为什么“制造零”是首选策略我踩过最大的坑就是在展开之前不先化简对着原始的、密密麻麻的行列式直接展开结果每个代数余子式里都是大数算到怀疑人生。正确做法是先用初等行列变换把某一行或某一列化成只剩一个非零元素再按那行列展开。制造零用到的性质主要是把某一行的 k 倍加到另一行行列式的值不变。注意这里不会改变行列式的值所以随便用非常安全不像“交换两行要变号”“某行乘系数要提出去”那样容易忘。具体操作时我会挑一个“基准元素”通常选绝对值是 1 或者比较好约掉的数然后拿它去把同列其他元素都消成零。举个紧凑的例子。假设有个三阶行列式D | 2 1 3 | | 4 2 8 | | 6 3 9 |第一列有 2、4、6看着能约。用第二行减第一行的 2 倍第三行减第一行的 3 倍第一行保持 2 1 3第二行变成 0 0 2第三行变成 0 0 0。这时第二行和第三行都是零行行列式直接等于 0。你看根本不用展开三步变换就出结果。如果一上来硬展开光代数余子式就算半天还未必发现答案是 0。这个例子说明一个经验先观察行列式的结构两行成比例、存在明显线性关系、某列能线性组合出来这些都要在动手前扫一眼。制造零不是盲目做而是有目的地朝着“某行只剩一个非零元素”去努力。2.3 符号与下标的一致性怎么保证计算过程中最常见、也最冤的错误是符号搞错。元素本身没错行列式也没错就是哪个 (-1)^(ij) 写反了最后差一个负号。这个问题在四阶以上尤其突出因为要连续算好几个代数余子式符号一旦在某一步错后面全错。我的应对方法是分两步走。第一步先不看符号只算各个余子式 M_ij 的数值把正负号的处理留到第二步统一做第二步在草稿纸上把要用的位置符号用一个简单的表格列出来比如要按第一行展开四阶就把 (1,1)(1,2)(1,3)(1,4) 四个位置的符号依次写出 - -。这样定下来之后再去乘就不会中途混乱。还有一个稳妥的做法是优先选择首行或首列展开。因为首行首列的符号永远是 、-、、-、 这样交替的规律最明显闭着眼睛都能写对。如果为了凑零不得不按中间某行展开那就要特别小心。我通常会写一句备注在旁边“本行符号- - ”强制自己核对一遍。这个小习惯帮我省下过至少好几次因符号错而重算的时间。注意余子式 M_ij 和代数余子式 A_ij 绝不能混用。展开定理用的是代数余子式 A_ij。写推导时如果把 A 写成 M整个式子就错了。3. 手把手实操从三阶到四阶的完整展开3.1 三阶按行展开的完整过程光看定义容易飘动手算一遍才扎实。我用一个三阶行列式把按行展开走完整流程D | 1 2 3 | | 4 5 6 | | 7 8 10 |先看有没有容易制造零的机会。第一行 1、2、3 里面有个 1太好了1 是最理想的消元基准。用第二行减第一行的 4 倍第三行减第一行的 7 倍第二行4-4×105-4×2-36-4×3-6得到 (0, -3, -6) 第三行7-7×108-7×2-610-7×3-11得到 (0, -6, -11)现在行列式变成D | 1 2 3 | | 0 -3 -6 | | 0 -6 -11 |第一列只剩第一行的 1 非零直接按第一列展开最省事。按第一列展开时只有 a_111 这一项存活其余元素都是零。所以 D 1 × A_11 1 × (-1)^(11) × M_11 M_11。M_11 是把第一行第一列划掉后的二阶行列式| -3 -6 ; -6 -11 |。算一下(-3)×(-11) - (-6)×(-6) 33 - 36 -3。所以 D -3。为了验证我再用对角线法则硬算一遍原式1×5×10 2×6×7 3×4×8 - 3×5×7 - 1×6×8 - 2×4×10。前一部分50 84 96 230后一部分105 48 80 233。230 - 233 -3。结果一致。这一步验证很重要它说明降阶展开和定义展开是等价的——定理没写错我们也没算错。养成“抽验一次”的习惯尤其在学新方法时能帮你建立信任感。3.2 四阶行列式的降阶拆解三阶只是热身四阶才是余子式真正发光的地方。看这个四阶D | 2 1 0 3 | | 1 0 2 1 | | 3 2 1 0 | | 0 1 2 4 |这题如果直接按定义展开24 项够呛。第一步还是找机会制造零。观察第一列2、1、3、0其中有个 1 在第二行适合当基准。但如果按第一列展开更好的是让第一列只有一个非零数。我们换个思路用第一行第三列的 0 帮不了太多忙不如直接挑一个含零较多的行或列。看第二行1、0、2、1有个 0不错。看第一列也有个 0。我先尝试用列变换制造零。把第一列作为目标列基准用第二行的 1。用第一行减第二行的 2 倍第一行变成 (2-2, 1-0, 0-4, 3-2) (0, 1, -4, 1)。用第三行减第二行的 3 倍(3-3, 2-0, 1-6, 0-3) (0, 2, -5, -3)。第四行不变 (0, 1, 2, 4)。第二行保持 (1, 0, 2, 1)。现在行列式变成D | 0 1 -4 1 | | 1 0 2 1 | | 0 2 -5 -3 | | 0 1 2 4 |按第一列展开只有 a_211 存活它在第 2 行第 1 列符号是 (-1)^(21) -1。所以 D a_21 × A_21 1 × (-1) × M_21 -M_21。M_21 是把第二行和第一列划掉后剩下的三阶行列式由剩余的行1、3、4 行和列2、3、4 列组成M_21 | 1 -4 1 | | 2 -5 -3 | | 1 2 4 |现在算这个三阶。继续制造零第一行只有 1、-4、1用第一行的 1 当基准。第二行减第一行 2 倍(2-2, -58, -3-2) (0, 3, -5)。第三行减第一行(1-1, 24, 4-1) (0, 6, 3)。第一行不动。M_21 | 1 -4 1 | | 0 3 -5 | | 0 6 3 |按第一列展开只剩 a_111符号 (-1)^(11)1。M_21 1 × | 3 -5 ; 6 3 | 3×3 - (-5)×6 9 30 39。所以 D -M_21 -39。整个流程回顾一下四阶 → 三阶 → 二阶每层都先制造零再展开把计算量压到最小。如果不用余子式这题 24 项手算几乎不可能在考场上稳稳做对。而用降阶法实际动笔计算的三阶只有一个二阶也只有一个其余全是加减消元效率天差地别。3.3 参数选择上的几个经验做完上面这题有几个操作上的细节值得单独拎出来这些是标准教材通常不会细讲但实操中特别影响效率的第一优先选绝对值小、含 1 或 -1 的元素当消元基准。因为消元时要做整数倍加减基准越简单过程中分数和小数的风险越低。整数运算比分数运算出错率低得多而且便于心算核对。第二行列都扫一遍再决定往哪个方向制造零。有时行方向的零多有时列方向更省事。我习惯把每一行、每一列含零的个数数一遍选零最多的那行列作为“最终展开的行列”然后朝着这行制造零。但有例外如果某行已经有三个零那直接展开就行不用制造了。第三展开行和消元行可以不同。你完全可以按第 i 行展开但用第 j 行的元素去消零只要记得消完零后按哪行展开就行。刚开始我总以为“展开哪行就动哪行”其实是误解消元和展开是两件独立的事。第四每一步都在草稿上写明当前变换比如“r2 - 4r1”这样回头检查时能快速定位是哪一步引入了错误。我因为没写这一步说明曾经复查时完全想不起来某个数字是怎么来的只能从头重做白白浪费二十分钟。4. 常见问题排查与避坑实录4.1 符号、下标、展开方向三类高频错误我把自己和身边同学踩过的坑整理成一张速查表这些错误看着低级但在紧张考试或长计算链里出现的频率极高错误类型典型表现排查方法符号错误结果差一个正负号其他都对单独核对 (-1)^(ij)用棋盘规律验证下标记错M_ij 挖错行或挖错列明确“挖第 i 行、第 j 列”画线确认概念混淆展开式里把 A 写成 M检查是否带了 (-1)^(ij) 因子展开方向错按行算却用了列的余子式展开项必须来自同一行列漏项展开和少了一项数项数n 阶按某行展开应有 n 项符号错误里头最隐蔽的一种是在递归展开时外层和内层的符号叠乘。比如四阶按第一列展开得到 -M_21而 M_21 内部再展开时又出现一个符号这两个符号必须分开处理、最后相乘不能图省事合并着一步到位。我的做法是每一层都显式写出符号宁可多写一行也不跳步。4.2 计算量大时的应对策略四阶、五阶手算最大的敌人不是概念是耐心和出错率。我的经验是主动降低非核心计算的比例具体有几招第一招分块处理。如果矩阵有明显分块结构比如左下角或右上角是零块可以利用分块行列式的性质直接算两个小块行列式的乘积。这比硬展开快得多。虽然严格说这属于更进阶的技巧但在实际做题时能识别出分块结构就省下一大堆代数余子式计算。第二招先做初等变换整体化简。把行列式化成上三角或下三角形式此时行列式就等于对角线上所有元素的乘积。这是最省力的方法优先于展开定理。很多题目只要耐心化三角比展开快。什么时候用三角化、什么时候用展开我的判断是如果行列式元素规律性强等差数列、成比例、有明显线性关系优先三角化如果元素杂乱但某行某列零多优先展开。第三招换行换列凑零的取舍。如果为了凑零要做大量分数运算那还不如直接展开。判断标准是一个代数余子式的计算时间和一次消元序列的时间哪个更短。没有绝对答案靠多练形成直觉。第四招用数值方法辅助验证。手算完之后如果条件允许可以用 MATLAB、Python 的 numpy.linalg.det 对同样的矩阵求一次值对答案。学习阶段这种双向验证非常有用能快速定位到是自己算错了还是方法用错了。4.3 一个关于子式的常见误解最后纠正一个很多人对“子式”的误解。有人以为子式必须是从相邻行列里取的或者必须是主对角线方向的。不对。子式的行列可以任意挑选只要行列数相同、保序排列即可。甚至对非方阵也能定义子式比如 3×4 矩阵可以取二阶、三阶子式只要行列数相等。这个“任意性”在后面讲矩阵的秩时会变得极其重要——秩的定义就是“矩阵中非零子式的最高阶数”。如果这里把子式理解成只能取固定位置那秩的定义就完全理解不了。反过来余子式是“固定挖法”——必须挖掉某一整行某一整列且只挖一次剩下的阶数必然是 n-1。它没有子式那种任意性。所以千万别把“任意取子式”和“挖一行一列得到余子式”混为一谈。这也是为什么秩的定义用的是子式而不是余子式秩需要遍历各种位置的子式找阶数最高的那个非零子式余子式的挖法太单一覆盖不了这种需求。我在这一节最后再强调一遍实操中的一个心得把子式、余子式、代数余子式三者的定义并排写在一起对比记忆比单独背效果好得多。我当时就是画了个三列表格左边写定义中间写例子右边写各自的用途反复看几遍就彻底分清了。这三个概念一旦理清行列式展开、伴随矩阵、秩的判定这几块内容会串成一条线后面学起来顺畅很多。
延伸阅读

更多相关文章

2026/10/1 19:37:14

CODESYS Win V3/RTE 忘记密码恢复:用户管理与配置重置

1. 先把两种仿真设备环境认清:Win V3 和 RTE 各自管什么1.1 CODESYS Control Win V3:最像真实PLC的Windows软仿真CODESYS Control Win V3 是很多人做仿真调试时最先接触的环境。它把一台Windows电脑变成软PLC运行载体,装上之后会在系统服务里…

2026/10/1 19:37:14

UALink技术解析:PCIe生态的外科手术式升级

1. 这不是一场普通的技术分享,而是一条从标准制定到产业落地的完整技术链路UALink、ODCC、云栖大会、服务器测试——这几个词单独拎出来,你可能觉得是零散的技术名词。但把它们串在一起,背后是一条清晰可见的中国数据中心基础设施技术演进主线…

2026/10/1 19:37:14

AI Agent落地全指南:从概念厘清到架构设计与并发实践

前几天康奈尔那篇关于AI Agent的论文又被转到了各个技术群里,评论区吵得不可开交。有人说是给Agent正名了,有人说这不过是个概念梳理,还有人直接甩出一句"看完更不知道怎么落地了"。我完整读完之后,第一反应倒不是论文本…

2026/10/1 20:27:17

嵌入式Linux驱动开发实战:内核模块、设备树与调试技巧

1. 嵌入式驱动开发到底在忙什么 嵌入式驱动开发,圈内人常拿一句话自嘲:“硬件不动我动,硬件一动我更忙。”这句话听着有点绕,但干过的人都知道,驱动工程师干的活本质上是给软件和硬件之间当“翻译”,把芯片…

2026/10/1 20:22:16

Java WebSocket聊天系统课程设计:从选型到避坑全指南

简介:本资源是面向高校网络编程课程设计与Java毕业设计场景的完整项目包,围绕基于WebSocket的多人聊天系统展开,适合正在准备课程设计、需要可运行源码与配套报告的学生及自学者。项目实现了用户名密码登录、多人同时在线、在线用户实时同步、…

2026/10/1 5:21:14

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/1 17:09:46

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑