高等代数笔记:克莱姆法则(Cramer's Rule)

克莱姆法则是什么

克莱姆法则(Cramer's Rule),用于求n元线性方程组的唯一解. 分为2部分:

  1. 解决何时有唯一解:定理1:n个方程的n元线性方程组有唯一解充要条件:系数行列式|A|≠0
  2. 求出唯一解是什么:定理2:有唯一解时(满足1),解是\((\frac{|B_1|}{|A|},\frac{|B_2|}{|A|},...,\frac{|B_n|}{|A|})\)

下面分析、证明这2个子定理.

线性方程组何时有解

数域K上n个方程的n元线性方程组:

\[\tag{1} \begin{cases} a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_1,\\ a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_2,\\ ...\\ a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n=b_n \end{cases} \]

分析

我们如何解这个方程组?

先看2个例子.

例1:2个方程、2个未知数

\[\begin{cases} x_1+2x_2=10 & ①\\ 2x_1+3x_2=30 & ② \end{cases} \]

为了将\(x_1\)系数变为0,进行变换\(②-2①\),得到:

\[(2x_1+3x_2)-2(x_1+2x_2)=30-2*10\\ \iff x_2=-10 \]

\(x_2=-10\)代入\(①\),可得\(x_1=30\)

将变换后的方程组写成矩阵形式:

\[\begin{cases} x_1+2x_2=10 \\ 0x_1+(-1)x_2=10 \end{cases}\\ \begin{pmatrix}1&2\\0&-1\end{pmatrix} \begin{pmatrix}x_1\\x_2\end{pmatrix}=\begin{pmatrix}-10\\30\end{pmatrix} \]

系数矩阵呈现阶梯形,如果以对角线(方程号=未知数序号)为界限,那么矩阵左下半部分系数为0.

唯一解:

\[\begin{pmatrix}x_1\\x_2\end{pmatrix}=\begin{pmatrix}-10\\30\end{pmatrix} \]

例2:3个方程、3个未知数的情况

\[\begin{cases} x_1+x_2+x_3=20 & ①\\ 2x_1+4x_2-x_3=56 & ②\\ 5x_1+x_2+3x_3=30 & ③ \end{cases}\\ \xlongequal{\begin{aligned}③-5①\\②-2①\end{aligned}} \begin{cases} x_1+x_2+x_3=20 & ①\\ 0x_1+2x_2-3x_3=16 & ②\\ 0x_1-4x_2-2x_3=-70 & ③ \end{cases}\\ \xlongequal{③+2②} \begin{cases} x_1+x_2+x_3=20 & ①\\ 0x_1+2x_2-3x_3=16 & ②\\ 0x_1+0x_2-8x_3=-38 & ③ \end{cases}\\ \implies \begin{pmatrix}x_1\\x_2\\x_3\end{pmatrix} =\begin{pmatrix}\frac{1}{8} \\ \frac{121}{8} \\ \frac{19}{4}\end{pmatrix} \]

方程组变换后,得到阶梯形矩阵形式:

\[\begin{pmatrix} 1&1&1\\ 0&2&-3\\ 0&0&-8 \end{pmatrix} \begin{pmatrix}x_1\\x_2\\x_3\end{pmatrix} =\begin{pmatrix}\frac{1}{8} \\ \frac{121}{8} \\ \frac{19}{4}\end{pmatrix} \]

通过2个例子,不难发现,我们在解方程组过程中,总是将方程组对应系数矩阵的“左下半”部分变换为0,实现消元的目的,然后再求出方程组的解.

我们将在求解方程组过程中,对方程组做的这种变换,称为初等行变换. 初等行变换,包含3类:

1)倍乘变换:将\((A,b)\)的第i行×常数k(k≠0),简写\(kr_{i}\),第i个方程左右不变;
2)对换变换:将\((A,b)\)的第i、j行对换,简写\(r_i ↔ r_j\),第i、j个方程左右不变;
3)倍加变换:将\((A,b)\)的第j行×常数k,再加到第i行,简写\(r_i+kr_j\),第i个方程左右不变.

也就是说,对方程组进行初等行变换不改变方程组的解.

为方便描述,我们用矩阵符号描述.
方程组:

\[\begin{cases} a_{11}x_1+a_{12}x_2+...+a_{1n}x_n=b_1,\\ a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_2,\\ ...\\ a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n=b_n \end{cases} \]

可以写成:

\[\tag{2} Ax=b \]

其中,

\[A=\begin{pmatrix} a_{11} & a_{12} & ... & a_{1n}\\ a_{21} & a_{22} & ... & a_{2n}\\ ... & ... & ... & ...\\ a_{n1} & a_{n2} & ... & a_{nn} \end{pmatrix}, x=\begin{pmatrix} x_1\\x_2\\...\\x_n \end{pmatrix}, b=\begin{pmatrix} b_1\\b_2\\...\\b_n \end{pmatrix} \]

记系数矩阵记\(A\),增广矩阵\(\widetilde{A}=(A, b)\)

\[\widetilde{A}=(A, b)=\begin{pmatrix} a_{11} & a_{12} & ... & a_{1n} & b_1\\ a_{21} & a_{22} & ... & a_{2n} & b_2\\ ... & ... & ... & ... & ...\\ a_{n1} & a_{n2} & ... & a_{nn} & b_n \end{pmatrix} \]

初等行变换后,会由\(A\)得到一个阶梯形矩阵,称为行阶梯形矩阵\(J\),及其增广矩阵\(\widetilde{J}=(J,d)\)

\[J=\begin{pmatrix} c_{11} & c_{12} & ... & c_{1n}\\ 0 & c_{22} & ... & c_{2n}\\ ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} \end{pmatrix}, \widetilde{J}=(J,d)=\begin{pmatrix} c_{11} & c_{12} & ... & c_{1n} & d_1\\ 0 & c_{22} & ... & c_{2n} & d_2\\ ... & ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} & d_{n} \end{pmatrix} \]

我们并不知道\(c_{ij},d_i\)的值是多少,也不必关心,只需要知道行阶梯型矩阵的左下半部分都是0. 当然,如果需要利用\(J\)求解\(x\)的具体解时,则需要关心\(c_{ij},d_i\)的值.

原方程组\((1)\)可写为:\(Ax=b\)

我们对系数矩阵\(A\)做初等行变换的目的,是将\(A\)变换为阶梯型矩阵\(J\),进而求解方程组.

\(A\)经初等行变换\(S\),变换为\(J\),即

\[A\xrightarrow{初等行变换S}J \]

实际上,我们在求解方程组的过程中,变换的是方程组的方程(左右两边),而不单单是左边. 所以,变换还应该包括常数项\(b_i\),即方程组的变换对应增广矩阵的变换:

\[(A,b)=\widetilde{A}\xrightarrow{S}(J,d)=\widetilde{J} \]

我们将方程组最终变换成了:\(Jx=d\)的形式(\(J\)是行阶梯形矩阵). 在变换过程中,并没有改变方程组的解. 因此,方程组\(Jx=d\)的解也是\(Ax=b\)的解.

下面讨论方程组\(Jx=d\)的解:

1)方程组\(Jx=d\)无解 \(\Longleftrightarrow\) \(\widetilde{J}\)有非零行\((0,...,0,d_i)\) \(\iff J\)有零行,且对应行\(d_i\neq 0\) \(\implies |J|=0\),此时,某一行出现方程\(“0=d_i(d_i≠0)”\)

2)有解,且有无穷解 \(\Longleftrightarrow\) \(\widetilde{J}\)非零行数目\(r < n\) \(\iff \widetilde{J}\)有零行 \(\iff J\)有零行,且对应行\(d_i=0\) \(\implies |J|=0\)

3)有唯一解 \(\Longleftrightarrow\) \(\widetilde{J}\)非零行数目\(r=n\) \(\Longleftrightarrow\) \(\widetilde{J}\)有n个非零行,但不能有\(“(0,...,0,d)”\)这样的非零行(否则无解,归为情形1)\(\iff J\)有n个非零行\(\iff J\)有n个主元 \(\iff |J|=c_{11}c_{22}...c_{nn}\neq 0\)

此时,\(|J|\)为:

\[|J|=\begin{vmatrix} c_{11} & c_{12} & ... & c_{1n}\\ 0 & c_{22} & ... & c_{2n}\\ ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} \end{vmatrix}=c_{11}c_{22}...c_{nn}\neq 0 \]

其中,\(c_{11},c_{22},...,c_{nn}\)全都不为0

反过来,如果\(|J|\neq 0\),那么方程组一定有唯一解,成立吗?

成立. 下面证明:

思路:\(|J|\neq 0\) \(\implies J\)主对角线元素均非0 $\iff $ \(J\)有n个主元 $\implies $ 求解唯一解

主元:指通过初等行变换将矩阵化为阶梯形或简化阶梯形后,每个非零行的第一个非零元素.

\[|J|=\begin{vmatrix} c_{11} & c_{12} & ... & c_{1n}\\ 0 & c_{22} & ... & c_{2n}\\ ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} \end{vmatrix}=c_{11}c_{22}...c_{nn}\neq 0 \]

\(J\)的主元就是其对角线元素

\(J\)有n个主元

方程组\(Jx=d\)可写为:

\[\begin{pmatrix} c_{11} & c_{12} & ... & c_{1n}\\ 0 & c_{22} & ... & c_{2n}\\ ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} \end{pmatrix} \begin{pmatrix}x_1\\x_2\\...\\x_n\end{pmatrix} =\begin{pmatrix}d_1\\d_2\\...\\d_n\end{pmatrix} \]

∵n个主元\(c_{11},c_{22},...,c_{nn}\)都不为0

∴可以进一步对方程组进行初等行变换,得到:

\[\begin{pmatrix} c_{11} & 0 & ... & 0\\ 0 & c_{22} & ... & 0\\ ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} \end{pmatrix} \begin{pmatrix}x_1\\x_2\\...\\x_n\end{pmatrix} =\begin{pmatrix}e_1\\e_2\\...\\e_n\end{pmatrix} \]

\(x_n,...,x_2,x_1\)有唯一解,解为:

\[\begin{pmatrix}x_1\\x_2\\...\\x_n\end{pmatrix}= \begin{pmatrix}e_1/c_{11}\\e_2/c_{22}\\...\\e_n/c_{nn}\end{pmatrix} \]

∴方程组有唯一解

综上,方程组有唯一解当且仅当\(|J|\neq 0\).

由行列式性质(2、4、7)(参见高等代数笔记:行列式)知,如果\(A\xrightarrow{S}J\)
则有,

\[|J|=l|A|, l\neq 0 \]

\(|J|\neq 0\)当且仅当\(|A|\neq 0\).

证明

定理1 数域K上n个方程的n元线性方程组有唯一解充要条件:其系数行列式不为0.

证明:简要证明,详分析见上

核心思想:将方程组由系数矩阵的形式\(Ax=b\),转换成行阶梯形矩阵的形式\(Jx=d\),然后探讨\(|J|\)与方程组解的关系. 最后由行列式性质\(|J|=l|A|,l\neq 0\)转化回\(|A|\)与方程组解的关系

记n个方程的n元方程组,矩阵形式\(Ax=b\).

系数矩阵\(A\)经初等行变换\(S\),得到行阶梯形矩阵\(J\),即\(A\xrightarrow{S}J\)

\(A\)对应增广矩阵\(\widetilde{A}=(A,b)\)\(J\)对应增广矩阵\(\widetilde{J}=(J,d)\),有\(\widetilde{A} \xrightarrow{S} \widetilde{J}\)

∵对方程组进行初等行变换,不会改变方程组的解
\(Ax=b\)的解与\(Jx=d\)的解相同

\(Jx=d\)展开:

\[\begin{pmatrix} c_{11} & c_{12} & ... & c_{1n}\\ 0 & c_{22} & ... & c_{2n}\\ ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} \end{pmatrix} \begin{pmatrix}x_1 \\ x_2 \\ ... \\ x_n\end{pmatrix} =\begin{pmatrix}d_1 \\ d_2 \\ ... \\ d_n\end{pmatrix} \]

充分性. 假设\(|A|\neq 0\)

由行列式性质(2,4,7),可知\(|J|=l|A|,l\neq 0\)

\(|J|\neq 0\)

\(|J|=c_{11}c_{22}...c_{nn}\)

\(c_{11},c_{22},...,c_{nn}\)全不为0

利用初等行变换,对方程组进一步简化:

\[\begin{pmatrix} c_{11} & 0 & ... & 0\\ 0 & c_{22} & ... & 0\\ ... & ... & ... & ...\\ 0 & 0 & ... & c_{nn} \end{pmatrix} \begin{pmatrix}x_1\\x_2\\...\\x_n\end{pmatrix} =\begin{pmatrix}e_1\\e_2\\...\\e_n\end{pmatrix} \]

此时,方程组有唯一解:

\[\begin{pmatrix}x_1\\x_2\\...\\x_n\end{pmatrix}= \begin{pmatrix}e_1/c_{11}\\e_2/c_{22}\\...\\e_n/c_{nn}\end{pmatrix} \]

其中,\(c_{11},c_{22},...,c_{nn}\neq 0\)

必要性. 假设方程组\(Jx=d\)有唯一解.

1)方程组无解:存在“左边=0,右边≠0”的方程,即\((0, 0, ..., 0)x=d_i(d_i\neq 0)\).

\(J\)的某一行为全0

\(|J|=0\)

2)方程组有无穷解:存在“左边=0=右边”的方程,即\((0, 0, ..., 0)x=0(d_i= 0)\).

此时,\(|J|=0\).

3)方程组有唯一解:\(\widetilde{J}\)非零行个数\(r=n\)(如果 \(r<n\) ,那么\(\widetilde{J}\)会出现0行,即“左边=0=右边”,有无穷解),且不能有\((0,0,...,d)(d\neq 0)\)这样的非零行,否则无解

\(J\)非零行数目\(r=n\)(因为只要\(J\)有0行,\((J,d)\)就会出现\((0,0,...,d)\)行)

\((J,d)\)没有相同行,否则\(Jx=d\)有无数解.

下面用反证法+数学归纳法,证明\(c_{i,i}\neq 0,i=1,2,...,n\)

\(i=n\)时,假设\(c_{i,i}=c_{n,n}=0\),那么\(J\)非零行数 r < n,与 \(J\)有n个非零行 矛盾
∴假设不成立,有\(c_{n,n}\neq 0\)

\(i=n-1\)时,假设\(c_{i,i}=c_{n-1,n-1}=0\),那么第i行方程:

\[c_{n-1,n-1}x_{n-1}+c_{n-1,n}x_{n}=d_{n-1}\\ \implies c_{n-1,n}x_{n}=d_{n-1} \tag{3} \]

而第i+1行方程:

\[c_{n,n}x_n=d_n \tag{4} \]

对第i行方程进行初等行变换:\(r_{n-1}-r_n\cdot c_{n-1,n}/c_{n,n}=(3)-(4)c_{n-1,n}/c_{n,n}\),变换为:

\[0=d_{n-1}-d_n\cdot c_{n-1,n}/c_{n,n} \]

也就是说,只有n行的\(J\)出现了0行,非零行数目\(r<n\),不满足\(r=n\);否则会出现无解或者无穷解的情形.

∴假设不成立,\(c_{n-1,n-1}\neq 0\)

\(i\ge k+1(1\le k<n)\) 时,\(c_{i,i}\neq 0\) 成立,即 \(c_{k+1,k+1},c_{k+2,k+2},...,c_{n,n}\neq 0\)

\(i= k\) 时,假设\(c_{i,i}=c_{k,k}= 0\),那么,\(Jx=d\)

\[\begin{pmatrix} c_{11} & c_{12} & ... & c_{1k} & c_{1,k+1} & ... & c_{1n}\\ 0 & c_{22} & ... & c_{2k} & c_{2,k+1} & ... & c_{2n}\\ ... & ... & ... & ... & ... & ... & ...\\ 0 & 0 & ... & c_{k,k}=0 & c_{k,k+1} & ... & c_{k,n}\\ 0 & 0 & ... & 0& c_{k+1,k+1} & ... & c_{k+1,n}\\ ... & ... & ... & ... & ... & ... & ...\\ 0 & 0 & ... & c_{nk} & c_{n,k+1} & ... & c_{nn} \end{pmatrix} \begin{pmatrix}x_1 \\ x_2 \\ ... \\ x_{k} \\ x_{k+1} \\ ... \\ x_n\end{pmatrix} =\begin{pmatrix}d_1 \\ d_2 \\ ... \\ d_{k} \\ d_{k+1} \\ ... \\ d_n\end{pmatrix}\\ \]

第k行方程:

\[c_{k,k}x_k+c_{k,k+1}x_{k+1}+...+c_{k,n}k_n=d_k\\ \implies c_{k,k+1}x_{k+1}+...+c_{k,n}k_n=d_k \]

第k+1行方程:

\[c_{k+1,k+1}x_{k+1}+...+c_{k+1,n}k_n=d_{k+1} \]

\(c_{k+1,k+1},c_{k+2,k+2},...,c_{n,n}\neq 0\)

对第k行方程进行初等行变换:\(r_{k}-r_{k+1}\cdot \frac{c_{k,k+1}}{c_{k+1,k+1}}\),变换为:

\[(c_{k,k+2}-c_{k+1,k+2} \frac{c_{k,k+1}}{c_{k+1,k+1}})x_{k+2}+...+(c_{k,n}-c_{k+1,n} \frac{c_{k,k+1}}{c_{k+1,k+1}})k_n=d_k-d_{k+1}\frac{c_{k,k+1}}{c_{k+1,k+1}} \]

同理,继续用第k+2行对第k行进行初等行变换,使其\(x_{k+2}\)系数为0

以此类推,最终第k行方程左边=0,即\(J\)的非零行数目 \(r<n\),不满足\(r=n\)

∴假设不成立,有\(c_{k,k}\neq 0\)

\(i=1,2,...,n\)时,\(c_{i,i}\neq 0\)

\(|J|=c_{11}c_{22}...c_{nn}\neq 0\)

\(|J|=l|A|, l\neq 0\)

\(|A|\neq 0\)

综上,方程组\(Ax=b\)有唯一解的充要条件:\(|A|\neq 0\)

推论1 数域K上n个方程的n元齐次线性方程组只有0解的充要条件:其系数行列式不为0. 从而有非0解充要条件是其系数行列式为0.

tips: 齐次线性方程组:常数项全为0,即\(b_1=b_2=...=b_n=0\)

非齐次线性方程组:常数项不全为0,即\(b_1,b_2,...,b_n\)至少有1个非0.

证明:
有2个结论:

1)结论1:n个方程的n元齐次线性方程组只有0解的充要条件:\(|A|\neq 0\).
由定理1知,方程组有唯一解充要条件:\(|A|\neq 0\)

对于齐次线性方程组,0显然是一个解
∴只有0解充要条件:\(|A|\neq 0\)

2)结论2:n个方程的n元齐次线性方程组有非0解充要条件:\(|A|=0\).

必要性 假设有非0解

∵0是齐次线性方程组的一个解
如果要有非0解,则必定不止1个解
\(|A|=0\)

充分性 假设\(|A|=0\)

此时,方程组要么无解,要么有无穷解.

而对于齐次线性方程组,0显然是一个解
∴方程组有无穷解
∴除0解外,其他解必为非0解
故得证

求线性方程组的唯一解

线性方程组如果有唯一解,那么解是什么?

对于2元一次方程组,解为\((\frac{|B_1|}{|A|},\frac{|B_2|}{|A|})\)\(B_1, B_2\)是系数矩阵A的第1、2列换成常数项后所得矩阵.

对于n元一次方程组,可以将系数矩阵A的第j列换成常数项,得到\(B_j,j=1,2,...,n\),即:

\[B_j=\begin{pmatrix} a_{11} & ... & a_{1,j-1} & b_1 & a_{1,j+1} & ... & a_{1n}\\ a_{21} & ... & a_{2,j-1} & b_2 & a_{2,j+1} & ... & a_{2n}\\ ... & ... & ... & ... & ... & ... &...\\ a_{n1} & ... & a_{n,j-1} & b_n & a_{n,j+1} & ... & a_{nn}\\ \end{pmatrix} \]

定理2 n个方程组的n元线性方程组的系数行列式\(|A|\neq 0\)时,其唯一解为

\[(\frac{|B_1|}{|A|},\frac{|B_2|}{|A|},...,\frac{|B_n|}{|A|}) \]

其中,矩阵\(B_j\)是由系数矩阵\(A\)的第\(j\)列替换成常数项\((b_1,b_2,...,b_n)^T\)得到,即

\[B_j=\begin{pmatrix} a_{11} & ... & a_{1,j-1} & b_1 & a_{1,j+1} & ... & a_{1n}\\ a_{21} & ... & a_{2,j-1} & b_2 & a_{2,j+1} & ... & a_{2n}\\ ... & ... & ... & ... & ... & ... &...\\ a_{n1} & ... & a_{n,j-1} & b_n & a_{n,j+1} & ... & a_{nn}\\ \end{pmatrix},j=1,2,...,n \]

证明:
由定理1,\(|A|\neq 0\)时方程组有唯一解.

\(x_i=\frac{|B_j|}{|A|}(j=1,2,...,n)\)代入第i个方程左边:

\[\begin{aligned} &a_{i1}x_1+a_{i2}x_2+...+a_{in}x_n\\ =&\sum_{j=1}^na_{ij}\frac{|B_j|}{|A|}\\ =&\frac{1}{|A|}\sum_{j=1}^na_{ij}|B_j|\\ =&\frac{1}{|A|}\sum_{j=1}^na_{ij}\sum_{k=1}^nb_k(B_{j})_{kj}\\ =&\frac{1}{|A|}\sum_{j=1}^na_{ij}\sum_{k=1}^nb_kA_{kj}\\ =&\frac{1}{|A|}\sum_{j=1}^n\sum_{k=1}^na_{ij}b_kA_{kj}\\ =&\frac{1}{|A|}\sum_{k=1}^n\sum_{j=1}^na_{ij}b_kA_{kj}\\ =&\frac{1}{|A|}\sum_{k=1}^nb_k(\sum_{j=1}^na_{ij}A_{kj})\\ =&\frac{1}{|A|}b_i|A|=b_i \end{aligned} \]

补充说明:
前面高等代数笔记:行列式提到过,行列式|A|按第i行展开:

\[|A|=\sum\limits_{j=1}^na_{ij}A_{ij} \]

其中,\(A_{ij}\)是矩阵A的(i,j)元的代数余子式.

因此,\(|B_j|\)按第j列展开:

\[|B_j|=\sum\limits_{k=1}^nb_k(B_j)_{kj} \]

其中,\(b_k\)\(B_j\)的第j列第k行元素,也是方程组第k个方程的常数项.

\(A\)替换第j列为常数项 -> \(B_j\)

\(|B_j|\)\(|A|\)的第j列代数余子式相同

\[|B_j|=\sum_{k=1}^nb_k(B_j)_{kj}=\sum_{k=1}^nb_kA_{kj} \]

由前面高等代数笔记:行列式知,

\[\sum\limits_{j=1}^na_{ij}A_{kj}=\begin{cases} |A|, &k=i\\ 0, &k\neq i \end{cases} \]

又k=1,2,..,n, i∈[1,n]
∴只有当k=i时,\(\sum_{j=1}^na_{ij}A_{kj}\)取值|A|,其他情形取值0

posted @ 2024-03-13 19:44  明明1109  阅读(4322)  评论(2)    收藏  举报