线性代数(二)矩阵消元 博客分类: 数学 线性代数
这一讲涉及的东西并不包括“行列式”(几乎所有的大学一上来都是先讲行列式吧),下面主要讨论的是“消元法”
(所有计算机程序用到的也都是这样的方法)
消元法的核心是“矩阵变化”
只要矩阵是个“好矩阵”那么“消元法”就应该能奏效,当然我们就会涉及到什么情况矩阵是个“好矩阵”
这一讲将会用矩阵的概念描绘”消元法“,同时也会讨论矩阵的运算也就是矩阵的乘法 ;
先来看一个方程以及矩阵:
上面是3个方程、3个未知数,AX等于右侧向量(2,12,2),我们先将等号左边的部分变化成矩阵:
现在来谈谈什么是消元,比如我们要干掉第二个方程的X,应该怎么做?
可以这样做,将第一行乘以某个数,而后用第二行去减,第二行的X就被消去了,那么我们来试试
首先第一行的第一个数(这里是1)是消元的关键,被称为主元
第一行不做任何变化,因为它是主元行,照写就可以了,现在考虑第二行,如何消去X,
我们是这样做的,用3乘以第一行,然后用第二行去减第一行,则第二行的X就消去了,
之后写出第二行剩余的数字,这里第3行还没有涉及,照写就可以了,同时第一行记住是不变的。
新的结果:
(进行到这里,是否有人会问“等号右边的那一堆东西去哪里了?“,这个现在不用着急,一会再去处理)
继续上面的问题,接下来应该考虑将第三行第一个数字变成0,不过这个已经是个0了,所以就不用再处理了
现在考虑主元二(什么是主元?主元是每一行第一个不为0的数字),第二行的第二个数字是主元二,也就是
2,那么我们要消去的数字是多少呢?要消除的数字是第三行第二个数字,也就是4,如何消除?第二行乘以2,而后第三行减去第二行,则可以消去4,那么我们写出最新的结果
以上是3个主元,也是最新的结果,这是个新的矩阵,用U表示,那么以上所进行的消元
就是为了从矩阵A得到矩阵U(这是计算可以最普片的计算)
这里要明确,主元是不能为0的!
现在来讨论一个问题,什么时候消元法对于矩阵会失效?也就是说什么样的矩阵,用消元法就不灵了?
失效有几种情况:
1:如果第一行的第一个数字就为0,那么就麻烦了,没法继续了,怎么办?其实只要将其他的行交换个位置就可以了。
2:再比如把第二行第二个数字换成6,也就麻烦了,因为这样一减主元又变成0了,怎么办?继续换行
3:但是如果第三行第三个数字变成了-4,那问题就大了,因为没办法再换行了,这个用消元法就失效了
(这种情况我们会是矩阵是不可逆的)
以上说明行交换可以解决主元为0的”暂时性失效“,但当底下的行中再也没有非0元素时,消元法就彻底失效了。
现在我们来讨论下一个主题”回代“,这就需要将方程组等号右边的数考虑进来了,看下图
最终的方程为:
x + 2y + z = 2
2y - 2z = 6
5z = -10
也就是Ux=c
那么接下来就是开始代入,首先z = -2,然后代入第二个方程,得到y = 1,最后代入方程一,得到x = 2
到这里,本讲的第一部分就结束了。
什么?还有第二部分?的确,将会引入矩阵,现在要用矩阵来描述这些变换,这就引入”消元矩阵“的概念
在上一讲中,我们谈到了矩阵与列向量的乘法,现在来明确另一个概念”矩阵与行向量的乘法“:
这要用向量的方式去思考,这其实是向量和行的线性组合。
那么继续回答到之前的问题,现在我们需要一个矩阵,这个矩阵乘以已知矩阵,已知矩阵就会像之前所描述的那样”第二行减去第一行乘以3“后形成的矩阵
这时要根据”矩阵与行向量“的运算法则来思考,这时我们得出:
这就是那个矩阵,它的目的是使得第二行的第一个元素3变成了0,这个矩阵也被称之为E
(被称为初等矩阵或者消元矩阵的首字母,也就是E和)
现在我们要解决的,要把它想办法消掉,下图就是表示这个问题:
还是用同样的方法,得到:
到此消元结束了,我们要将这些步骤综合起来:
下面再讲一些矩阵乘法的重要性质,将上面的等式变形,写成这样:
也就是说两个初等矩阵相乘再乘以A就可以得到结果了,矩阵可以应用结合律,但是不能应用交换律。
矩阵乘法的相乘顺序是不能改变的,矩阵A乘以矩阵B不等于矩阵B乘以矩阵A。
逆矩阵引言,现在思考的不是A如何变成U,而是U如何变成A.
下面将进行讨论”行逆变换“,
这里先记住下面的变形即可(思考这样的问题,之前总说的是,比如第一行乘以某个数,然后第二行在减去第一行,现在反着思考这个问题,第二行加上第一行)
上一篇: Java有效处理异常的三个原则
下一篇: ubuntu18.04安装docker