MatrixCalc

如何计算矩阵的行列式

求行列式的四种方法——2×2 公式、萨吕斯法则、拉普拉斯代数余子式展开和高斯消元——以及各自适用的场合。

行列式是附着在方阵上的一个数。它首先回答一个问题:这个矩阵可逆吗?行列式为零意味着各行线性相关、矩阵奇异,逆矩阵不存在。从几何上看,行列式是矩阵缩放面积(2×2)或体积(3×3)的带符号倍数。

2×2 公式

对 2×2 矩阵,行列式等于主对角线之积减去副对角线之积:

ab
cd
= a·d − b·c

所以 [[1, 2], [3, 4]] 的行列式是 1·4 − 2·3 = −2。结果为负完全正常:符号表示该变换翻转了定向。

萨吕斯法则(仅限 3×3)

对 3×3 矩阵,把前两列抄到矩阵右侧,把向右下的三个乘积相加,再减去向左下的三个乘积:

123
456
7810
= (1·5·10 + 2·6·7 + 3·4·8) − (3·5·7 + 1·6·8 + 2·4·10) = 230 − 233 = −3

萨吕斯法则快且好记,但只适用于 3×3。它没有 4×4 版本——这是考试中极常见的错误。

拉普拉斯展开(代数余子式)

任选一行或一列,把行列式写成各元素与其代数余子式乘积之和。代数余子式 C(i,j) 等于 (−1)^(i+j) 乘以余子式,即删去第 i 行和第 j 列后矩阵的行列式。

代数余子式展开适用于任意阶数,而且当某一行或某一列零元素很多时,它是手算的首选:每个零都能消掉一整个余子式。不过它的开销按 n! 增长,对大矩阵毫无希望。

高斯消元

这正是计算机的做法。用初等行变换把矩阵化为上三角形,再把对角线相乘。三条规则保证记账无误:

  • 交换两行会让行列式乘以 −1。
  • 把某一行乘以 k,行列式也乘以 k
  • 把某行的倍数加到另一行,行列式不变——这才是主力操作。

开销约为 n³/3 次运算,而不是 n!,所以我们的计算器对 3×3 以上一律使用消元法。

值得记住的性质

  • det(Aᵀ) = det(A)
  • det(A·B) = det(A)·det(B)
  • det(A⁻¹) = 1 / det(A)
  • det(k·A) = kⁿ·det(A)(n×n 矩阵)——这个标量作用在全部 n 行上
  • 三角矩阵的行列式等于其对角线之积

继续阅读

想动手试试? 打开矩阵计算器 并展开分步解答面板。