本节是网易公开课上的麻省理工大学线性代数课程第二节:矩阵消元 的学习笔记。
本节将讨论 消元法 来求解线性方程组。
线性方程组的系数矩阵如果是一个好的矩阵(good matrix)可以使用消元法来得到结果,否则无法得到结果。消元完成后,使用 回代 就可以得到方程组的解。
需要求解的方程组如下:
x + 2y + z = 2
3x + 8y + z = 12
4y + z = 2
方程组使用矩阵可以表示为 Ax = b :
思考一个问题,方程一乘以多少,然后用方程二减去它能够将方程二的系数 x 消去。用矩阵语言描述即系数矩阵 A 的第一行乘以多少,然后用第二行减去它能够使得第二行第一列的元素为0。这里将系数矩阵 A 的第一个元素(1)称为主元,与方程中的 x 系数对应。 乘以的这个数称为消元乘数。
很简单,我们将第一行乘以3,然后用第二行减去它,就能够将 第二行第一列的元素变为0。
这里我们将矩阵的第二行第一列的元素((2,1)
)变为了0,所以使用 (2,1)
作为这一步的代号。下一步我们需要将第三行第一列变为0,代号为 (3,1)
。很幸运的是,我们发现它已经是0了。以上的操作都是针对主元一来进行的,即保留第一个方程的系数 x ,将第二个和第三个方程的系数 x 都消去。
接下来我们要操作的是主元二,即保留第一个和第二个方程的系数 y ,将第三个方程的系数 y 都消去。对应到矩阵中的操作为将第三行第二列的元素变为0,代号为 (3,2)
。操作过程为将第二行乘以多少,然后用第三行减去它,将第三行第二列元素变为0。答案很明显,消元乘数为2。
经过上面的操作,我们得到了一个新的上三角矩阵,我们称它为矩阵 U。它的对角线表示所有主元,主元之积(1 * 2 * 5 = 10
)为它的行列式。消元的目的是为了根据系数矩阵 A 计算出 矩阵 U。
注意:主元不能为0。
什么情况下消元会失效呢?失效在这里是指不能得到三个主元。
主元为0,不代表主元永远是0。如果主元为0,可以使用行交换,来重新得到一个主元。
例如,如果将原始的系数矩阵 A 中的第二行第二列元素由8改为6,这样经过第一步操作后得到如下结果:
这时候,主元二为0,但是我们可以考虑将第二行和第三行进行交换,就可以解决这个问题。但是有时候主元下面的位置也为0,就没法通过这种方式解决了。例如将原始系数矩阵 A 的第三行第三列改为-4。
这时候,主元三为0,也就是说不存在主元三,矩阵因此不可逆。可逆矩阵是之后的一节内容,这里先简单的提下。
行交换可以解决主元为0的“暂时性失效”问题,但是当底下的行也没有非0元素时,消元就彻底失效了。
之前讨论的都只是系数矩阵 A 的变换,可以想象,在对方程进行消元时,右侧向量也会发生变化。如果把右侧向量加入到系数矩阵中会得到一个新的矩阵,称为增广矩阵。按照之前的逻辑,现在对增广矩阵进行变换。
右侧向量 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。即求出等式中的最左边矩阵。
[1,0,0]
和
[0,0,1]
。
然后求出第二行。
(3,2)
的过程。即求出初等矩阵
E32 。这儿不讲求解过程,直接给出结果。
上面的过程用可以表示为:
如果我想一次性将 A 变换为 U,有没有好的办法呢? 即
我们可以使用矩阵的结合律来搞定,即:
如果如果矩阵 A 乘以矩阵 I 的结果还是矩阵 A,或者矩阵 I 乘以矩阵 A 的结果为矩阵 A。则矩阵 I 称为单位矩阵。单位矩阵的主对角线为1,其余位置为0。例如一个二阶单位矩阵:
置换矩阵的作用是将矩阵的行或者列进行交换,
变换行,例如: