矩阵行列式计算器

下一步

方阵的行列式是一个标量值,用于判断该矩阵是否可逆(行列式非零)、它将带符号的体积缩放多少倍,以及是否会翻转方向。输入一个 2×2 到 10×10 的矩阵,计算器就会返回det(A),并给出完整的代数余子式展开(适用于小矩阵)或LU分解步骤(适用于大矩阵),让你能够逐行跟随代数运算。

行列式如何计算

  1. 1

    输入一个方阵

    行数 = 列数。可以使用小数和负数。

  2. 2

    选择方法

    代数余子式展开(适合小矩阵,直观易懂)或LU分解(适合大矩阵,速度快)。

  3. 3

    读取行列式

    带符号的标量结果。

  4. 4

    跟随步骤

    代数余子式展开会显示每个余子式及其符号;LU分解会列出行变换的顺序。

行列式告诉你什么

  • 非零: 矩阵可逆;它的列线性无关;它定义了一个双射线性映射。
  • 零: 矩阵是奇异的;列线性相关;映射至少会让一个维度坍缩。
  • 符号: 正号表示线性映射保持方向;负号表示它翻转方向(如同镜像)。
  • 大小: |det(A)|是映射对n维体积的缩放倍数。det为3的2×2矩阵将面积放大3倍;det为−2时将面积放大2倍并翻转。

小矩阵:手动计算

2×2:

det([[a, b], [c, d]]) = a·d − b·c

3×3(萨吕斯法则):

对于 [[a,b,c],[d,e,f],[g,h,i]]det = a(ei − fh) − b(di − fg) + c(dh − eg)

大矩阵:使用LU

用代数余子式展开手动计算4×4行列式需要4! = 24次乘法,6×6则需要720次。LU分解把计算量降到O(n³):将A = LU分解,其中L是对角线为1的下三角矩阵,U是上三角矩阵;于是det(A) = det(L)·det(U) = ∏ u_ii

值得记住的性质

  • det(AB) = det(A)·det(B)
  • det(A^T) = det(A)
  • det(A^−1) = 1 / det(A)
  • 对于n×n矩阵,det(kA) = k^n · det(A)
  • 交换两行会使行列式变号。
  • 把某一行的倍数加到另一行不会改变行列式。
  • 如果某一行(或某一列)全为零,行列式就是零。

常见错误

  • 在代数余子式展开中忘记符号规律+ − + − + − ...。(i,j)处的代数余子式等于(−1)^(i+j)乘以对应的余子式。
  • 明明有一行含三个零,却沿着非零元素较多的行展开。为简化计算,应选择零最多的行或列。
  • 误以为 det(A+B) = det(A) + det(B)。 这并不成立。行列式是乘法性的,而不是加法性的。

常见问题

它表明线性映射是否保持方向。行列式为正意味着右手坐标系仍保持右手性;为负则意味着变为左手性(即发生反射)。

不能,行列式只对方阵有定义。对于非方阵,最接近的类比是奇异值或某个子矩阵的格拉姆行列式。

交换两行:符号翻转。将某一行乘以k:行列式乘以k。把某一行的倍数加到另一行:行列式不变。LU分解只使用第三种变换,因此在化简过程中行列式保持不变。

基本的LU分解并不稳定,遇到主元为零的矩阵会失败。带部分选主元的LU分解(本计算器的默认设置)会交换行以避免极小的主元,对大多数实矩阵都是稳定的。

采用双精度运算,约有15–16位有效数字。接近奇异的矩阵(det ≈ 0)会累积误差;如果绝对值极小,应将其视为很可能是零,而不要依赖最后几位小数。

相关工具

此工具还提供其他语言版本