克莱姆法则

9 minIntermediate2026/6/14

Cramer法则的表述与证明,用行列式求解线性方程组的方法,克莱姆法则的适用条件与局限性。

1. 克莱姆法则的表述

1.1 定理内容

设含有 nn 个未知量 nn 个方程的线性方程组:

{a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2⋯an1x1+an2x2+⋯+annxn=bn\begin{cases} a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = b_1 \\ a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n = b_2 \\ \cdots \\ a_{n1}x_1 + a_{n2}x_2 + \cdots + a_{nn}x_n = b_n \end{cases}

记系数行列式为:

D=∣a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1an2⋯ann∣D = \begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{vmatrix}

若 D≠0D \neq 0,则方程组有唯一解:

xj=DjD,j=1,2,…,nx_j = \frac{D_j}{D}, \quad j = 1, 2, \ldots, n

其中 DjD_j 是将 DD 中第 jj 列替换为常数列 (b1,b2,…,bn)T(b_1, b_2, \ldots, b_n)^T 后得到的行列式:

Dj=∣a11⋯a1,j−1b1a1,j+1⋯a1na21⋯a2,j−1b2a2,j+1⋯a2n⋮⋮⋮⋮⋮an1⋯an,j−1bnan,j+1⋯ann∣D_j = \begin{vmatrix} a_{11} & \cdots & a_{1,j-1} & b_1 & a_{1,j+1} & \cdots & a_{1n} \\ a_{21} & \cdots & a_{2,j-1} & b_2 & a_{2,j+1} & \cdots & a_{2n} \\ \vdots & & \vdots & \vdots & \vdots & & \vdots \\ a_{n1} & \cdots & a_{n,j-1} & b_n & a_{n,j+1} & \cdots & a_{nn} \end{vmatrix}

1.2 矩阵形式

方程组可写为 Ax=bAx = b,其中 A=(aij)n×nA = (a_{ij})_{n \times n},x=(x1,…,xn)Tx = (x_1, \ldots, x_n)^T,b=(b1,…,bn)Tb = (b_1, \ldots, b_n)^T。

当 ∣A∣≠0|A| \neq 0 时,x=A−1bx = A^{-1}b,克莱姆法则给出了 xjx_j 的显式表达式。

2. 克莱姆法则的证明

2.1 存在性

将 xj=DjDx_j = \dfrac{D_j}{D} 代入第 ii 个方程:

∑j=1naijDjD=1D∑j=1naijDj\sum_{j=1}^{n} a_{ij} \frac{D_j}{D} = \frac{1}{D} \sum_{j=1}^{n} a_{ij} D_j

由行列式展开定理,DjD_j 按第 jj 列展开:

Dj=b1A1j+b2A2j+⋯+bnAnj=∑k=1nbkAkjD_j = b_1 A_{1j} + b_2 A_{2j} + \cdots + b_n A_{nj} = \sum_{k=1}^{n} b_k A_{kj}

因此:

∑j=1naijDj=∑j=1naij∑k=1nbkAkj=∑k=1nbk∑j=1naijAkj\sum_{j=1}^{n} a_{ij} D_j = \sum_{j=1}^{n} a_{ij} \sum_{k=1}^{n} b_k A_{kj} = \sum_{k=1}^{n} b_k \sum_{j=1}^{n} a_{ij} A_{kj}

由代数余子式的性质:

∑j=1naijAkj={D,i=k0,i≠k\sum_{j=1}^{n} a_{ij} A_{kj} = \begin{cases} D, & i = k \\ 0, & i \neq k \end{cases}

故:

∑j=1naijDj=bi⋅D\sum_{j=1}^{n} a_{ij} D_j = b_i \cdot D

所以 1D∑j=1naijDj=bi\dfrac{1}{D} \sum_{j=1}^{n} a_{ij} D_j = b_i,验证了解的正确性。

2.2 唯一性

设 x1∗,x2∗,…,xn∗x_1^*, x_2^*, \ldots, x_n^* 也是方程组的解,则:

∑j=1naijxj∗=bi,i=1,2,…,n\sum_{j=1}^{n} a_{ij} x_j^* = b_i, \quad i = 1, 2, \ldots, n

两边乘以 AikA_{ik} 并对 ii 求和:

∑i=1nAik∑j=1naijxj∗=∑i=1nbiAik=Dk\sum_{i=1}^{n} A_{ik} \sum_{j=1}^{n} a_{ij} x_j^* = \sum_{i=1}^{n} b_i A_{ik} = D_k

左边:

∑j=1nxj∗∑i=1naijAik=xk∗⋅D\sum_{j=1}^{n} x_j^* \sum_{i=1}^{n} a_{ij} A_{ik} = x_k^* \cdot D

故 xk∗=DkDx_k^* = \dfrac{D_k}{D},解唯一。

3. 齐次线性方程组的情形

3.1 推论

对于齐次线性方程组 Ax=0Ax = 0:

  • 若 ∣A∣≠0|A| \neq 0,则方程组只有零解 x=0x = 0
  • 若方程组有非零解,则 ∣A∣=0|A| = 0

3.2 逆否命题

∣A∣=0  ⟺  齐次方程组有非零解|A| = 0 \iff \text{齐次方程组有非零解}

这是判断齐次方程组是否有非零解的重要方法。

4. 克莱姆法则的应用

4.1 求解线性方程组

示例:解方程组 {2x1+x2=5x1+3x2=10\begin{cases} 2x_1 + x_2 = 5 \\ x_1 + 3x_2 = 10 \end{cases}

D=∣2113∣=5,D1=∣51103∣=5,D2=∣25110∣=15D = \begin{vmatrix} 2 & 1 \\ 1 & 3 \end{vmatrix} = 5, \quad D_1 = \begin{vmatrix} 5 & 1 \\ 10 & 3 \end{vmatrix} = 5, \quad D_2 = \begin{vmatrix} 2 & 5 \\ 1 & 10 \end{vmatrix} = 15

x1=55=1,x2=155=3x_1 = \frac{5}{5} = 1, \quad x_2 = \frac{15}{5} = 3

4.2 判断解的存在性与唯一性

示例:判断方程组 {x1+x2+x3=12x1+3x2+x3=2x1−x2+3x3=0\begin{cases} x_1 + x_2 + x_3 = 1 \\ 2x_1 + 3x_2 + x_3 = 2 \\ x_1 - x_2 + 3x_3 = 0 \end{cases} 是否有唯一解。

D=∣1112311−13∣=∣11101−10−22∣=∣11101−1000∣=0D = \begin{vmatrix} 1 & 1 & 1 \\ 2 & 3 & 1 \\ 1 & -1 & 3 \end{vmatrix} = \begin{vmatrix} 1 & 1 & 1 \\ 0 & 1 & -1 \\ 0 & -2 & 2 \end{vmatrix} = \begin{vmatrix} 1 & 1 & 1 \\ 0 & 1 & -1 \\ 0 & 0 & 0 \end{vmatrix} = 0

D=0D = 0,克莱姆法则不适用,方程组无唯一解。

4.3 含参数的方程组

示例:当 λ\lambda 为何值时,方程组 {λx1+x2+x3=0x1+λx2+x3=0x1+x2+λx3=0\begin{cases} \lambda x_1 + x_2 + x_3 = 0 \\ x_1 + \lambda x_2 + x_3 = 0 \\ x_1 + x_2 + \lambda x_3 = 0 \end{cases} 有非零解?

齐次方程组有非零解的充要条件是 D=0D = 0:

D=∣λ111λ111λ∣=(λ−1)2(λ+2)=0D = \begin{vmatrix} \lambda & 1 & 1 \\ 1 & \lambda & 1 \\ 1 & 1 & \lambda \end{vmatrix} = (\lambda - 1)^2(\lambda + 2) = 0

故 λ=1\lambda = 1 或 λ=−2\lambda = -2 时方程组有非零解。

5. 克莱姆法则的局限性

5.1 计算量问题

克莱姆法则需要计算 n+1n+1 个 nn 阶行列式,计算量为 O(n⋅n!)O(n \cdot n!),对于大规模方程组效率极低。实际计算中,高斯消元法(O(n3)O(n^3))更为高效。

5.2 适用范围

  • 仅适用于方程个数等于未知量个数的方程组
  • 要求系数行列式 D≠0D \neq 0
  • 对于 D=0D = 0 或方程个数与未知量个数不等的情况,克莱姆法则无法直接应用

5.3 理论价值

尽管实际计算中较少使用,克莱姆法则具有重要的理论价值:

  1. 给出了解的显式表达式,便于理论分析
  2. 揭示了解与系数和常数项之间的关系
  3. 证明了当 ∣A∣≠0|A| \neq 0 时解的存在性与唯一性
  4. 在参数分析、灵敏度分析中有应用