A的LU分解-线性代数课时4(MIT Linear Algebra , Gilbert Strang)

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

        这是Strang教授的第四讲,讲解的内容是矩阵的LU分解,LU分解是线性代数中矩阵的一个重要分解,它将原矩阵分解成一个下三角阵和一个上三角阵的乘积形式,L和U源于字母Lower和Upper。矩阵的LU分解在教授讲解矩阵消元过程中就已经初见端倪了(矩阵消元-线性代数课时2(MIT Linear Algebra , Gilbert Strang)。

A=LU

        A=LU分解是高斯消元的逆过程,高斯消元互换等式两端表达式的位置就是U=EA,E是消元矩阵,在不考虑行变换的情况下,对于2阶矩阵E=E_{21},对于3阶矩阵E=E_{32}E_{31}E_{21},高斯消元过程参考:矩阵乘法和逆矩阵-线性代数课时3(MIT Linear Algebra , Gilbert Strang)。将U=EA等式两端同时乘上E^{-1}得到E^{-1}U=A,将E^{-1}改写成L就是A的LU分解。

        同样还是以2阶矩阵和3阶矩阵为例,写一下L的表达式。对于2阶矩阵L=E_{21}^{-1},对于3阶矩阵L=E_{21}^{-1}E_{31}^{-1}E_{32}^{-1},至于表达式为什么是这样,请参考《矩阵乘法和逆矩阵-线性代数课时3(MIT Linear Algebra , Gilbert Strang)》矩阵的逆性质7。

        那么我们为什么对A=LU感兴趣,而不是U=EA呢?要回答这个问题,我们最好从例子入手说明,假设3阶矩阵A,我们对A的消元过程中得到:

        E_{21}=\begin{bmatrix} 1 & 0 &0 \\ -2& 1 &0\\ 0 & 0 &1 \end{bmatrix}E_{31}=\begin{bmatrix} 1 & 0 &0 \\ 0& 1 &0 \\ 0& 0 &1 \end{bmatrix}E_{32}=\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 &0 \\ 0& -5 &1 \end{bmatrix}

        E_{21}^{-1}=\begin{bmatrix} 1 & 0 &0 \\ 2& 1 &0\\ 0 & 0 &1 \end{bmatrix}E_{31}^{-1}=\begin{bmatrix} 1 & 0 &0 \\ 0& 1 &0 \\ 0& 0 &1 \end{bmatrix}E_{32}^{-1}=\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 &0 \\ 0& 5 &1 \end{bmatrix}

        那么:

        E=E_{32}E_{21}=\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 &0 \\ 0& -5 &1 \end{bmatrix}\begin{bmatrix} 1 & 0 &0 \\ -2& 1 &0\\ 0 & 0 &1 \end{bmatrix}=\begin{bmatrix} 1 & 0 &0 \\ -2& 1 &0\\ 10 & -5 &1 \end{bmatrix}

        L=E_{21}^{-1}E_{32}^{-1}=\begin{bmatrix} 1 & 0 &0 \\ 2& 1 &0\\ 0 & 0 &1 \end{bmatrix}\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 &0 \\ 0& 5 &1 \end{bmatrix}=\begin{bmatrix} 1 & 0 &0 \\ 2& 1 &0\\0 & 5 &1 \end{bmatrix}

        对比上面两个表达式,你会发现L矩阵有一个很好的性质:L矩阵可以通过将E^{'}s矩阵对角线下方的元素直接放到L矩阵对应的位置得到,而E矩阵并不具有这样的性质,在例子中E矩阵在(3,1)位置处产生了一个10,而它并不存在于E_{21},E_{31},E_{32}的对角线一下的元素中。而这个性质对n阶的矩阵都成立。为什么L和E看似相同的表达式(E_{ij}E{ij}^{-1}只是将(i,j)位置的数符号取反),一个具有良好的性质,而另外一个不令人满意呢?答案就在消元矩阵E_{ij}的特点(对角线元素为1,第j列下方元素某个元素(第i个)不为0,其余元素均为0)和矩阵乘法的顺序上。

        还是以上面3x3矩阵的例子说明为什么,高斯消元是从第一列开始到第n列结束,这决定了E_{32}E_{31}E_{21}的矩阵乘法顺序,这里E_{31}在我门的例子中假设为单位阵所以直接考虑E_{32}E_{21}相乘,我们用矩阵乘法的列方法解释E_{21}^{-1}E_{32}^{-1}的过程(列方法参考《矩阵乘法和逆矩阵-线性代数课时3(MIT Linear Algebra , Gilbert Strang)》),E的列等于E_{21}^{-1}列向量的线性组合:

        列1: 1·(1,2,0)+ 0·(0,1,0)+ 0·(0,0,1)

        列2:0·(1,2,0)+ 1·(0,1,0)+ 5·(0,0,1)

        列3:0·(1,2,0)+ 0·(0,1,0)+ 1·(0,0,1)

        首先观察列1和列3,他们和E_{21}的列1和列3相等,因为对E_{32}来说第而列前面的列和后面的列对角线上下都为0,所以对于列2之外的列都会取E_{21}对应的列作为相乘之后的结果。对于列2,首先E_{32}对角线元素为1,相当取去了E_{21}的第2列作为列向量线性组合的一个相加项,对于对角线下的5正好在L的第(3,2)位置引入元素5。这个推理对n阶的的L推理都成立,因为从矩阵乘法右边的矩阵E_{ij}第j列前后的列始终只有对角线上取值为1,所以它始终会保持左边矩阵的1-(j-1)和(j+1)-n列不变,而将E_{ij}地(i,j)位置的元素直接引入到结果中去。

A=LDU

        U矩阵是一个上三角矩阵,将U矩阵分解成下面的形式:

        Split - U - into - \begin{bmatrix} d_{1} & & & \\ & d_{2}& & \\ & & ... & \\ & & &d_{n} \end{bmatrix}\begin{bmatrix} 1 & u_{12}/d_{1} & u_{13}/d_{1} & ...\\ & 1& u_{23}/d_{2} &... \\ & & ... & \\ & & &1 \end{bmatrix}

         一个对角矩阵用D表示和一个对角线为1的上三角矩阵还是用U表示,A=LU可以写成A=LDU。

A的LU分解求解Ax=b

        有了LU分解之后,我们对Ax=b的求解可以转化为下面的两个方程组的顺序求解:

        Ax=b  <=>   Lc=b ,Ux=c     

        为什么求解Ax=b 等价于求解Lc=b ,Ux=呢?将Ux=c等式左右两边同时左乘上L,回发现LUx=Lc就是Ax=b。你会发现求解Lc=b ,Ux=c都不再需要消元了,因为L是一个下三角矩阵,U是一个上三角矩阵,我们只需要通过回代就能求得x

         内容对应《INTRODUCTION TO LINEAR ALGEBRA》2.6章节。

猜你喜欢

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