主要内容\(\newcommand{\Ima}{\rm Im }
\newcommand{\N}{\mathbb N}
\newcommand{\Z}{\mathbb Z}
\newcommand{\Q}{\mathbb Q}
\newcommand{\R}{\mathbb R}
\newcommand{\F}{\mathbb F}
\newcommand{\C}{\mathbb C}
\newcommand{\K}{\mathbb K}
\newcommand{\myunit}{1 cm}
\newcommand{\blue}[1]{{\color{blue}#1}}
\newcommand\iddots{\mathinner{
\kern1mu\raise1pt{.}
\kern2mu\raise4pt{.}
\kern2mu\raise7pt{\Rule{0pt}{7pt}{0pt}.}
\kern1mu
}}
\tikzset{
node style sp/.style={draw,circle,minimum size=\myunit},
node style ge/.style={circle,minimum size=\myunit},
arrow style mul/.style={draw,sloped,midway,fill=white},
arrow style plus/.style={midway,sloped,fill=white},
}
\newcommand{\lt}{<}
\newcommand{\gt}{>}
\newcommand{\amp}{&}
\definecolor{fillinmathshade}{gray}{0.9}
\newcommand{\fillinmath}[1]{\mathchoice{\colorbox{fillinmathshade}{$\displaystyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\textstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptscriptstyle\phantom{\,#1\,}$}}}
\)
节 2.4 初等行变换和初等矩阵
通过引入矩阵乘法,线性方程组可以写成\(Ax=\beta\)的形式,\(A\)是系数矩阵,\(\beta\)是右端项。本节中,我们我Gauss消去法中消元的步骤也用矩阵乘法来进行描述。
子节 2.4.1 Gauss消去法与行初等变换
我们从矩阵的角度重新检视Gauss消去法。把一个线性方程组\(Ax=\beta\)的系数矩阵和右端项按行拼在一起,可以获得分块矩阵
\begin{equation*}
(A|\beta),
\end{equation*}
称这个矩阵为线性方程组的增广矩阵。在不考虑变量名的前提下,线性方程组和其增广矩阵一一对应。
回顾线性方程组的求解过程,我们只对其系数和常数项进行了运算,化简线性方程组相当于化简其增广矩阵,因此可通过增广矩阵的化简来求解线性方程组。
例 2.4.1. 矩阵上的Gauss消去法.
解答.
线性方程组的增广矩阵为
\begin{equation*}
(A|\beta)=\left(\begin{array}{cc:c}
1 & 2 & 4\\
1 & -1 & 1
\end{array}\right),
\end{equation*}
对增广矩阵进行化简:
\begin{equation*}
\begin{array}{l}
\left(\begin{array}{cc:c}
1 & 2 & 4\\
1 & -1 & 1
\end{array}\right)\xrightarrow{r_1\leftrightarrow r_2}\left(\begin{array}{cc:c}
1 & -1 & 1\\
1 & 2 & 4
\end{array}\right)\xrightarrow{r_2-r_1}\left(\begin{array}{cc:c}
1 & -1 & 1\\
0 & 3 & 3
\end{array}\right)\\
\xrightarrow{\frac{1}{3}r_2}\left(\begin{array}{cc:c}
1 & -1 & 1\\
0 & 1 & 1
\end{array}\right)\xrightarrow{r_1+r_2}\left(\begin{array}{cc:c}
1 & 0 & 2\\
0 & 1 & 1
\end{array}\right),
\end{array}
\end{equation*}
以最后一个矩阵为增广矩阵的方程组为
\begin{equation*}
\left\{\begin{array}{ccc}
x & & =2,\\
& y & =1,
\end{array}\right.
\end{equation*}
因此,原方程组有唯一解 \(\left\{\begin{array}{l}
x=2,\\
y=1.
\end{array}\right.\)
结合上例及其它的例子,可知在用Gauss消去法求解线性方程组过程中,我们反复用到了下面三种操作:
交换两个方程的顺序;
将一个方程两端同时乘以一个非0常数;
将一个方程加上另一个方程两端同时乘以一个常数。
这三种操作都不改变线性方程组的解。
这三种操作对应到矩阵上,相当于对增广矩阵做了下面三种操作:
行互换变换:交换矩阵的两行;
行倍法变换:将矩阵的一行乘以非0常数\(c\);
行消法变换:将矩阵的第\(j\)行加上矩阵的第\(i\)行乘以常数\(c\)。
称这三种变换为矩阵的初等行变换。
定义 2.4.2.
称对单位矩阵\(E_n\)做一次初等行变换得到的矩阵称为初等矩阵。
特别地,
称交换单位矩阵\(E_n\)的第\(i\)、\(j\)两行所得的矩阵为互换矩阵,记作\(E(i,j)\);
称将单位矩阵\(E_n\)的第\(i\)行乘以非0常数\(c\)所得的矩阵为倍法矩阵,记作\(E(i(c))\);
称将单位矩阵\(E_n\)的第\(j\)行加上第\(i\)行乘与常数\(c\)乘积所得的矩阵为消法矩阵,记作\(E(i,j(c))\)。
Sage中可以用下面的命令获得初等矩阵。
子节 2.4.2 初等矩阵与矩阵乘法
矩阵乘法的一个神奇之处在于:对矩阵做初等行变换可以用“左”乘初等矩阵实现。我们先来看几个具体的例子。
例 2.4.3. 初等矩阵的乘法.
设\(A=\begin{pmatrix}
2 & 5 & -1\\
1 & 2 & 3\\
4 & 7 & 5
\end{pmatrix}\),计算 \(E(1,3)A,E(2(-1))A,E(1,2(-3))A\)。
解答.
\begin{equation*}
E(1,3)A=\begin{pmatrix}
4 & 7 & 5\\
1 & 2 & 3\\
2 & 5 & -1
\end{pmatrix},
\end{equation*}
\begin{equation*}
E(2(-1))A=\begin{pmatrix}
2 & 5 & -1\\
-1 & -2 & -3\\
4 & 7 & 5
\end{pmatrix},
\end{equation*}
\begin{equation*}
E(1,2(-3))A=\begin{pmatrix}
-1 & -1 & -10\\
1 & 2 & 3\\
4 & 7 & 5
\end{pmatrix}.
\end{equation*}
定理 2.4.4.
设\(A\)是任意给定的一个\({n\times k}\)阶矩阵。则对\(A\)做一次初等行变换等价于左乘相应的初等矩阵。
证明.
以下不妨设\(i< j\)。
将\(E(i,j)\)按行分块,则
\begin{equation*}
E(i,j)A=\begin{array}{c}
\phantom{\varepsilon_j^T}\\
\\
\mbox{第}i\mbox{行}\\
\phantom{\varepsilon_j^T}\\
\mbox{第}j\mbox{行}\\
\\
\\
\end{array}\left(\begin{array}{c}
\varepsilon_1^T\\
\vdots\\
\varepsilon_j^T\\
\vdots\\
\varepsilon_i^T\\
\vdots\\
\varepsilon_n^T
\end{array}\right)
A=\left(\begin{array}{c}
\varepsilon_1^TA\\
\vdots\\
\varepsilon_j^TA\\
\vdots\\
\varepsilon_i^TA\\
\vdots\\
\varepsilon_n^TA
\end{array}\right).
\end{equation*}
由
例 2.3.5知
\(\varepsilon_l^TA\)表示
\(A\)的第
\(l\)行,因此
\(E(i,j)A\)相当于把
\(A\)的第
\(i\)、
\(j\)两行互换,其余行不变。
将\(E(i(c))\)按行分块,则
\begin{equation*}
E(i(c))A=\begin{pmatrix}
\varepsilon_1^T\\
\vdots\\
\varepsilon_{i-1}^T\\
c\varepsilon_i^T\\
\varepsilon_{i+1}^T\\
\vdots\\
\varepsilon_n^T
\end{pmatrix}A=\begin{pmatrix}
\varepsilon_1^TA\\
\vdots\\
\varepsilon_{i-1}^TA\\
c\varepsilon_i^TA\\
\varepsilon_{i+1}^TA\\
\vdots\\
\varepsilon_n^TA
\end{pmatrix}
\end{equation*}
相当于用\(c\)乘\(A\)的第\(i\)行,其余行不变。
将\(E(i,j(c))\)按行分块,则
\begin{equation*}
E(i,j(c))A=\begin{array}{c}
\phantom{\varepsilon_j^T}\\
\\
\mbox{第}i\mbox{行}\\
\phantom{\varepsilon_j^T}\\
\mbox{第}j\mbox{行}\\
\\
\\
\end{array}\left(\begin{array}{c}
\varepsilon_1^T\\
\vdots\\
\varepsilon_i+c\varepsilon_j^T\\
\vdots\\
\varepsilon_j^T\\
\vdots\\
\varepsilon_n^T
\end{array}\right)
A=\left(\begin{array}{c}
\varepsilon_1^TA\\
\vdots\\
\varepsilon_iA+c\left(\varepsilon_j^TA\right)\\
\vdots\\
\varepsilon_j^TA\\
\vdots\\
\varepsilon_n^TA
\end{array}\right)
\end{equation*}
相当于把\(A\)的第\(j\)行的\(c\)倍加到第\(i\)行,其余行不变。
借助下面的sage程序片段,可以验证上述结论。
直接用矩阵乘法计算公式计算初等矩阵与其它矩阵的乘积是不划算的,当计算初等矩阵与其它矩阵相乘时,我们通常直接使用初等变换来帮助计算。
例 2.4.5.
求\(E(1,3)^{2024}A\),其中
\begin{equation*}
A = \begin{pmatrix}
1 & 2 & 3 & 4 \\
5 & 6 & 7 & 8 \\
-1 & 0 & 1 & 2
\end{pmatrix}
\end{equation*}
解答.
\(E(1,3)^{2024}A\)相当于把\(A\)的第\(1\)、\(3\)两行互换\(2024\)次,因此
\begin{equation*}
E(1,3)^{2024}A=A=\begin{pmatrix}
1 & 2 & 3 & 4 \\
5 & 6 & 7 & 8 \\
-1 & 0 & 1 & 2
\end{pmatrix}.
\end{equation*}
子节 2.4.3 用初等行变换/矩阵化简矩阵
Gauss消去法本质上可以等同与先用初等行变换化简增广矩阵,然后对化简所得方程组进行求解。下面我们来讨论矩阵用初等行变换化简之后的可能结果。
我们先来定义一种有典型结构特点的矩阵。
定义 2.4.6.
举例来说,下面两个矩阵中的第1个矩阵是阶梯型矩阵,其主元是\(1,2,-1\);第2个矩阵不是阶梯形矩阵,因为第3行主元的列指标不超过第2行主元的列指标。
\begin{equation*}
\begin{pmatrix}
1 & 2 & 1 & 2\\
0 & 2 & -3 & 0\\
0 & 0 & 0 &-1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{pmatrix}\quad\quad \begin{pmatrix}
1 & 2 & 1 & 2\\
0 & 2 & -3 & 0\\
0 & 1 & 0 &-1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{pmatrix}
\end{equation*}
若我们在阶梯形矩阵的每个非0行主元左侧画一条竖线,然后用水平线段将这这些竖线依次连接起来,可以构成一条阶梯形折线,在这条折线下方矩阵的元素都为0,这是阶梯型矩阵的直观特征,如下图所示。
以阶梯型矩阵为增广矩阵的线性方程组解是好求的。
例 2.4.8.
求解线性方程组\(\left\{\begin{array}{rl}
x_1 +2x_2 +x_3 +2x_4 &=1,\\
2x_2 -3x_3 +x_4 &=2,\\
x_3 +x_4 &=0.
\end{array}\right.\)
解答.
对方程组的增广矩阵自下而上施行行初等变换化为阶梯型矩阵:
\begin{equation*}
\begin{array}{c}
\left(\begin{array}{cccc:c}
1 & 2 & 1 & 2 & 1\\
0 & 2 & -3 & 1 & 2\\
0 & 0 & 1 & 1 & 0
\end{array}\right)\xrightarrow{\begin{array}{c}r_2+3r_3\\r_1-r_3\end{array}}\left(\begin{array}{cccc:c}
1 & 2 & 0 & 1 & 1\\
0 & 2 & 0 & 4 & 2\\
0 & 0 & 1 & 1 & 0
\end{array}\right)\\
\xrightarrow{\frac{1}{2}r_2}\left(\begin{array}{cccc:c}
1 & 2 & 0 & 1 & 1\\
0 & 1 & 0 & 2 & 2\\
0 & 0 & 1 & 1 & 0
\end{array}\right)\xrightarrow{r_1-2r_2}\left(\begin{array}{cccc:c}
1 & 0 & 0 & -3 & -3\\
0 & 1 & 0 & 2 & 2\\
0 & 0 & 1 & 1 & 0
\end{array}\right),
\end{array}
\end{equation*}
以最后一个矩阵为增广矩阵的方程组为
\begin{equation*}
\left\{\begin{array}{ccccl}
x_1 & & &-3x_4 &=-3,\\
& x_2 & &+2x_4 &=2,\\
& & x_3 &+x_4 &=0,\\
\end{array}\right.
\end{equation*}
因此方程组有无穷多解:
\begin{equation*}
\left\{\begin{array}{l}
x_1=3x_4-3,\\
x_2=-2x_4+2,\\
x_3=-x_4,
\end{array}\right.
\end{equation*}
其中\(x_4\)可取任意常数。
下面说明任意一个矩阵都可以经过一系列初等行变换变成阶梯型矩阵,这个过程相当于Gauss消去法的矩阵描述。
定理 2.4.9.
设\(A\)是任意给定的矩阵,则存在初等矩阵\(P_1,\dots,P_k\),使得\(P_k\cdots P_1A\)是阶梯型矩阵。
上述证明是一个算法式证明,有兴趣的同学可以实现一下相关代码。下面来看一个具体的算例。
例 2.4.10.
一个矩阵变成阶梯型矩阵的过程并不唯一,结果也不唯一。请同学们思考:这一变化过程中,什么是不变的?