第四节 克莱姆(Cramer)法则

本节讨论有n个未知量也有n个方程的线性方程组

   (1.16)   

称上式为n元线性方程组。这是我们前面讨论的二元、三元线性方程组的更一般情形。

若右端的常数b1b2,…,bn不全为零,则称式(1.16)为非齐次线性方程组;而当b1b2,…,bn全为零,则称式(1.16)为齐次线性方程组。记

D为线性方程组的系数行列式,又记

Dj是用方程右端的常数项b1b2,…,bn来替换系数行列式D中的第j列的元素而得到的行列式。

定理1.2 [克莱姆(Cramer)法则]如果线性方程组(1.16)的系数行列式D≠0,则方程组有唯一解

   (1.17)   

证 先证式(1.17)是方程组(1.16)的解。为此只要验证式(1.17)满足方程组(1.16)中的每一个方程,即要证对任意i(1≤in)有

或  ai1D1+ai2D2+…+ainDn=bi·D  (1.18)

现将每个Djj=1,2,…,n)按第j列展开为

注意到系数行列式D与行列式Dj仅第j列的元素不相同,所以在上述展式中,Dj的第j列元素的n个代数余子式A1jA2j,…,Anj也就是系数行列式D的第j列对应元素的代数余子式。

现将这些展开式代入式(1.18)的左边,即有

把上面的和式按照常数项b1b2,…,bn重新整理,得

式中最后一个等式应用了本章第二节中式(1.15)(关于行列式展开)的结论。

再证方程组解的唯一性。

x1=λ1x2=λ2,…,xn=λn为方程组(1.16)的任一解,我们证明必有

   (1.19)   

因为λ1λ2,…,λn是式(1.16)的一个解,所以它满足式(1.16),即

ai1λ1+ai2λ2+…+ainλn=bii=1,2,…,n

从而由行列式的性质1.4和性质1.6知

再把从第2列开始的每一个第j列的λj倍(j=2,…,n)都加到第一列上去,有

同理可证j=2,…,n时,λj·D=Dj,即。所以方程组(1.16)的解是唯一的。证毕。

【例1.12】 求解线性方程组

 方程组的系数行列式

由克莱姆法则知它有唯一解。又因为

所以方程组的解是

在上面的解题过程中,为了避免四阶行列式的复杂计算,也可以利用国际知名的数学与工程软件MATLAB来计算这些行列式的值(关于MATLAB及其基本使用方法可以参见第二章的第八节)。例如对行列式D1,在MATLAB的命令窗口输入:

≫D1=det([1 1 2 3;-4 -1 -1 -2;-6 3 -1 -1;-4 2 3 -1])%矩阵记号[…]可参见第二章回车,即可得到其值。

线性方程组(1.16)每个未知数的值都等于零的解称为零解。反之,至少有一个未知数不等于零的解称为非零解

任何齐次线性方程组总是有解的,因为它至少有零解。那么齐次线性方程组在什么情况下才有非零解呢?

由克莱姆法则可知,方程个数与未知量个数相等的齐次线性方程组,当它的系数行列式D≠0时,方程组有唯一零解,所以齐次线性方程组有非零解的必要条件是系数行列式D=0。以后还可以证明D=0也是齐次线性方程组有非零解的充分条件。

【例1.13】 讨论λ为何值时,线性方程组

有唯一解,并求出其解。

 方程组的系数行列式

由此可知,当λ≠1且λ≠-2时,方程组有唯一解,又

此时方程组的(唯一)解是

两点注意:

(1)上面解题过程中要计算4个带有符号参数λ的3阶行列式的值,工作量也不小,对此同样可以利用MATLAB来计算这些行列式的值。例如对系数行列式D,在MATLAB的命令窗口输入

≫syms t                % 将符号参数λ换为英文字母符号t

≫D=det([t 1 1;1 t 1;1 1 t])   % 矩阵记号[…]可参见第二章

≫D=factor(D)             % 因式分解

即得D=(t+2)*(t-1)^2。

(2)对于例1.13中的方程组,当λ=1时,方程组的系数行列式D=0,方程组与下列方程同解

x1+x2+x3=1

从而方程组有无穷多组解;而当λ=-2时,原方程组即为

这是个不相容方程组,即矛盾方程组(把第一、第二个方程加到第三个方程上去,得到的是一个矛盾方程),所以方程组此时无解。

值得指出的是,在实际生产决策过程中由于数据统计误差等原因,使得某种决策方案所对应的线性方程组为矛盾方程组,这是经常会发生的。因而矛盾方程组往往也是需要求解的,这就是所谓的“最小二乘解”。需要了解这方面知识的读者,可参见本书附录部分的案例二。在该案例中,还同时介绍了“多项式曲线拟合”问题。

克莱姆法则是线性方程组理论中的一个重要结果,它不仅给出了线性方程组(1.16)有唯一解的条件,方程组解的具体表达式,并且还揭示了方程组的解与系数和常数项之间的关系,这在方程组的更一般问题的研究中将起到很重要的作用。

当然,从前面的例子我们也看到,用克莱姆法则求解有n个未知量n个方程的线性方程组时,需要计算n+1个n阶行列式,这个计算量是很大的。所以在实际求解高阶线性方程组时,一般不用克莱姆法则。

此外,在实际问题中还会碰到系数行列式D=0,以及方程个数m与未知数个数n不相等的线性方程组。在第四章中,我们将对最一般形式的线性方程组作进一步的研究。