矩阵乘法和逆矩阵-线性代数课时3(MIT Linear Algebra , Gilbert Strang)

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

        这是Strang教授的第三讲,讲解的内容是矩阵乘法和矩阵的逆。矩阵乘法在前面已经使用过,本节课教授只是集中细致的讲解矩阵乘法满足的定律和几种计算矩阵乘法的方法,矩阵的逆是本节课的重要内容。

矩阵乘法

        首先介绍矩阵运算的条件和满足的运算规律,矩阵可以做加法运算和乘法运算。 

        加法运算条件: 矩阵A和B大小一样,加法运算满足3条定律:

        A+B = B+A        交换律

        c(A+B) = cA + cB   分配律

        A + (B + C) = (A +B) +C 结合律

        乘法运算条件:矩阵A(mxn)的列数等于矩阵B(nxp)的行数,AB(mxp),乘法运算满足下面3条定律:

        C(A+B) = CA +CB        左分配律

        (A+B)C = AC +BC        右分配律

        A(BC) = (AB)C              结合律 

        下面介绍计算5种方法,以A(mxn),B(nxp)为例:

方法1:

        采用内积的方式,内积的思想:AB的第i行j列个元素(AB)_{ij} =A的第i行·B的第j列:

        \begin{bmatrix} * & & & \\ a_{i1}&a_{i2} &... &a_{in} \\ *& & & \\ * & & & \end{bmatrix}\begin{bmatrix} * &* &b_{1j} &* \\ & & b_{2j} & \\ & & ...& \\ & & b_{nj}& \end{bmatrix}= \begin{bmatrix} & &* & \\ *& * & (AB)_{ij} &* \\ & & *& \\ & & *& \end{bmatrix}

        (AB)_{ij} =\sum_{k=1}^{n}a_{ik}b_{kj}

方法2:

        列方法,使用列方法包含着一个重要的思想:AB中的每个列向量都是A中列向量的线性组合,线性组合的系数是B中的各个列向量。还记得Ax=b这个表达式吧,当时就说了Ax的结果理解成A中列向量的线性组合,列方法表达式:

        A\begin{bmatrix} col_{1} of B &col_{2} of B& ... &col_{n} of B \end{bmatrix} = \begin{bmatrix} A(col_{1} of B) & A(col_{2} of B) &... & A(col_{p} of B) \end{bmatrix} 其中:

        A(col_{p} of B) = B_{1p}(col_{1} of A)+B_{2}(col_{2} of A)+ ...+B_{np}(col_{m} ofA)

        举例:

        \begin{bmatrix} 2 &2 &2 &2 \\ 2 &2 &2 &2 \\ 2 &2 & 2 &2\\ 2& 2& 2 & 2 \end{bmatrix}\begin{bmatrix} 1 & 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1 \end{bmatrix}=\begin{bmatrix} 8 & 8 & 8 &8 \\ 8 & 8 & 8 & 8\\ 8 & 8 & 8 & 8\\ 8&8 &8 &8 \end{bmatrix}

        A(col_{1} of B)=1\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}+1\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}+ 1\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}+ 1\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}=\begin{bmatrix} 8\\ 8\\ 8\\ 8 \end{bmatrix}

方法3:

        行方法,有了列方法,就自然会想到行方法,行方法的思想和列方法类似:AB中的每个行向量都是B中行向量的线性组合。行方法的表达式:

        \begin{bmatrix} row_{}1 of A}\\ row_{2} of A\\ ...\\ row_{m} of A\end{bmatrix} B = \begin{bmatrix} (row_{1} of A) B\\ (row_{2} of A) B\\ ...\\ (row_{m} of A) B \end{bmatrix}其中:

        (row_{m} of A)B=A_{m1}(row_{1} of B) + A_{m2}(row_{2} of B)+...+A_{mn}(row_{n} of B)

        举例:

        \begin{bmatrix} 2 &2 &2 &2 \\ 2 &2 &2 &2 \\ 2 &2 & 2 &2\\ 2& 2& 2 & 2 \end{bmatrix}\begin{bmatrix} 1 & 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1 \end{bmatrix}=\begin{bmatrix} 8 & 8 & 8 &8 \\ 8 & 8 & 8 & 8\\ 8 & 8 & 8 & 8\\ 8&8 &8 &8 \end{bmatrix}

(row_{1} of A)B=2\begin{bmatrix} 1 & 1 & 1 & 1 \end{bmatrix}+2\begin{bmatrix} 1 & 1 & 1 & 1 \end{bmatrix}+2\begin{bmatrix} 1 & 1 & 1 & 1 \end{bmatrix}+2\begin{bmatrix} 1 & 1 & 1 & 1 \end{bmatrix}=\begin{bmatrix} 8 & 8 & 8 &8 \end{bmatrix}

方法4:

        列x行方法,A的列等于B的行,我们考虑AB的运算能否才成n个(A的列xB的行),再将结果相加的形式,答案是可以的,你可以观察到B的第一行的元素永远只会和A的第一列的元素进行计算(推广到B的第k行永远只会和A的第k列进行计算),根据这一点事实,可以将AB写成如下计算表达式:

        AB=(col_1 of A)(row_{1} of B)+(col_2 of A)(row_{2} of B)+...+(col_n of A)(row_{n} of B)

        举例:

        \begin{bmatrix} 2 &2 &2 &2 \\ 2 &2 &2 &2 \\ 2 &2 & 2 &2\\ 2& 2& 2 & 2 \end{bmatrix}\begin{bmatrix} 1 & 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1 \end{bmatrix}=\begin{bmatrix} 8 & 8 & 8 &8 \\ 8 & 8 & 8 & 8\\ 8 & 8 & 8 & 8\\ 8&8 &8 &8 \end{bmatrix}

        AB=\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}\begin{bmatrix} 1 &1 &1 &1 \end{bmatrix}+\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}\begin{bmatrix} 1 &1 &1 &1 \end{bmatrix}+\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}\begin{bmatrix} 1 &1 &1 &1 \end{bmatrix}+\begin{bmatrix} 2\\ 2\\ 2\\ 2 \end{bmatrix}\begin{bmatrix} 1 &1 &1 &1 \end{bmatrix}=

        \begin{bmatrix} 2 &2 &2 &2 \\ 2 & 2 & 2 &2 \\ 2 & 2 & 2 & 2\\ 2 & 2 & 2 & 2 \end{bmatrix}+ \begin{bmatrix} 2 &2 &2 &2 \\ 2 & 2 & 2 &2 \\ 2 & 2 & 2 & 2\\ 2 & 2 & 2 & 2 \end{bmatrix}+ \begin{bmatrix} 2 &2 &2 &2 \\ 2 & 2 & 2 &2 \\ 2 & 2 & 2 & 2\\ 2 & 2 & 2 & 2 \end{bmatrix}+ \begin{bmatrix} 2 &2 &2 &2 \\ 2 & 2 & 2 &2 \\ 2 & 2 & 2 & 2\\ 2 & 2 & 2 & 2 \end{bmatrix}= \begin{bmatrix} 8 &8 &8 &8 \\ 8 & 8 & 8 &8 \\ 8 & 8 & 8 & 8\\ 8 & 8 & 8 & 8 \end{bmatrix}

方法5:

        分块乘法,分块乘法所蕴含的思想是将原先比较大的两个矩阵A和B切成列和行相等的小的矩阵,用小的矩阵做乘法运算,小的矩阵快可以看做原来矩阵的元素,举例说明这种思想和它的运算:加入将A分成2x2的4个矩阵块,将B也划分成2x2的矩阵块,那么分块乘法:

        \begin{bmatrix} A_{11} &A_{12} \\ A_{21} &A_{22} \end{bmatrix} \begin{bmatrix} B_{11} &B_{12} \\ B_{21} &B_{22} \end{bmatrix}= \begin{bmatrix} A_{11}B_{11}+A_{12}B_{21} &A_{11}B_{12}+A_{12}B_{22} \\ A_{21}B_{11}+A_{22}B_{21} &A_{21}B_{12}+A_{22}B_{22} \end{bmatrix}

        A_{11},A_{12},A_{21},A_{22}B_{11},B_{12},B_{21},B_{22}的划分要满足矩阵乘法列等于行的条件,从上面的计算结果可知,分块乘法分块之后的矩阵元素还是矩阵,但我们可以用方法1-方法4对分块矩阵进行计算,在对A_{11}B_{11}这样小的矩阵做矩阵乘法计算,最终得到结果。

        举例:

        \begin{bmatrix} 2 &2 &2 &2 \\ 2 &2 &2 &2 \\ 2 &2 & 2 &2\\ 2& 2& 2 & 2 \end{bmatrix}\begin{bmatrix} 1 & 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1\\ 1& 1 & 1 & 1 \end{bmatrix}=\begin{bmatrix} 8 & 8 & 8 &8 \\ 8 & 8 & 8 & 8\\ 8 & 8 & 8 & 8\\ 8&8 &8 &8 \end{bmatrix}

        A=\begin{bmatrix} 2 &2 &2 &2 \\ 2 &2 &2 &2 \\ 2 &2 & 2 &2\\ 2& 2& 2 & 2 \end{bmatrix}=\begin{bmatrix} A_{11}=\begin{bmatrix} 2 &2 \\ 2 & 2 \end{bmatrix} & A_{12}=\begin{bmatrix} 2 &2 \\ 2 & 2 \end{bmatrix}\\ A_{21}=\begin{bmatrix} 2 &2 \\ 2 & 2 \end{bmatrix}& A_{12}=\begin{bmatrix} 2 &2 \\ 2 & 2 \end{bmatrix} \end{bmatrix}

        B=\begin{bmatrix} 1 &1 &1 &1 \\ 1 &1 &1 &1 \\ 1 &1 & 1 &1\\ 1& 1& 1 & 1 \end{bmatrix}=\begin{bmatrix} B_{11}=\begin{bmatrix} 1 &1 \\ 1 & 1 \end{bmatrix} & B_{12}=\begin{bmatrix} 1 &1 \\ 1 & 1 \end{bmatrix}\\ B_{21}=\begin{bmatrix} 1 &1 \\ 1 & 1 \end{bmatrix}& B_{12}=\begin{bmatrix} 1 &1 \\ 1 & 1 \end{bmatrix} \end{bmatrix}

        A_{11}B_{11}+A_{12}B_{21},A_{11}B_{12}+A_{12}B_{22},A_{21}B_{11}+A_{22}B_{21},A_{12}B_{12}+A_{22}B_{22}:

        \begin{bmatrix} 2 &2 \\ 2 &2 \end{bmatrix} \begin{bmatrix} 1 &1 \\ 1 &1 \end{bmatrix}+ \begin{bmatrix} 2 &2 \\ 2 &2 \end{bmatrix} \begin{bmatrix} 1 &1 \\ 1 &1 \end{bmatrix}=\begin{bmatrix} 4 & 4\\ 4 & 4 \end{bmatrix}+\begin{bmatrix} 4 & 4\\ 4 & 4 \end{bmatrix}=\begin{bmatrix} 8 & 8\\ 8 & 8 \end{bmatrix}

        根据上面的公式,AB:

        \begin{bmatrix} A_{11}B_{11}+A_{12}B_{21} &A_{11}B_{12}+A_{12}B_{22} \\ A_{21}B_{11}+A_{22}B_{21} &A_{21}B_{12}+A_{22}B_{22} \end{bmatrix}=\begin{bmatrix} 8 & 8 & 8 & 8\\ 8 & 8 & 8 &8 \\ 8 & 8& 8 & 8\\ 8 & 8 & 8 & 8 \end{bmatrix}

矩阵的逆

        本节课里讨论的逆有个基本前提:针对方阵做讨论。矩阵的逆有点类似于代数里面的倒数,A^{-1}所做的事情总是抵消A所做的事情,像代数0没有倒数一样,并不是所有矩阵都有逆矩阵,矩阵的逆比倒数复杂有趣很多,首先给出一个定义:

        如果A矩阵(方阵)可逆,那么:AA^{-1}=A^{-1}A=I.

        关于矩阵的逆,给出几点性质:

        性质1:矩阵A的逆存在的充分必要条件是对矩阵A消元得到n个主元。这个性质比较好理解,对于Ax=b,在前面教授讲解消元法时知道当我们消元能得到n个主元是,这时候Ax=b有唯一解,而这个唯一解就是A^{-1}b

        性质2:矩阵A不存在两个不同的逆。

        性质3:如何矩阵A可逆,Ax=b存在唯一解A^{-1}b。证明:A^{-1}Ax = b =>x=A^{-1}b

        性质4:如果Ax=0,存在非0解,则A不可逆。

        这条性质证明很简单,因为x=A^{-1}b,而这里b=0 ,然而没有矩阵能把0变换为非0的x。 但这条性质却揭示了一条总要的结论:对于不可逆矩阵(奇异矩阵),它的列向量通过线性组合能够得到0向量;想反的,对于可逆矩阵,它的列向量通过线性组合不能得到0向量。

        性质5:2x2矩阵,可你的充分必要条件是ad-bc不等于0,且:

        \begin{bmatrix} a & b\\ c & d \end{bmatrix}^{-1}= \frac{1}{ad-bc}\begin{bmatrix} d & -b\\ -c & a \end{bmatrix}  ,其实ad-bc是2x2矩阵的行列式,在第5章后面会学到,矩阵可逆的条件是行列式不为0.

        性质6:对角矩阵如果对角线上不存在0,那么它存在逆矩阵,并且:

        If A= \begin{bmatrix} d_{1} & & \\ & ... & \\ & &d_{n} \end{bmatrix} then A^{-1}=\begin{bmatrix} \frac{1}{d_{1}} & & \\ & ... & \\ & &\frac{1}{d_{n}} \end{bmatrix}

        性质7:如果两个矩阵A和B的逆都存在且大小一样,那么AB的逆存在,且 (AB)^{-1}=B^{-1}A^{-1}

        性质8:(A^{-1})^{T}=(A^{T})^{-1},因为AA^{-1}=I=>(AA^{-1})^{T}=I=>(A^{-1})^{T}A^{T}=I=>(A^{-1})^{T}=(A^{T})^{-1}

高斯-若尔当(Gauss-Jordan)思想

        矩阵的逆并不是那么容易求取的,虽然我们有x=A^{-1}b,但很多情况下我们并不需要去求解它,使用消元法往往来得更快捷,那么我们如果确实需要明确的得到A^{-1}的时候,怎么办呢?高斯-若何当消元法提供了一种途径,它的思想就是求n个线性方程组Ax_{j}=I_{j},x_{j}A^{-1}的第j列,I_{j}I的第j列,这其实是AA^{-1}=I的矩阵乘法按列方法计算展开的方式,对n个线性方程组进行消元得到A^{-1}的所有列x_{j}。在消元的过程中,对Jordan对高斯消元法的结果做了进一步的消元,到底怎么做的呢?举个例子说明,使用增广矩阵将n个线性方程组的消元过程放到一起:

        \begin{bmatrix} A & I_{1} & I_{2} &I_{3} \end{bmatrix}=

        \begin{bmatrix} 2 & -1 &0 & 1 & 0 & 0\\ -1 & 2 & -1 & 0 & 1 & 0\\ 0 & -1 & 2 & 0 & 0 & 1 \end{bmatrix}\overset{row(2)+0.5row(1)}{\rightarrow} \begin{bmatrix} 2 & -1 &0 & 1 & 0 & 0\\ -0 & 3/2 & -1 & 0 & 1 & 0\\ 0 & -1 & 2 & 0 & 0 & 1 \end{bmatrix}

        \overset{row(3)+2/3row(2)}{\rightarrow} \begin{bmatrix} 2 & -1 &0 & 1 & 0 & 0\\ -0 & 3/2 & -1 & 0 & 1 & 0\\ 0 & 0 & 4/3 & 1/3 & 2/3 & 1 \end{bmatrix}

        按高斯消元法的思想,这里到这里回代就可以求出A^{-1}了,可能Jordan想,那我们对消元再进一步,将A矩阵消元得到的U上三角部分通过行变换变为一个对角矩阵,继续消元步骤:

        \overset{3/4row(3)+row(2)}{\rightarrow} \begin{bmatrix} 2 & -1 &0 & 1 & 0 & 0\\ -0 & 3/2 & 0 & 3/4 & 3/2 & 3/4\\ 0 & 0 & 4/3 & 1/3 & 2/3 & 1 \end{bmatrix}

        \overset{2/3row(2)+row(1)}{\rightarrow} \begin{bmatrix} 2 & 0 &0 & 3/2 & 1 & 1/2\\ -0 & 3/2 & 0 & 3/4 & 3/2 & 3/4\\ 0 & 0 & 4/3 & 1/3 & 2/3 & 1 \end{bmatrix}

        我们再将对角矩阵的对角线元素都变换为1,就得到了完整的高斯-若尔当消元结果:

        \begin{bmatrix} 1 & 0 & 0 & 3/4 & 1/2 & 1/4 \\ 0& 1 & 0 & 1/2 & 1 & 1/2\\ 0& 0& 1 & 1/4 & 1/2 &3/4 \end{bmatrix} = \begin{bmatrix} I & x_{1} & x_{2} &x_{3} \end{bmatrix}=\begin{bmatrix} I & A^{-1} \end{bmatrix}

        所以,

        A^{-1}=\begin{bmatrix} 3/4 & 1/2 & 1/4\\ 1/2 & 1 & 1/2\\ 1/4& 1/2 &3/4 \end{bmatrix}

        总结一下高斯-若尔当思想:同时考虑n个n阶方程组,利用消元法求解,根据消元法的矩阵表示,等价于在增广矩阵[A I]左乘上矩阵一个矩阵E,E[A I] = [EA EI] =[I E],EA =I,表明这里左乘的矩阵E就是A^{-1},所以得到得到[I A^{-1}],也就是消元之后的增广列构成的矩阵就是A^{-1}.

        再次强调一点,教授这里讲的矩阵的逆均是针对于方阵而言,而只有方正的左逆和右逆是相等的。对于矩阵的逆,教授在后面的课程(第34讲)还会介绍更加细致的介绍,主要是介绍左逆和右逆的情况。

        内容对应《INTRODUCTION TO LINEAR ALGEBRA》2.4 - 2.5章节 

猜你喜欢

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