线性代数:矩阵消元

  • 消元法
    • 消元失效
    • 回代
    • 消元矩阵
  • 扩展
    • 单位矩阵
    • 置换矩阵

本节是网易公开课上的麻省理工大学线性代数课程第二节:矩阵消元 的学习笔记。

消元法

本节将讨论 消元法 来求解线性方程组。

线性方程组的系数矩阵如果是一个好的矩阵(good matrix)可以使用消元法来得到结果,否则无法得到结果。消元完成后,使用 回代 就可以得到方程组的解。

需要求解的方程组如下:

 x + 2y + z = 2
3x + 8y + z = 12
     4y + z = 2

方程组使用矩阵可以表示为 Ax = b

130284111xyz=2122

思考一个问题,方程一乘以多少,然后用方程二减去它能够将方程二的系数 x 消去。用矩阵语言描述即系数矩阵 A 的第一行乘以多少,然后用第二行减去它能够使得第二行第一列的元素为0。这里将系数矩阵 A 的第一个元素(1)称为主元,与方程中的 x 系数对应。 乘以的这个数称为消元乘数。

很简单,我们将第一行乘以3,然后用第二行减去它,就能够将 第二行第一列的元素变为0。

130284111row2=row23row1100224121

这里我们将矩阵的第二行第一列的元素((2,1))变为了0,所以使用 (2,1) 作为这一步的代号。下一步我们需要将第三行第一列变为0,代号为 (3,1)。很幸运的是,我们发现它已经是0了。以上的操作都是针对主元一来进行的,即保留第一个方程的系数 x ,将第二个和第三个方程的系数 x 都消去。

接下来我们要操作的是主元二,即保留第一个和第二个方程的系数 y ,将第三个方程的系数 y 都消去。对应到矩阵中的操作为将第三行第二列的元素变为0,代号为 (3,2)。操作过程为将第二行乘以多少,然后用第三行减去它,将第三行第二列元素变为0。答案很明显,消元乘数为2。

100224121row3=row32row2100220125

经过上面的操作,我们得到了一个新的上三角矩阵,我们称它为矩阵 U。它的对角线表示所有主元,主元之积(1 * 2 * 5 = 10)为它的行列式。消元的目的是为了根据系数矩阵 A 计算出 矩阵 U

注意:主元不能为0。

消元失效

什么情况下消元会失效呢?失效在这里是指不能得到三个主元。
主元为0,不代表主元永远是0。如果主元为0,可以使用行交换,来重新得到一个主元。

例如,如果将原始的系数矩阵 A 中的第二行第二列元素由8改为6,这样经过第一步操作后得到如下结果:

130264111row2=row23row1100204121

这时候,主元二为0,但是我们可以考虑将第二行和第三行进行交换,就可以解决这个问题。但是有时候主元下面的位置也为0,就没法通过这种方式解决了。例如将原始系数矩阵 A 的第三行第三列改为-4。

130284114row2=row23row1100224124row3=row32row1100220120

这时候,主元三为0,也就是说不存在主元三,矩阵因此不可逆。可逆矩阵是之后的一节内容,这里先简单的提下。

行交换可以解决主元为0的“暂时性失效”问题,但是当底下的行也没有非0元素时,消元就彻底失效了。

回代

之前讨论的都只是系数矩阵 A 的变换,可以想象,在对方程进行消元时,右侧向量也会发生变化。如果把右侧向量加入到系数矩阵中会得到一个新的矩阵,称为增广矩阵。按照之前的逻辑,现在对增广矩阵进行变换。

130284111|||2122row2=row23row1100224121|||262row3=row32row2100220125|||2610

右侧向量 b 经过消元后的结果为一个向量 [2,6,10]
,该向量称为 向量 c

将变换后的增广矩阵转为方程:

 x + 2y +  z = 2
     2y - 2z = 6
          5z = -10

该方程表示为矩阵形式为 Ux=c

根据方程三求出 z=-2,将 z=-2 带入方程二中,求出y=1,将 z=-2,y=1 带入方程一种,求出 x=2

消元矩阵

之前已经使用矩阵表示了消元的过程,但是它只是一种简化版,想要真正使用矩阵进行消元,需要学习下面的知识。即使用矩阵乘以矩阵来得到消元后的矩阵。

现在要做的是使用矩阵来完成上面代号为 (2,1) 的过程,即将第二行第一列的元素变为0。即求出等式中的最左边矩阵。

130284111=100224121

观察下,只需要改变第二行就可以了。所以要求的矩阵的第一行和第二行分别为 [1,0,0][0,0,1]
100001130284111=100224121

然后求出第二行。

130010001130284111=100224121

求出的这个矩阵称为初等矩阵,记为 E21 。现在我们要使用矩阵来求除代号为 (3,2) 的过程。即求出初等矩阵 E32 。这儿不讲求解过程,直接给出结果。
100012001100224121=100220125

上面的过程用可以表示为:

E32(E21A)=U

如果我想一次性将 A 变换为 U,有没有好的办法呢? 即

?A=U

我们可以使用矩阵的结合律来搞定,即:

(E32E21)A=U

扩展

单位矩阵

如果如果矩阵 A 乘以矩阵 I 的结果还是矩阵 A,或者矩阵 I 乘以矩阵 A 的结果为矩阵 A。则矩阵 I 称为单位矩阵。单位矩阵的主对角线为1,其余位置为0。例如一个二阶单位矩阵:

[1001]

置换矩阵

置换矩阵的作用是将矩阵的行或者列进行交换,
变换行,例如:

[0110][acbd]=[cadb]

变换列:
[acbd][0110]=[bdac]

你可能感兴趣的:(线性代数)