矩阵消元-线性代数课时2(MIT Linear Algebra , Gilbert Strang)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wanhongluli/article/details/82787880

        这是Strang教授的第二讲,讲解了求线性方程组的一种系统方法:消元法(Gaussian elimination),它的核心思想是行变换。本课时的几个核心知识点:消元、回代、消元过程的矩阵描述和逆矩阵。

消元

        消元的思想在解线性方程组的过程中出现得很自然,并不需要很多技巧和复杂的公式,我们在中学时代就已经使用过。以3个未知数、3个方程的线性方程组为例,介绍消元的过程:

        \left\{\begin{matrix} x+2y+z=2\\ 3x+8y+z=12\\ 0x+4y+z=2 \end{matrix}\right.

        我们求解上面的线性方程组的做法,用第一个方程消去第二个方程中的x,得到只包含未知数y,z的方程二,再用新得到的第二方程消去去第三个方程中的y得到只包含未知数z的第三个方程,这就是消元的基本思想。我们一Ax=b记录消元的过程:

        \begin{bmatrix} 1 & 2 & 1\\ 3 & 8 & 1\\ 0 & 4 & 1 \end{bmatrix}\begin{bmatrix} 2\\ 12\\ 2 \end{bmatrix}\overset{r(2)-3r(1)}{\rightarrow} \begin{bmatrix} 1 & 2 & 1\\ 0 & 2 & -2\\ 0 & 4 & 1 \end{bmatrix}\begin{bmatrix} 2\\ 6\\ 2 \end{bmatrix}\overset{r(3)-2r(2)}{\rightarrow} \begin{bmatrix} 1 & 2 & 1\\ 0 & 2 & -2\\ 0 & 0 & 5 \end{bmatrix}\begin{bmatrix} 2\\ 6\\ -10 \end{bmatrix} 

        将上面消元之后的系数矩阵记为U,U有一些特点,可以观察到它的对角线下方的元素全为0,这也是为什么用大写字母U标记的原因,U代表Upper,是一个上三角矩阵,消元之后的右侧向量记为c,我们消元之后得到新的方程组的矩阵表示即为Ux=c,方程组:

        \left\{\begin{matrix} x+2y+z=2\\ 0x+2y-2z=6\\ 0x+0y+5z=-10 \end{matrix}\right.

        可以看到我们在消元过程中要对矩阵A和向量b同时进行相同的行变换(可以理解为行向量的线性组合),那么可不可以将矩阵A和向量b放在一起一次计算完成变换呢,答案就是采用增广矩阵,将向量b看作A的一列得到新的矩阵[A b],新的矩阵就叫做增广矩阵,后面对变换过程用矩阵表示之后,通过矩阵乘法性质可以得出对A和b单独变换的结果等同于对矩阵[A b]做变换的结果,这里写一下增广矩阵表示消元的过程:

        \begin{bmatrix} 1 & 2 & 1& 2\\ 3 & 8 & 1 &12\\ 0 & 4 & 1 &2 \end{bmatrix}\overset{r(2)-3r(1)}{\rightarrow} \begin{bmatrix} 1 & 2 & 1&2\\ 0 & 2 & -2&6\\ 0 & 4 & 1&2 \end{bmatrix}\overset{r(3)-2r(2)}{\rightarrow} \begin{bmatrix} 1 & 2 & 1 &2\\ 0 & 2 & -2 &6\\ 0 & 0 & 5 &-10 \end{bmatrix}

        这里还有一个重要的知识点没记录,那就是主元(pivot),得到的矩阵U上对角线上的元素1,2,5就是我们例子中3x3系统中的3个主元,我们给主元编号从行1到行3,主元1(1)、主元2(2)、主元3(5)。有了主元的概念,我们可以这样重新理解上面消元的过程:1、我们首先选择A的第一行的第一个元素作为主元1,将主元1下方不为0的元素通过减去主元1的倍数使得主元1下方的元素都为0,当然这里的加法和倍数是怎对A的整个行向量而不是行向量中的第一个元素,同时也要对向量b做同样的变换,这样就完成了针对主元1的消元过程.2、同样选择第二行的第二列的元素作为主元2,通过同样的方式将主元2下方的元素变换为0.3、同理是选择在第三行第三列的元素作为主元3,这里是一个3x3的系统,主元3下方没有其它元素,所以不做任何操作。主元是一个很重要的概念,后面要学习矩阵的行列式,行列式的值就等于主元的乘积。这里有个重要的原则:消元过程中主元不能为0,如果取得某一行的主元为0,可以通过和它下方的行交换的方式来暂时规避。

回代

        我们消元的目的是求解线性方程组,回代可以看作是消元的逆步骤,通过消元我们得到了新的,系数矩阵具有上三角特性的线性方程组,我们从系数矩阵最下方的方程组开始首先求得第3列的未知数z=-10/5=-2,继而求得y=1,最后求得x=2。回代的过程会将主元作为分母,这为什么主元不能为0的原因。

消元过程的矩阵描述

        这里一个重要的事实,对矩阵进行行变换是可以通过左乘矩阵实现的(或者叫做等价于在矩阵左侧乘上一个特殊的变换矩阵)。消元过程的矩阵描述也即是上面校园过程中的r(2)-3r(1),r(3)-2r(2)这些代数表达转换为矩阵的形式,虽然只是换了一种表达方式,但是这很重要,它使我们能够完全使用矩阵运算完成消元过程。

        Step1. r(2)-3r(1) ,记左侧矩阵E_{21},表示通过主元1消第2行不为0元素.

        \begin{bmatrix} 1 &0 &0 \\ -3& 1 &0 \\ 0& 0 &1 \end{bmatrix}\begin{bmatrix} 1 & 2 & 1& 2\\ 3 & 8 & 1 &12\\ 0 & 4 & 1 &2 \end{bmatrix}\overset{r(2)-3r(1)}{\rightarrow} \begin{bmatrix} 1 & 2 & 1&2\\ 0 & 2 & -2&6\\ 0 & 4 & 1&2 \end{bmatrix}

        Step2. r(3)-2r(2),记左侧矩阵E_{32}.

        \begin{bmatrix} 1 &0 &0 \\ 0& 1 &0 \\ 0& -2 &1 \end{bmatrix}\begin{bmatrix} 1 & 2 & 1& 2\\ 0 & 2 & -2 &6\\ 0 & 0 & 5 &2 \end{bmatrix}\overset{r(2)-3r(1)}{\rightarrow} \begin{bmatrix} 1 & 2 & 1&2\\ 0 & 2 & -2&6\\ 0 & 4 & 1&-10 \end{bmatrix}

        Step1、Step2合并可写做:E_{32}(E_{21}\begin{bmatrix} A & b \end{bmatrix} )= \begin{bmatrix} U & c \end{bmatrix}E_{32}(E_{21}A)=UE_{32}(E_{21}b) = c

     这里要用到一个矩阵乘法的性质:结合律A(BC) = (AB)C,根据这条性质,我们可以改写上面的结果表达式:(E_{32}E_{21})\begin{bmatrix} A & b \end{bmatrix} = \begin{bmatrix} U & c \end{bmatrix}(E_{32}E_{21})A=U(E_{32}E_{21})b = c,表明我们可以用单个矩阵(E_{32}E_{21})完成我们的整个消元过程。

        上面描述了完整的消元过程,但我们有意识的忽略了一个问题:消元什么时候会失败?这个问题和主元的性质有关,这条性质就是主元不允许为0,分为3种情况:1.方程组无解,这时候我们消元过程中会得到矩阵底部的方程主元为0,等式右侧值不为0,这种情况我们可以判断方程无解;2.方程有无数解,这是后我们消元过程中会得到矩阵底部的方程主元为0,等式右侧值也为0,表明底部主元乘上的未知数可以取任意值;3.方程组有解,但是在通过矩阵消元的过程中碰到选取的行主元已经为0,这时我们可以通过调换主元所在的行与它下侧的行将主元变换成非0,完成这种变换的矩阵叫置换矩阵,举例:

        \begin{bmatrix} 1 &0 &0 \\ 0& 0 &1 \\ 0& 1 & 0 \end{bmatrix}\begin{bmatrix} 1 &2 &1 \\ 0& 2 &-2 \\ 0& 4 & 1 \end{bmatrix} = \begin{bmatrix} 1 &2 &1 \\ 0& 4 &1 \\ 0& 2 & -2 \end{bmatrix}

        \begin{bmatrix} 1 &0 &0 \\ 0& 0 &1 \\ 0& 1 & 0 \end{bmatrix}就是所谓的置换矩阵,它置换了\begin{bmatrix} 1 &2 &1 \\ 0& 2 &-2 \\ 0& 4 & 1 \end{bmatrix}的第2、3行。

逆矩阵

        教授在本节课中最后几分钟讲了一点关于逆矩阵的知识,我还是将其记录下来。思考一个问题我们通过E_{32}(E_{21}A)得到了上三角矩阵得到了U,那么如何通过U得到A呢?这就是逆矩阵为我们要做的事情(看过教授后面的视频知道,这最终会引出A的一个重要分解LU)。我们知道单位矩阵I乘上任何矩阵,矩阵保持原样,若我们得到一个矩阵E_{21}^{-1},使得E_{21}^{-1}E_{21}=I,那么E_{21}^{-1}(E_{21}A)=A成立,也就是将矩阵E_{21}A通过左乘E_{21}^{-1}变换为了矩阵A,E_{21}^{-1}就是矩阵E_{21}的逆矩阵, E_{21}^{-1}

        \begin{bmatrix} 1 &0 &0\\ 3 &1 & 0\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 &0 &0\\ -3 &1 & 0\\ 0 & 0 & 1 \end{bmatrix}= \begin{bmatrix} 1 &0 &0\\ 0 &1 & 0\\ 0 & 0 & 1 \end{bmatrix}

        这里A由U的变换可写成A=E_{21}^{-1}E_{32}^{-1}U,推导很简单,只需要将U=E_{32}(E_{21}A)代入即可,关于逆矩阵的知识教授在课时3的视频中会详细介绍。

        内容对应《INTRODUCTION TO LINEAR ALGEBRA》2.2 - 2.3章节

        

猜你喜欢

转载自blog.csdn.net/wanhongluli/article/details/82787880