您的位置:首页 > 其它

线性代数:矩阵消元

2017-03-04 17:30 295 查看
消元法
消元失效

回代

消元矩阵

扩展
单位矩阵

置换矩阵

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

消元法

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

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

需要求解的方程组如下:

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


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

⎡⎣⎢130284111⎤⎦⎥⎡⎣⎢xyz⎤⎦⎥=⎡⎣⎢2122⎤⎦⎥

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

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

⎡⎣⎢130284111⎤⎦⎥→row2=row2−3row1⎡⎣⎢1002241−21⎤⎦⎥

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

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

⎡⎣⎢1002241−21⎤⎦⎥→row3=row3−2row2⎡⎣⎢1002201−25⎤⎦⎥

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

注意:主元不能为0。

消元失效

什么情况下消元会失效呢?失效在这里是指不能得到三个主元。

主元为0,不代表主元永远是0。如果主元为0,可以使用行交换,来重新得到一个主元。

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

⎡⎣⎢130264111⎤⎦⎥→row2=row2−3row1⎡⎣⎢1002041−21⎤⎦⎥

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

⎡⎣⎢13028411−4⎤⎦⎥→row2=row2−3row1⎡⎣⎢1002241−2−4⎤⎦⎥→row3=row3−2row1⎡⎣⎢1002201−20⎤⎦⎥

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

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

回代

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

⎡⎣⎢130284111|||2122⎤⎦⎥→row2=row2−3row1⎡⎣⎢1002241−21|||262⎤⎦⎥→row3=row3−2row2⎡⎣⎢1002201−25|||26−10⎤⎦⎥

右侧向量 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⎤⎦⎥=⎡⎣⎢1002241−21⎤⎦⎥

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


⎡⎣⎢100001⎤⎦⎥⎡⎣⎢130284111⎤⎦⎥=⎡⎣⎢1002241−21⎤⎦⎥

然后求出第二行。

⎡⎣⎢1−30010001⎤⎦⎥⎡⎣⎢130284111⎤⎦⎥=⎡⎣⎢1002241−21⎤⎦⎥

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

⎡⎣⎢10001−2001⎤⎦⎥⎡⎣⎢1002241−21⎤⎦⎥=⎡⎣⎢1002201−25⎤⎦⎥

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

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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息