
2.1.2 初等变换
矩阵中的元素排列成了行或者列,我们可以对行或者列施以如下操作:
● 互换两行(列):,(
表示行;
表示列,下同)
● 用一个非零数乘以一行(列):,(
表示一个常数)
● 一行(列)的倍加到另一行(列):
这些操作称为矩阵的初等行(列)变换(Elementary Row/Column Operations),统称为矩阵的初等变换。例如,要对矩阵进行初等变换,如下所示。
(1)初等变换(表示行):
,得:

(2)初等变换:,得:

(3)初等变换:,得:

(4)初等变换:,得:

(2.1.1)
经过一系列初等变换之后,最终得到了(2.1.1)式的矩阵。观察这个矩阵的形态,它具有如下特点:
● 零行(即元素都是的行,如果有的话)在矩阵的最下方;
● 每个非零行的第一个元素,如、
、
,称为这个矩阵的主元(pivot),主元位置下方的元素都是
。
具有上述特点的矩阵,称为阶梯形矩阵。再如,矩阵也是阶梯形矩阵,其主元分别是1、
、16。
对(2.1.1)式矩阵还可继续进行初等变换:
(5)初等变换:,得:

(6)初等变换:,得:

(7)初等变换:,得:

(2.1.2)
现在得到的矩阵仍然是阶梯形矩阵,此外,它还具有以下特点:
● 主元都是;
● 每个主元所在的列的其余元素都是,
具有这些特点的阶梯形矩阵称为简化阶梯形矩阵(Reduced Rowechelon Form,RREF)。
阶梯形矩阵和简化阶梯形矩阵,将在解线性方程组中有广泛应用(参阅2.4.2节)。
我们特别关注对单位矩阵所进行的初等变换,为此专门定义了初等矩阵。
单位矩阵经过一次初等变换而得到的矩阵,称为初等矩阵(Elementary Matrix)。
例如单位矩阵,经初等变换之后所得的初等矩阵主要有以下三种形态:
● 两行互换,例如互换第
行和第
行:
● 某行乘以非零数,例如第行乘以
:
● 某行乘以一个数加到另一行,例如第行乘以
,然后加到第
行:
如果仅仅用以上概念说明初等矩阵,并没有体现出它的用途。在2.1.5节矩阵乘法中,我们就能看到初等矩阵的一项应用了。
在2.1.1节已经用NumPy中的二维数组表示过矩阵,也可以用np.mat()创建矩阵对象,其实,在Python体系中,还有很多与科学计算相关的库提供了创建矩阵的方法,比如SymPy。

输出结果:

这样创建的就是矩阵对象,而不是用二维数组表示的矩阵。这个矩阵对象中提供了一个rref()方法,通过它能够得到此矩阵的简化阶梯形矩阵及其主元。
