MatrixCalc

行列式计算器

计算任意 50×50 以内方阵的行列式并显示完整步骤——高斯消元、代数余子式展开、萨吕斯法则或蒙坦特法。

矩阵 A
: 3
: 3
矩阵 B
: 3
: 3
运算
结果
选择一个运算以在此处查看结果。错误信息也会显示在这里。

提示:可调整矩阵大小(最多 50×50)。A×B 要求 A 的列数等于 B 的行数。行列式/逆/迹/幂 需要方阵。

React, Tailwind & shadcn/ui. No external math deps. — 中文

在上方输入矩阵,打开高级标签页,点击 det(A)。结果立刻出现;展开分步 面板可以看到它是怎么算出来的,还能对同一个矩阵在四种方法之间切换——如果课上指定了某一种方法,这一点 很有用。下面的内容解释这个数字的含义,以及每种方法的原理,好让你能自己动手把结果算一遍。

行列式说明了什么

它是一个数,只对方阵有定义,而它最重要的作用是回答一个问题:这个矩阵可逆吗?行列式 为零意味着矩阵是奇异的——各行线性相关,逆矩阵不存在,用它构造的方程组要么无解,要么有无穷多解。 任何非零值都意味着矩阵可逆。

从几何上看,它是该变换在二维中缩放面积、在三维中缩放体积的倍数。行列式为 −2 表示面积翻倍并翻转 定向;行列式为 0 表示空间被压扁到一条直线或一个点上——这正是该运算无法撤销的原因。符号不是可以随手 丢掉的细节:它记录了变换保持定向还是把它镜像过来。

2×2 的公式

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

ab
cd
= a·d − b·c

所以 [[1, 2], [3, 4]] 的行列式是 1·4 − 2·3 = −2。两条竖线是行列式的 标准记号,不是绝对值,而结果为负是很常见的。

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

对 3×3 矩阵,把前两列抄到矩阵右侧,把三条向右下走的乘积相加,再减去三条向左下走的乘积。用上方 载入的矩阵来算:

213
041
520
= (2·4·0 + 1·1·5 + 3·0·2) − (3·4·5 + 2·1·2 + 1·0·0) = 5 − 64 = −59

萨吕斯法则快而好记,但只适用于 3×3。它没有 4×4 的版本,而自行编一个是考试中最 经典的错误之一。超过 3×3 就得用代数余子式展开或消元法。

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

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

余子式展开对任何阶数都成立,而且当某一行或某一列几乎全是零时,它是手算的首选: 每一个零都在你动笔之前就消掉了整整一个余子式。不过它的代价按 n! 增长,对大矩阵毫无 希望——20×20 的行列式用余子式展开,所需运算次数比一个人身上的原子还多。

高斯消元

这是计算机的做法,也是本计算器从 4×4 起采用的做法。用初等行变换把矩阵化为上三角形,再把对角线 元素相乘。三条规则保证账目不出错:

  • 交换两行,行列式乘以 −1。
  • 把某一行乘以 k,行列式乘以 k
  • 把某一行的倍数加到另一行,行列式不变——这是真正干活的那一步,也是消元法便宜的原因。

代价大约是 n³/3 次运算,而不是 n!。产生这个结果的那次分解,正是 LU 分解,所以一次消元就同时给出行列式和两个因子。

蒙坦特法

它也叫 Bareiss 算法,或无分数消元。它做的是与上面相同的消元,只是每完成一步之后,把所有元素都 除以上一个主元。这个除法总能整除,所以整数矩阵从头到尾都保持为整数——过程中不会出现任何 分数,而最后一个主元就是行列式本身。

手算时,它是让整数矩阵保持干净的那个方法,因为你从不需要拖着一个分母走。当元素是精确值、答案也 必须精确时,它同样是正确的选择。在分步面板里选中它,就能看到同一个矩阵在没有一个分数的情况下被 算完。

值得记住的性质

  • 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 行上
  • 三角矩阵的行列式等于其对角线元素的乘积
  • 行列式是全部特征值的乘积,正如迹是它们的和

手算时的几处自检

行列式算错了往往察觉不到,因为答案只是一个数字,看不出哪里不对。有几个便宜的检查值得养成习惯。先看 有没有一整行或一整列全是零——那样行列式必定为零,根本不必往下算。再看有没有两行成比例,比如第二行 正好是第一行的两倍,那也直接给出零。若矩阵是三角形的(主对角线一侧全为零),把对角线相乘就是答案。

算完之后,可以拿迹与行列式互相印证。二阶时,两个特征值之和等于迹、之积等于行列式,于是特征多项式 就是 λ² − (迹)λ + (行列式),把它解出来若得不到合理的根,多半是前面某一步错了。整数矩阵的行列式必为 整数,如果你的结果带小数,那一定是中途某次除法出了问题——这也是蒙坦特法存在的理由之一。

常见错误

  • 把萨吕斯用在 4×4 上。该法则没有 4×4 版本。请用消元法或余子式展开。
  • 把竖线读成绝对值。|A| 是行列式的标准记号,而它常常是负的。
  • 交换行时忘了变号。消元过程中每交换一次,行列式就乘以 −1。
  • 以为 det(A + B) = det(A) + det(B)这是错的。行列式相乘,而不相加。
  • 去算长方形矩阵的行列式。它没有定义。对非方阵,你要的几乎一定是

常见问题

行列式可以是负数吗?
可以。负号表示该变换翻转了定向,也就是产生了镜像效果。只有绝对值才描述缩放倍数。
行列式为零意味着什么?
矩阵是奇异的:各行线性相关,没有逆矩阵,并且会把空间压缩到更低的维度。
非方阵有行列式吗?
没有。行列式只对方阵有定义。对于长方形矩阵,你要找的多半是秩。
手算时该用哪种方法?
3×3 以内用封闭公式。再大就用高斯消元——除非某一行或某一列几乎全是零,那样沿着它展开更快。
为什么步骤里显示的是分数?
分步引擎使用精确有理数算术,1/3 始终是 1/3,不会漂移成 0.3333。你随时可以把面板切换成小数。

其他计算器