14._克莱默Cramer法则

克莱默法则

设有一个含有 nn 个末知数 x1,x2,,xn,nx_1, x_2, \cdots, x_n, n 个线性方程的方程组

{a11x1+a12x2++a1nxn=b1,a21x1+a22x2++a2nxn=b2,an1x1+an2x2++annxn=bn,AX=β\left\{\begin{array}{c} a_{11} x_1+a_{12} x_2+\cdots+a_{1 n} x_n=b_1, \\ a_{21} x_1+a_{22} x_2+\cdots+a_{2 n} x_n=b_2, \\ \cdots \\ a_{n 1} x_1+a_{n 2} x_2+\cdots+a_{n n} x_n=b_n, \end{array} \longleftrightarrow \boldsymbol{A X}=\boldsymbol{\beta}\right.

其中

A=(a11a12a1na21a22a2nan1an2ann),x=(x1x2xn),β=(b1b2bn)\boldsymbol{A}=\left(\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ \vdots & \vdots & & \vdots \\ a_{n 1} & a_{n 2} & \cdots & a_{n n} \end{array}\right), \boldsymbol{x}=\left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right), \quad \boldsymbol{\beta}=\left(\begin{array}{c} b_1 \\ b_2 \\ \vdots \\ b_n \end{array}\right)

Cramer (克莱默) 法则

如果线性方程组 AX=βA X=\beta 的系数行列式不等于零,即 A0|A| \neq 0 ,则方程组有唯一解:

x1=D1A,x2=D2A,,xn=DnA,x_1=\frac{D_1}{|\boldsymbol{A}|}, x_2=\frac{D_2}{|\boldsymbol{A}|}, \cdots, x_n=\frac{D_n}{|\boldsymbol{A}|},

其中 Dj(j=1,2,,n)D_j(j=1,2, \cdots, n) 是把系数行列式的第 jj 列元素用 β\beta 的元素代替后得到的行列式. 证明 因为 A0|A| \neq 0 ,所以 A1A^{-1} 存在. 令 X=A1βX=A^{-1} \beta ,则有 AX=A(A1β)=βA X=A\left(A^{-1} \beta\right)=\beta ,即 X=A1βX=A^{-1} \beta 是线性方程组的解. 且由 A1A^{-1} 的唯一性可知,线性方程组的解是唯一的. 由求逆公式 A1=1AAA^{-1}=\frac{1}{|A|} A^{*} 可得 X=A1β=1AAβX=A^{-1} \beta=\frac{1}{|A|} A^* \beta

用克莱默法则求解线性方程组

{x1x2x3=12x1+2x2+x3=12x1x2+3x3=1\left\{\begin{aligned} x_1-x_2-x_3 & =-1 \\ -2 x_1+2 x_2+x_3 & =1 \\ 2 x_1-x_2+3 x_3 & =1 \end{aligned}\right.

解:

A=111221213=111001015=111015001=10,D1=111121113=111010002=2,|\boldsymbol{A}|=\left|\begin{array}{ccc} 1 & -1 & -1 \\ -2 & 2 & 1 \\ 2 & -1 & 3 \end{array}\right|=\left|\begin{array}{ccc} 1 & -1 & -1 \\ 0 & 0 & -1 \\ 0 & 1 & 5 \end{array}\right|=-\left|\begin{array}{ccc} 1 & -1 & -1 \\ 0 & 1 & 5 \\ 0 & 0 & -1 \end{array}\right|=1 \neq 0, \quad D_1=\left|\begin{array}{ccc} -1 & -1 & -1 \\ 1 & 2 & 1 \\ 1 & -1 & 3 \end{array}\right|=\left|\begin{array}{ccc} -1 & -1 & -1 \\ 0 & 1 & 0 \\ 0 & 0 & 2 \end{array}\right|=-2,
D2=111211213=111011002=2,D3=111221211=111001013=1,D_2=\left|\begin{array}{ccc} 1 & -1 & -1 \\ -2 & 1 & 1 \\ 2 & 1 & 3 \end{array}\right|=\left|\begin{array}{ccc} 1 & -1 & -1 \\ 0 & -1 & -1 \\ 0 & 0 & 2 \end{array}\right|=-2, \quad D_3=\left|\begin{array}{ccc} 1 & -1 & -1 \\ -2 & 2 & 1 \\ 2 & -1 & 1 \end{array}\right|=\left|\begin{array}{ccc} 1 & -1 & -1 \\ 0 & 0 & -1 \\ 0 & 1 & 3 \end{array}\right|=1,

因此 x1=D1A=2,x2=D2A=2,x3=D3A=1\quad x_1=\frac{D_1}{|\boldsymbol{A}|}=-2, \quad x_2=\frac{D_2}{|\boldsymbol{A}|}=-2, \quad x_3=\frac{D_3}{|\boldsymbol{A}|}=1.

二阶克莱姆法则

对于二阶线性方程组: {a1x+b1y=c1a2x+b2y=c2\left\{\begin{array}{l}a_1 x+b_1 y=c_1 \\ a_2 x+b_2 y=c_2\end{array}\right., 其克莱姆法则的解为

x=c1b1c2b2a1b1a2b2,y=a1c1a2c2a1b1a1b2x=\frac{\left|\begin{array}{ll} c_1 & b_1 \\ c_2 & b_2 \end{array}\right|}{\left|\begin{array}{ll} a_1 & b_1 \\ a_2 & b_2 \end{array}\right|}, y=\frac{\left|\begin{array}{ll} a_1 & c_1 \\ a_2 & c_2 \end{array}\right|}{\left|\begin{array}{ll} a_1 & b_1 \\ a_1 & b_2 \end{array}\right|}

三阶克莱姆法则

三阶线性方程组如下:

{a1x+b1y+c1z=d1a2x+b2y+c2z=d2a3x+b3y+c3z=d3\left\{\begin{array}{l} a_1 x+b_1 y+c_1 z=d_1 \\ a_2 x+b_2 y+c_2 z=d_2 \\ a_3 x+b_3 y+c_3 z=d_3 \end{array}\right.

其克莱姆法则的解为

x=d1b1c1d2b2c2d3b3c3a1b1c1a2b2c2a3b3c3,y=a1d1c1a2d2c2a3d3c3a1b1c1a2b2c2a3b3c3,z=a1b1d1a2b2d2a3b3d3a1b1c1a2b2c2a3b3c3x=\frac{\left|\begin{array}{lll} d_1 & b_1 & c_1 \\ d_2 & b_2 & c_2 \\ d_3 & b_3 & c_3 \end{array}\right|}{\left|\begin{array}{lll} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{array}\right|}, y=\frac{\left|\begin{array}{lll} a_1 & d_1 & c_1 \\ a_2 & d_2 & c_2 \\ a_3 & d_3 & c_3 \end{array}\right|}{\left|\begin{array}{lll} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{array}\right|}, z=\frac{\left|\begin{array}{lll} a_1 & b_1 & d_1 \\ a_2 & b_2 & d_2 \\ a_3 & b_3 & d_3 \end{array}\right|}{\left|\begin{array}{lll} a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3 \end{array}\right|}

为什么很多人感觉克莱姆法则没有用?

1750 年, 瑞士的克莱姆发现了用行列式求解线性方程组的克莱姆 (Cramer) 法则。但是,学习他的人普遍感觉克莱姆法则没啥用,这种感觉是正确的。

克莱姆法则在理论上非常优美,但在实际应用中,尤其是在解决大型方程组时,确实显得非常“没用”甚至“低效”

1. 计算效率极低(最大的问题) 克莱姆法则需要计算 n+1 个n 阶行列式。对于 n 元方程组,就要算 n+1 个行列式。

2. 数值稳定性差 在计算机计算或大量手工计算中,会涉及到浮点数(小数)运算。克莱姆法则过程中大量的乘除运算会导致舍入误差被急剧放大。可能一个非常小的初始误差,到最后结果已经完全失真。而高斯消元法等算法有更好的数值稳定性(例如可以选择主元来减少误差)。

3. 适用场景非常狭窄 克莱姆法则有一个完美的前提:系数矩阵的行列式不为零(即方程组有唯一解)。 如果行列式为零,它直接就失效了,无法判断是无解还是无穷多解。 而高斯消元法在消元过程中,能清晰地判断出方程组的解的情况(唯一解、无解、无穷多解),适用性更广。

为什么还要学习克莱姆法则?

既然这么“没用”,为什么所有线性代数教材都会讲它呢?因为它有不可替代的理论价值特殊应用

  • 优美的数学形式:它用最简洁的公式 x_i = D_i / D 清晰地表达了方程组的解和系数行列式之间的关系。这种形式上的美感在数学上非常重要。

  • 用于数学证明和推导:在很多定理的证明中,克莱姆法则能提供一种清晰的思路。因为它给出了一个“显式公式”,在理论分析中非常有用。比如,它可以用来证明如果系数行列式 D ≠ 0,则方程组一定有唯一解。

  • 帮助理解代数本质:它将线性方程组的求解问题与行列式这一核心概念深刻地联系了起来,加深了学习者对线性代数内在统一性的理解

  • 低纬度方程有用: 在2维或3维的方程组用克莱姆法则有时反而更直接,尤其是当系数是符号而不是数字时

一句话:你可以不用克莱姆法则但是不能不知道克莱姆法则

克莱姆法则的意义是可以用方程组的系数和常数项的行列式把方程组的解简洁地表达出来。但在实际工程应用中由于计算量较大, 常常采用高斯消元法来解大型的线性方程组。

一个重要结论

推论(1)nnnn 元齐次线性方程组 AX=0\boldsymbol{A} \boldsymbol{X}=0 只有零解的充要条件是 A0|\boldsymbol{A}| \neq 0 ; (2)nnnn 元非齐次线性方程组 AX=b\boldsymbol{A} \boldsymbol{X}=b 有唯一解的充要条件是 A0|\boldsymbol{A}| \neq 0

下面这个题展示了克莱默法则的理论作用

证明 nn 次多项式

f(x)=a0+a1x++anxn(an0)f(x)=a_0+a_1 x+\cdots+a_n x^n\left(a_n \neq 0\right)

最多有 nn 个互异的根.

证明 采用反证法,假设 f(x)f(x)n+1n+1 个互异的根 c0,c1,,cnc_0, c_1, \ldots, c_n ,将它们逐个代入方程 f(x)=0f(x)=0 ,则有

{a0+a1c0++anc0n=0a0+a1c1++anc1n=0a0+a1cn++ancnn=0...(2.20)\left\{\begin{array}{c} a_0+a_1 c_0+\cdots+a_n c_0^n=0 \\ a_0+a_1 c_1+\cdots+a_n c_1^n=0 \\ \cdots \\ a_0+a_1 c_n+\cdots+a_n c_n^n=0 \end{array}\right. ...(2.20)

a0,a1,,ana_0, a_1, \ldots, a_n 看作未知量,那么方程组(2.20)就是由包含 n+1n+1 个未知量的 n+1n+1 个方程组成的一个齐次线性方程组,其系数行列式

D=1c0c02c0n1c1c12c1n1cncn2cnnD=\left|\begin{array}{ccccc} 1 & c_0 & c_0^2 & \cdots & c_0^n \\ 1 & c_1 & c_1^2 & \cdots & c_1^n \\ \vdots & \vdots & \vdots & & \vdots \\ 1 & c_n & c_n^2 & \cdots & c_n^n \end{array}\right|

n+1n+1 阶范德蒙行列式的转置.由于 c0,c1,,cnc_0, c_1, \ldots, c_n 互异,故 D0D \neq 0 .根据推论 知齐次线性方程组(2.20)只有零解,从而 an=0a_n=0 ,与题设条件矛盾.

例题

用克拉默法则求解线性方程组

{2x1+3x2x3=2x1+2x2+x3=12x1+x26x3=4\left\{\begin{aligned} 2 x_1+3 x_2-x_3 & =2 \\ x_1+2 x_2+x_3 & =-1 \\ 2 x_1+x_2-6 x_3 & =4 \end{aligned}\right.

解:系数矩阵 A=(231121216)\boldsymbol{A}=\left(\begin{array}{rrr}2 & 3 & -1 \\ 1 & 2 & 1 \\ 2 & 1 & -6\end{array}\right) ,常数项 b=(214),D=A=10\boldsymbol{b}=\left(\begin{array}{r}2 \\ -1 \\ 4\end{array}\right), D= |\boldsymbol{A}|=1 \neq 0.

所以方程组有唯一解.另一方面有

D1=231121416=23,D2=221111246=14,D3=232121214=6.\begin{gathered} D_1=\left|\begin{array}{rrr} 2 & 3 & -1 \\ -1 & 2 & 1 \\ 4 & 1 & -6 \end{array}\right|=-23, D_2=\left|\begin{array}{rrr} 2 & 2 & -1 \\ 1 & -1 & 1 \\ 2 & 4 & -6 \end{array}\right|=14, \\ D_3=\left|\begin{array}{rrr} 2 & 3 & 2 \\ 1 & 2 & -1 \\ 2 & 1 & 4 \end{array}\right|=-6 . \end{gathered}

所以 x1=D1D=23,x2=D2D=14,x3=D3D=6x_1=\frac{D_1}{D}=-23, x_2=\frac{D_2}{D}=14, x_3=\frac{D_3}{D}=-6

求方程

{x1+x2+x3+x4=12x1+3x2+4x3+5x4=14x1+9x2+16x3+25x4=18x1+27x2+64x3+125x4=1\left\{\begin{array}{l} x_1+x_2+x_3+x_4=1 \\ 2 x_1+3 x_2+4 x_3+5 x_4=1 \\ 4 x_1+9 x_2+16 x_3+25 x_4=1 \\ 8 x_1+27 x_2+64 x_3+125 x_4=1 \end{array}\right.

解 易知,其系数行列式是一个 4 阶 Vandermonde 行列式.

D=111123452232425223334353=(32)(42)(52)(43)(53)(54)=120.\begin{aligned} D & =\left|\begin{array}{cccc} 1 & 1 & 1 & 1 \\ 2 & 3 & 4 & 5 \\ 2^2 & 3^2 & 4^2 & 5^2 \\ 2^3 & 3^3 & 4^3 & 5^3 \end{array}\right|=(3-2)(4-2)(5-2)(4-3)(5-3)(5-4) \\ & =12 \neq 0 . \end{aligned}

同理

D1=111113451232425213334353=(31)(41)(51)(43)(53)(54)=48,D2=111121452212425223134353=(12)(42)(52)(41)(51)(54)=72,D3=111123152232125223331353=(32)(12)(52)(13)(53)(51)=48,\begin{aligned} D_1 & =\left|\begin{array}{llll} 1 & 1 & 1 & 1 \\ 1 & 3 & 4 & 5 \\ 1^2 & 3^2 & 4^2 & 5^2 \\ 1^3 & 3^3 & 4^3 & 5^3 \end{array}\right|=(3-1)(4-1)(5-1)(4-3)(5-3)(5-4) \\ & =48, \\ D_2 & =\left|\begin{array}{llll} 1 & 1 & 1 & 1 \\ 2 & 1 & 4 & 5 \\ 2^2 & 1^2 & 4^2 & 5^2 \\ 2^3 & 1^3 & 4^3 & 5^3 \end{array}\right|=(1-2)(4-2)(5-2)(4-1)(5-1)(5-4) \\ & =-72, \\ & \\ D_3 & =\left|\begin{array}{llll} 1 & 1 & 1 & 1 \\ 2 & 3 & 1 & 5 \\ 2^2 & 3^2 & 1^2 & 5^2 \\ 2^3 & 3^3 & 1^3 & 5^3 \end{array}\right|=(3-2)(1-2)(5-2)(1-3)(5-3)(5-1) \\ & =48, \end{aligned}
D4=111123412232421223334313=(32)(42)(12)(43)(13)(14)=12, 故 x1=D1D=4,x2=D2D=6,x3=D3D=4,x4=D4D=1.\begin{aligned} &\begin{aligned} D_4 & =\left|\begin{array}{cccc} 1 & 1 & 1 & 1 \\ 2 & 3 & 4 & 1 \\ 2^2 & 3^2 & 4^2 & 1^2 \\ 2^3 & 3^3 & 4^3 & 1^3 \end{array}\right|=(3-2)(4-2)(1-2)(4-3)(1-3)(1-4) \\ & =-12, \end{aligned}\\ &\text { 故 }\\ &x_1=\frac{D_1}{D}=4, x_2=\frac{D_2}{D}=-6, x_3=\frac{D_3}{D}=4, x_4=\frac{D_4}{D}=-1 . \end{aligned}