第二章矩阵-4.克拉默法则

4 阅读2分钟

克拉默法则(Cramer's Rule) 是线性代数中一个用于求解线性方程组的定理。它利用**行列式(Determinant)**来表示方程组的解。

虽然在实际的大规模计算中(如计算机算法),克拉默法则因为计算效率低而不常被使用(通常使用高斯消元法),但它在理论分析、小规模方程组(2元或3元)的手算以及理解线性方程组解的结构方面非常重要。


1. 适用条件

克拉默法则仅适用于满足以下两个条件的线性方程组:

  1. 方程个数等于未知数个数(即系数矩阵是方阵,n×nn \times n)。
  2. 系数矩阵的行列式不等于零A0|A| \neq 0),这意味着方程组有唯一解

如果 A=0|A| = 0,则方程组要么无解,要么有无穷多解,此时不能使用克拉默法则。


2. 核心公式与步骤

假设我们有一个包含 nn 个未知数 x1,x2,,xnx_1, x_2, \dots, x_nnn 个线性方程组成的方程组,写成矩阵形式为: Ax=bA\mathbf{x} = \mathbf{b}

其中:

  • AAn×nn \times n系数矩阵
  • x\mathbf{x} 是未知数向量 (x1x2xn)\begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix}
  • b\mathbf{b} 是常数项向量 (b1b2bn)\begin{pmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{pmatrix}

求解步骤:

  1. 计算系数矩阵的行列式 DD: 计算 D=det(A)D = \det(A)

    • D=0D = 0,停止,法则不适用。
    • D0D \neq 0,继续。
  2. 构造替换矩阵 AiA_i: 对于每一个未知数 xix_ii=1,2,,ni = 1, 2, \dots, n),将系数矩阵 AAii替换为常数项向量 b\mathbf{b},得到新的矩阵 AiA_i

  3. 计算替换矩阵的行列式 DiD_i: 计算 Di=det(Ai)D_i = \det(A_i)

  4. 得出解: 第 ii 个未知数的值为: xi=DiDx_i = \frac{D_i}{D}


3. 具体案例演示(二元一次方程组)

为了直观理解,我们来看一个最简单的 2×22 \times 2 例子。

方程组:

{2x+3y=84xy=2\begin{cases} 2x + 3y = 8 \\ 4x - y = 2 \end{cases}

第一步:写出系数矩阵 AA 和常数向量 b\mathbf{b} A=(2341),b=(82)A = \begin{pmatrix} 2 & 3 \\ 4 & -1 \end{pmatrix}, \quad \mathbf{b} = \begin{pmatrix} 8 \\ 2 \end{pmatrix}

第二步:计算主行列式 DD D=det(A)=2341=(2×1)(3×4)=212=14D = \det(A) = \begin{vmatrix} 2 & 3 \\ 4 & -1 \end{vmatrix} = (2 \times -1) - (3 \times 4) = -2 - 12 = -14 因为 D=140D = -14 \neq 0,所以有唯一解。

第三步:计算 xx 的分子行列式 DxD_xAA第一列(对应 xx 的系数)替换为 b\mathbf{b}Ax=(8321)A_x = \begin{pmatrix} 8 & 3 \\ 2 & -1 \end{pmatrix} Dx=det(Ax)=8321=(8×1)(3×2)=86=14D_x = \det(A_x) = \begin{vmatrix} 8 & 3 \\ 2 & -1 \end{vmatrix} = (8 \times -1) - (3 \times 2) = -8 - 6 = -14

第四步:计算 yy 的分子行列式 DyD_yAA第二列(对应 yy 的系数)替换为 b\mathbf{b}Ay=(2842)A_y = \begin{pmatrix} 2 & 8 \\ 4 & 2 \end{pmatrix} Dy=det(Ay)=2842=(2×2)(8×4)=432=28D_y = \det(A_y) = \begin{vmatrix} 2 & 8 \\ 4 & 2 \end{vmatrix} = (2 \times 2) - (8 \times 4) = 4 - 32 = -28

第五步:求解 x=DxD=1414=1x = \frac{D_x}{D} = \frac{-14}{-14} = 1 y=DyD=2814=2y = \frac{D_y}{D} = \frac{-28}{-14} = 2

验证: 2(1)+3(2)=2+6=82(1) + 3(2) = 2+6=8 (正确) 4(1)2=24(1) - 2 = 2 (正确)


4. 三元一次方程组的形式

对于三元方程组:

{a11x+a12y+a13z=b1a21x+a22y+a23z=b2a31x+a32y+a33z=b3\begin{cases} a_{11}x + a_{12}y + a_{13}z = b_1 \\ a_{21}x + a_{22}y + a_{23}z = b_2 \\ a_{31}x + a_{32}y + a_{33}z = b_3 \end{cases}

解的形式为: x=DxD,y=DyD,z=DzDx = \frac{D_x}{D}, \quad y = \frac{D_y}{D}, \quad z = \frac{D_z}{D}

其中:

  • D=a11a12a13a21a22a23a31a32a33D = \begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix}
  • Dx=b1a12a13b2a22a23b3a32a33D_x = \begin{vmatrix} b_1 & a_{12} & a_{13} \\ b_2 & a_{22} & a_{23} \\ b_3 & a_{32} & a_{33} \end{vmatrix} (第一列换成 bb
  • Dy=a11b1a13a21b2a23a31b3a33D_y = \begin{vmatrix} a_{11} & b_1 & a_{13} \\ a_{21} & b_2 & a_{23} \\ a_{31} & b_3 & a_{33} \end{vmatrix} (第二列换成 bb
  • Dz=a11a12b1a21a22b2a31a32b3D_z = \begin{vmatrix} a_{11} & a_{12} & b_1 \\ a_{21} & a_{22} & b_2 \\ a_{31} & a_{32} & b_3 \end{vmatrix} (第三列换成 bb

5. 优缺点分析

优点:

  • 公式化强:提供了一个直接的公式,不需要像高斯消元法那样进行行变换操作。
  • 理论价值高:清晰地展示了解与系数及常数项之间的依赖关系。在微积分(如隐函数定理)和微分方程理论中经常用到其思想。
  • 小系统便捷:对于 2×22 \times 23×33 \times 3 的方程组,手算非常快捷。

缺点:

  • 计算量大:这是最大的缺陷。
    • 求解 nn 元方程组需要计算 n+1n+1n×nn \times n 的行列式。
    • 计算一个 n×nn \times n 行列式的复杂度约为 O(n!)O(n!)(若用定义展开)或 O(n3)O(n^3)(若用消元法算行列式)。
    • 相比之下,高斯消元法直接求解整个方程组的复杂度稳定在 O(n3)O(n^3)
    • nn 较大时(例如 n>4n > 4),克拉默法则的计算量呈爆炸式增长,效率极低。
  • 数值稳定性差:在计算机浮点运算中,如果 DD 非常接近于 0,除法操作会导致巨大的舍入误差,使得结果不准确。

6. 总结

  • 什么时候用? 当你需要手动解 2 元或 3 元方程组,或者在理论推导中需要表达解的解析形式时。
  • 什么时候不用? 当未知数很多(n4n \ge 4)或者在编写计算机程序求解大型线性系统时(此时应选用高斯消元法、LU分解或迭代法)。

克拉默法则不仅是一个计算工具,更是连接线性方程组行列式几何意义(体积缩放比例)的重要桥梁。

这是一个非常深刻且直观的视角。要理解克拉默法则背后的几何意义,我们需要跳出“解方程就是求未知数”的代数思维,进入线性变换几何体积的世界。

核心结论先行: 克拉默法则中的比值 DiD\frac{D_i}{D},本质上是在比较两个平行多面体(平行四边形、平行六面体等)的“有向体积”之比。

让我们分层拆解这个几何图像:

6.1. 行列式的几何意义:体积的缩放因子

首先,必须明确行列式 det(A)\det(A) 代表什么。 在线性代数中,矩阵 AA 代表一个线性变换

  • 如果我们将单位正方形(2D)或单位立方体(3D)放入这个变换中,它的边会被拉伸、旋转或剪切。
  • det(A)\det(A) 的绝对值,就是这个单位图形变换后的面积(2D)或体积(3D)
  • det(A)\det(A) 的符号,代表了变换是否改变了空间的“手性”(比如镜像翻转)。

例子(2D): 设基向量为 e1=(1,0)\mathbf{e}_1 = (1,0)e2=(0,1)\mathbf{e}_2 = (0,1)。 矩阵 A=[a1,a2]A = [\mathbf{a}_1, \mathbf{a}_2] 将这两个基向量变换成了新的向量 a1\mathbf{a}_1a2\mathbf{a}_2。 由 a1\mathbf{a}_1a2\mathbf{a}_2 围成的平行四边形的面积,正是 det(A)\det(A)


6.2. 方程组 Ax=bA\mathbf{x} = \mathbf{b} 的几何解释

方程 x1a1+x2a2++xnan=bx_1\mathbf{a}_1 + x_2\mathbf{a}_2 + \dots + x_n\mathbf{a}_n = \mathbf{b} 可以这样理解:

  • a1,,an\mathbf{a}_1, \dots, \mathbf{a}_n 是变换后的新基底向量。
  • b\mathbf{b} 是目标向量。
  • 我们要找一组系数 (x1,,xn)(x_1, \dots, x_n),使得这些基底向量按比例缩放并相加后,刚好拼成向量 b\mathbf{b}

这就好比:你有一些不同方向的“积木条”(列向量),你需要决定每种积木条取多长(xix_i),把它们首尾相接,刚好能到达终点 b\mathbf{b}


6.3. 克拉默法则的几何推导(以2维为例)

这是最精彩的部分。我们要解 x1a1+x2a2=bx_1 \mathbf{a}_1 + x_2 \mathbf{a}_2 = \mathbf{b}

第一步:看分母 D=det(a1,a2)D = \det(\mathbf{a}_1, \mathbf{a}_2)

这是由基底向量 a1\mathbf{a}_1a2\mathbf{a}_2 围成的原始平行四边形的面积。我们可以把它看作是一个“单位网格”在变换后的面积。

第二步:看分子 D1=det(b,a2)D_1 = \det(\mathbf{b}, \mathbf{a}_2)

这里我们将 a1\mathbf{a}_1 替换成了 b\mathbf{b}。 由于 b=x1a1+x2a2\mathbf{b} = x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2,我们可以利用行列式的多重线性性质(Multilinearity)展开它:

D1=det(x1a1+x2a2,a2)=det(x1a1,a2)+det(x2a2,a2)\begin{aligned} D_1 &= \det(x_1 \mathbf{a}_1 + x_2 \mathbf{a}_2, \quad \mathbf{a}_2) \\ &= \det(x_1 \mathbf{a}_1, \mathbf{a}_2) + \det(x_2 \mathbf{a}_2, \mathbf{a}_2) \end{aligned}

这里有两个关键的几何性质起作用:

  1. 齐次性det(ku,v)=kdet(u,v)\det(k\mathbf{u}, \mathbf{v}) = k \cdot \det(\mathbf{u}, \mathbf{v})。所以第一项变成 x1det(a1,a2)x_1 \det(\mathbf{a}_1, \mathbf{a}_2)
  2. 反对称性(共线为零):如果平行四边形的两条边是共线的(或者是同一个向量的倍数),那么它就被“压扁”了,面积为 0
    • 因为 a2\mathbf{a}_2x2a2x_2\mathbf{a}_2 方向相同,它们围成的平行四边形面积为0。
    • det(x2a2,a2)=0\det(x_2 \mathbf{a}_2, \mathbf{a}_2) = 0

于是奇迹发生了: D1=x1det(a1,a2)+0=x1DD_1 = x_1 \cdot \det(\mathbf{a}_1, \mathbf{a}_2) + 0 = x_1 \cdot D

所以: x1=D1Dx_1 = \frac{D_1}{D}

几何直观图解

想象一下:

  • DD 是由向量 a1\mathbf{a}_1a2\mathbf{a}_2 撑开的平行四边形面积。
  • D1D_1 是由向量 b\mathbf{b}a2\mathbf{a}_2 撑开的平行四边形面积。
  • 因为 b\mathbf{b}a1\mathbf{a}_1a2\mathbf{a}_2 的组合,当我们用 b\mathbf{b} 替换 a1\mathbf{a}_1 时,我们在 a2\mathbf{a}_2 方向上的“剪切”并没有改变相对于 a2\mathbf{a}_2 的高度(或者说,b\mathbf{b} 中包含的 a2\mathbf{a}_2 分量对面积没有贡献,因为它与底边 a2\mathbf{a}_2 平行)。
  • 因此,新平行四边形 (b,a2\mathbf{b}, \mathbf{a}_2) 的面积,恰好是原平行四边形 (a1,a2\mathbf{a}_1, \mathbf{a}_2) 面积的 x1x_1

结论x1x_1 就是“包含目标向量 b\mathbf{b} 的新体积”与“原始基底体积”的比率


6.4. 推广到 nn 维空间

nn 维空间中,行列式代表的是 nn 维超平行体(Hyper-parallelepiped)的有向体积

  • 分母 DD:由所有基向量 a1,,an\mathbf{a}_1, \dots, \mathbf{a}_n 构成的超平行体的体积。
  • 分子 DiD_i:将第 ii 个基向量 ai\mathbf{a}_i 替换为目标向量 b\mathbf{b} 后构成的新超平行体的体积。

根据同样的线性性质推导: det(a1,,b,,an)=det(a1,,xjaj,,an)\det(\mathbf{a}_1, \dots, \mathbf{b}, \dots, \mathbf{a}_n) = \det(\mathbf{a}_1, \dots, \sum x_j \mathbf{a}_j, \dots, \mathbf{a}_n) 展开后,只有含有 ai\mathbf{a}_i 的那一项(系数为 xix_i)存活下来,其他所有项因为包含重复向量(两列相同)而体积归零。

Di=xiD    xi=新体积旧体积D_i = x_i \cdot D \implies x_i = \frac{\text{新体积}}{\text{旧体积}}

6.5. 这个视角的深刻含义

  1. 解的存在性: 如果 D=0D=0,意味着原始基向量构成的体积为0(它们共面或共线,退化到了低维空间)。此时,无论你怎么组合,都只能在这个低维子空间里打转。如果 b\mathbf{b} 不在这个子空间里(即 Di0D_i \neq 0),则无解;如果 b\mathbf{b} 也在里面,则有无穷多解。这完美解释了为什么 D=0D=0 时克拉默法则失效。

  2. 解的敏感性: 如果 DD 非常小(接近0),说明基向量几乎共面,形成的平行体非常“扁”。此时,b\mathbf{b} 的微小变化会导致 DiD_i 的巨大相对变化,从而导致 xix_i 剧烈波动。这从几何上解释了为什么病态矩阵(Ill-conditioned matrix)会导致数值计算的不稳定。

  3. 不需要逆矩阵: 通常我们说 x=A1b\mathbf{x} = A^{-1}\mathbf{b}。求逆矩阵 A1A^{-1} 在几何上很复杂。但克拉默法则告诉我们,你不需要知道整个逆变换是什么,你只需要比较体积的比例就能直接得到每一个坐标分量。

总结

克拉默法则不仅是一个代数公式,它是一个体积守恒与比例的几何陈述:

未知数 xix_i 的值,等于“用目标向量 b\mathbf{b} 替换掉第 ii 个基向量后所形成的新几何体体积”与“原始基向量所形成的几何体体积”之比。

这就是为什么它在理论物理和几何学中如此迷人——它将抽象的代数运算还原为了直观的空间伸缩与填充

7.参考文献

本文参考AI回答,豆包,Deepseek,千问