想象一下,你手里拿着一把钥匙,能打开一扇门;而在线性代数这片森林里,可逆矩阵就是那把独一无二的钥匙。如果矩阵 \(A\) 可逆,就意味着我们有一个“反向操作” \(A^{-1}\),能把被 \(A\) 做的变换undo掉。
很多同学在求逆矩阵时容易晕,主要是两种方法混在一起用,或者计算步骤跳太快。今天,我们把这两种最经典的方法——伴随矩阵法和初等变换法——彻底拆解清楚。我会像带你去厨房做一道硬菜一样,一步步展示火候(计算细节),保证你看完能亲手做出来。
一、 前置知识:什么是可逆矩阵?
在动手算之前,先厘清概念。对于一个 \(n \times n\) 的方阵 \(A\),如果存在另一个 \(n \times n\) 的方阵 \(B\),使得: $\( AB = BA = I \)\( 其中 \)I\( 是单位矩阵(对角线全为1,其余为0),那么 \)A\( 就是**可逆的**(也叫非奇异矩阵),\)B\( 就是 \)A\( 的逆矩阵,记作 \)A^{-1}$。
判断是否可逆的“门票”: 矩阵 \(A\) 可逆的充要条件是它的行列式不为零,即: $\( |A| \neq 0 \)\( 如果 \)|A| = 0$,这矩阵就是“死”的,求不出逆矩阵,后面所有方法都白搭。所以,第一步永远是算行列式!
二、 方法一:伴随矩阵法 (Adjugate Matrix Method)
1. 核心公式
伴随矩阵法基于一个漂亮的公式: $\( A^{-1} = \frac{1}{|A|} A^* \)\( 这里的 \)A^*$ 叫做 伴随矩阵。
2. 什么是伴随矩阵 \(A^*\)?
这是很多同学的痛点。\(A^*\) 不是简单地把 \(A\) 转置一下就行,它由代数余子式组成。
步骤拆解:
求代数余子式 \(A_{ij}\): 划掉 \(A\) 的第 \(i\) 行和第 \(j\) 列,剩下的 \(n-1\) 阶行列式叫做余子式 \(M_{ij}\)。 代数余子式 \(A_{ij} = (-1)^{i+j} M_{ij}\)。 注意那个 \((-1)^{i+j}\),它决定了正负号,像个棋盘格一样交错。
组装 \(A^*\): 把所有代数余子式 \(A_{ij}\) 放回去,但是!要转置放置。 即 \(A^*\) 的第 \(i\) 行第 \(j\) 列元素是 \(A_{ji}\)(注意下标反了!)。 $\( A^* = \begin{pmatrix} A_{11} & A_{21} & \cdots & A_{n1} \\ A_{12} & A_{22} & \cdots & A_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ A_{1n} & A_{2n} & \cdots & A_{nn} \end{pmatrix} \)$ 记住口诀:先算代数余子式矩阵,再转置。
3. 经典例题解析
例题: 求矩阵 \(A = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 1 & 4 \\ 5 & 6 & 0 \end{pmatrix}\) 的逆矩阵。
Step 1: 计算行列式 \(|A|\)
利用第一行展开(或者沙路法): $\( |A| = 1 \cdot \begin{vmatrix} 1 & 4 \\ 6 & 0 \end{vmatrix} - 2 \cdot \begin{vmatrix} 0 & 4 \\ 5 & 0 \end{vmatrix} + 3 \cdot \begin{vmatrix} 0 & 1 \\ 5 & 6 \end{vmatrix} \)\( \)\( = 1(0 - 24) - 2(0 - 20) + 3(0 - 5) \)\( \)\( = -24 + 40 - 15 = 1 \)$
因为 \(|A| = 1 \neq 0\),所以 \(A\) 可逆。而且分母是1,计算会很清爽。
Step 2: 计算所有代数余子式 \(A_{ij}\)
我们需要计算9个代数余子式:
\(A_{11} = + \begin{vmatrix} 1 & 4 \\ 6 & 0 \end{vmatrix} = 0 - 24 = -24\)
\(A_{12} = - \begin{vmatrix} 0 & 4 \\ 5 & 0 \end{vmatrix} = -(0 - 20) = 20\)
\(A_{13} = + \begin{vmatrix} 0 & 1 \\ 5 & 6 \end{vmatrix} = 0 - 5 = -5\)
\(A_{21} = - \begin{vmatrix} 2 & 3 \\ 6 & 0 \end{vmatrix} = -(0 - 18) = 18\)
\(A_{22} = + \begin{vmatrix} 1 & 3 \\ 5 & 0 \end{vmatrix} = 0 - 15 = -15\)
\(A_{23} = - \begin{vmatrix} 1 & 2 \\ 5 & 6 \end{vmatrix} = -(6 - 10) = 4\)
\(A_{31} = + \begin{vmatrix} 2 & 3 \\ 1 & 4 \end{vmatrix} = 8 - 3 = 5\)
\(A_{32} = - \begin{vmatrix} 1 & 3 \\ 0 & 4 \end{vmatrix} = -(4 - 0) = -4\)
\(A_{33} = + \begin{vmatrix} 1 & 2 \\ 0 & 1 \end{vmatrix} = 1 - 0 = 1\)
Step 3: 写出伴随矩阵 \(A^*\)
注意转置!算出来的是 \(A_{ij}\),但放进矩阵时,\(A_{ij}\) 放在第 \(j\) 行第 \(i\) 列。
\[ A^* = \begin{pmatrix} A_{11} & A_{21} & A_{31} \\ A_{12} & A_{22} & A_{32} \\ A_{13} & A_{23} & A_{33} \end{pmatrix} = \begin{pmatrix} -24 & 18 & 5 \\ 20 & -15 & -4 \\ -5 & 4 & 1 \end{pmatrix} \]
Step 4: 代入公式求 \(A^{-1}\)
\[ A^{-1} = \frac{1}{|A|} A^* = \frac{1}{1} \begin{pmatrix} -24 & 18 & 5 \\ 20 & -15 & -4 \\ -5 & 4 & 1 \end{pmatrix} = \begin{pmatrix} -24 & 18 & 5 \\ 20 & -15 & -4 \\ -5 & 4 & 1 \end{pmatrix} \]
验算(重要习惯): 算出 \(A^{-1}\) 后,必须乘回去看看是不是单位矩阵 \(I\)。 $\( A A^{-1} = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 1 & 4 \\ 5 & 6 & 0 \end{pmatrix} \begin{pmatrix} -24 & 18 & 5 \\ 20 & -15 & -4 \\ -5 & 4 & 1 \end{pmatrix} \)\( 第一行第一列:\)1(-24) + 2(20) + 3(-5) = -24 + 40 - 15 = 1\( (对) 第一行第二列:\)1(18) + 2(-15) + 3(4) = 18 - 30 + 12 = 0\( (对) ...(中间略,建议用手算或代码验算全部9个元素) 结果确实是 \)I$,说明求对了。
三、 方法二:初等变换法 (Elementary Row Operations)
1. 核心思想
这个方法更直观,更像是在“操作”矩阵,而不是“计算”行列式。 构造一个增广矩阵 \((A | I)\),然后对整个大矩阵进行初等行变换。 当左边 \(A\) 变成单位矩阵 \(I\) 时,右边原来的 \(I\) 就变成了 \(A^{-1}\)。
原理简述:每一次行变换相当于左乘一个初等矩阵 \(E_k \dots E_2 E_1 A = I\),那么 \(A^{-1} = E_k \dots E_2 E_1\)。右边同时做变换,就是把这些 \(E\) 作用在 \(I\) 上。
2. 操作步骤
- 写出 \((A | I)\)。
- 用高斯-若尔当消元法,把左边的 \(A\) 变成上三角,再变成对角,最后变成 \(I\)。
- 右边的 \(I\) 经过同样的变换,最终结果就是 \(A^{-1}\)。
3. 经典例题解析(用同一个矩阵 \(A\))
例题: 求 \(A = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 1 & 4 \\ 5 & 6 & 0 \end{pmatrix}\) 的逆矩阵。
Step 1: 构造增广矩阵
\[ (A | I) = \left( \begin{array}{ccc|ccc} 1 & 2 & 3 & 1 & 0 & 0 \\ 0 & 1 & 4 & 0 & 1 & 0 \\ 5 & 6 & 0 & 0 & 0 & 1 \end{array} \right) \]
Step 2: 消元,把第一列下方变成0
目标:把第3行第1列的5消掉。 操作:\(R_3 - 5R_1 \rightarrow R_3\) $\( R_3: (5, 6, 0, 0, 0, 1) - 5 \times (1, 2, 3, 1, 0, 0) = (0, -4, -15, -5, 0, 1) \)$
矩阵变为: $\( \left( \begin{array}{ccc|ccc} 1 & 2 & 3 & 1 & 0 & 0 \\ 0 & 1 & 4 & 0 & 1 & 0 \\ 0 & -4 & -15 & -5 & 0 & 1 \end{array} \right) \)$
Step 3: 消元,把第二列下方变成0
目标:把第3行第2列的-4消掉。 操作:\(R_3 + 4R_2 \rightarrow R_3\) $\( R_3: (0, -4, -15, -5, 0, 1) + 4 \times (0, 1, 4, 0, 1, 0) = (0, 0, 1, -5, 4, 1) \)$
矩阵变为: $\( \left( \begin{array}{ccc|ccc} 1 & 2 & 3 & 1 & 0 & 0 \\ 0 & 1 & 4 & 0 & 1 & 0 \\ 0 & 0 & 1 & -5 & 4 & 1 \end{array} \right) \)$ 现在左边已经是上三角矩阵了,而且第3行第3列是1,很完美。
Step 4: 回代,把上方元素也消成0
先消第2行第3列的4: 操作:\(R_2 - 4R_3 \rightarrow R_2\) $\( R_2: (0, 1, 4, 0, 1, 0) - 4 \times (0, 0, 1, -5, 4, 1) = (0, 1, 0, 20, -15, -4) \)$
再消第1行第3列的3: 操作:\(R_1 - 3R_3 \rightarrow R_1\) $\( R_1: (1, 2, 3, 1, 0, 0) - 3 \times (0, 0, 1, -5, 4, 1) = (1, 2, 0, 16, -12, -3) \)$
矩阵变为: $\( \left( \begin{array}{ccc|ccc} 1 & 2 & 0 & 16 & -12 & -3 \\ 0 & 1 & 0 & 20 & -15 & -4 \\ 0 & 0 & 1 & -5 & 4 & 1 \end{array} \right) \)$
最后消第1行第2列的2: 操作:\(R_1 - 2R_2 \rightarrow R_1\) $\( R_1: (1, 2, 0, 16, -12, -3) - 2 \times (0, 1, 0, 20, -15, -4) \)\( \)\( = (1, 0, 0, 16-40, -12+30, -3+8) = (1, 0, 0, -24, 18, 5) \)$
矩阵变为: $\( \left( \begin{array}{ccc|ccc} 1 & 0 & 0 & -24 & 18 & 5 \\ 0 & 1 & 0 & 20 & -15 & -4 \\ 0 & 0 & 1 & -5 & 4 & 1 \end{array} \right) \)$
Step 5: 读取结果
左边变成了 \(I\),右边就是 \(A^{-1}\): $\( A^{-1} = \begin{pmatrix} -24 & 18 & 5 \\ 20 & -15 & -4 \\ -5 & 4 & 1 \end{pmatrix} \)$
对比: 结果和伴随矩阵法完全一致!这让我们非常放心。
四、 两种方法对比与选择建议
| 特性 | 伴随矩阵法 | 初等变换法 |
|---|---|---|
| 计算量 | 高。需要算 \(n^2\) 个 \((n-1)\) 阶行列式 | 中等。主要是行变换,适合编程实现 |
| 理论价值 | 高。揭示了逆矩阵的结构 | 实用。是数值计算的基础 |
| 适用场景 | 2阶、3阶小矩阵,或者理论证明 | 4阶及以上,或者手算大矩阵 |
| 出错点 | 代数余子式的符号 \((-1)^{i+j}\) 容易错 | 行变换算术错误,尤其是负号 |
| 验算难度 | 难。算完不知道对不对 | 易。最后左边必须是 \(I\),一眼看出 |
我的建议:
- 如果是2阶或3阶矩阵,且行列式好算,伴随矩阵法公式固定,写出来很快,不容易记错步骤。
- 如果是4阶及以上,或者矩阵元素比较复杂(比如有大量0),初等变换法更稳妥,因为你可以一边消元一边检查,最后左边是否变成单位矩阵是一个天然的自检机制。
- 在编程实现(如Python numpy, MATLAB)中,底层算法通常基于LU分解(初等变换的变种),而不是伴随矩阵,因为后者计算复杂度太高。
五、 常见陷阱与避坑指南
忘记检查行列式是否为0: 如果算到一半发现行列式为0,立刻停止!不要硬算伴随矩阵或做行变换,否则你会陷入死循环或者得到无意义的结果。比如矩阵 \(\begin{pmatrix} 1 & 2 \\ 2 & 4 \end{pmatrix}\),第二行是第一行的2倍,行列式为0,不可逆。
伴随矩阵转置遗漏: 很多学生算出代数余子式矩阵后,直接用它当逆矩阵的一部分,忘记转置。 口诀:伴随必转置,下标 \(ji\) 代 \(ij\)。
初等变换混淆行和列: 只能做行变换!不能做列变换。如果你同时对行和列做变换,右边的矩阵就不是逆矩阵了。想象一下,你只能从“外面”拉矩阵(左乘),不能从“里面”拧矩阵(右乘列变换)。
符号错误: 代数余子式里的 \((-1)^{i+j}\) 和行变换里的 \(-1\) 倍系数,这两个负号经常
