1. 逆矩阵的补充
定理:
a . 如果存在矩阵A可逆,那么A-1也是可逆的,并且
( A − 1 ) − 1 = A (A^{-1})^{-1}=A (A−1)−1=A
b . 如果矩阵A和B为可逆的方阵,那么AB也是一样的,并满足
( A B ) − 1 = B − 1 A − 1 (AB)^{-1}=B^{-1}A^{-1} (AB)−1=B−1A−1
c . 如果存在矩阵A可逆,那么AT也可逆,并满足
( A − 1 ) T = ( A T ) − 1 (A^{-1})^T=(A^T)^{-1} (A−1)T=(AT)−1
前两个定理验证起来非常容易,所以在此不多赘述
对于c的验证,我们可以用到转置矩阵的定理:
证(c):
由 ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT,可得
( A − 1 ) T A T = ( A A − 1 ) T = I T = I (A^{-1})^TA^T=(AA^{-1})^T=I^T=I (A−1)TAT=(AA−1)T=IT=I
即 A T ( A − 1 ) T = A T ( A T ) − 1 = I T = I A^T(A^{-1})^T= A^T(A^T)^{-1}=I^T=I AT(A−1)T=AT(AT)−1=IT=I
得证
( A − 1 ) T = ( A T ) − 1 (A^{-1})^T=(A^T)^{-1} (A−1)T=(AT)−1
2. 矩阵的LU分解
2.1 定义
先前我们已经学习通过消元法求出上三角矩阵U(Upper Triangular Matrix),而接下来将引入LU分解的概念。这个方法可以让我们找出下三角矩阵L(Lower Triangular Matrix)
对于一个矩阵A,将它分解成
A = L U A=LU A=LU
的形式就是LU分解。
其中U为上三角矩阵,其主对角线元素均为主元;L为下三角矩阵,其主对角线均为1。
注意:LU分解的前提是矩阵A是可逆的,且不需要行交换。
2.2 求矩阵L
下面将通过示例演示,对于可LU分解的矩阵,我们如何得出矩阵L。
示例 1:
设有矩阵 A = [ 2 1 8 7 ] A=\left[ \begin{matrix} 2 & 1\\ 8 & 7\\ \end{matrix} \right] A=[2817],进行消元得
E 21 A = [ 1 0 − 4 1 ] [ 2 1 8 7 ] = [ 2 1 0 3 ] (1) E_{21}A= \left[ \begin{matrix} 1 & 0\\ -4 & 1\\ \end{matrix} \right] \left[ \begin{matrix} 2 & 1\\ 8 & 7\\ \end{matrix} \right] \text{=} \left[ \begin{matrix} 2 &1\\ 0 & 3\\ \end{matrix} \right] \tag{1} E21A=[1−401][2817]=[2013](1)
即 U = [ 2 1 0 3 ] U=\left[ \begin{matrix} 2&1\\ 0&3\\ \end{matrix} \right] U=[2013]
对于这个矩阵,我们只需一次消元就可以得到上三角矩阵U,得出了矩阵U,就可以通过计算得出矩阵L。
因为 A = L U A=LU A=LU,得
A = [ 2 1 8 7 ] = [ 1 0 4 1 ] [ 2 1 0 3 ] (2) A=\left[ \begin{matrix} 2 & 1\\ 8 & 7\\ \end{matrix} \right]= \left[ \begin{matrix} 1 & 0\\ 4 & 1\\ \end{matrix} \right] \left[ \begin{matrix} 2 & 1\\ 0 & 3\\ \end{matrix} \right] \tag{2} A=[2817]=[1401][2013](2)
即 L = [ 1 0 4 1 ] L=\left[ \begin{matrix} 1&0\\ 4&1\\ \end{matrix} \right] L=[1401]
可以知道,对于矩阵A的LU分解,我们可以先通过消元求出矩阵U,然后得出矩阵L。
2.3 矩阵L和消元矩阵E的关系
对例1中的
E
21
A
=
U
E_{21}A=U
E21A=U,两端同时左乘
E
21
−
1
E_{21}^{-1}
E21−1,可以看到消元矩阵的逆E-1即下三角矩阵L。
示例 2:
对3X3的矩阵A,我们需要依次消去 E 21 E 31 E 32 E_{21}E_{31}E_{32} E21E31E32:
两端同时逆序的左乘各消元矩阵的逆,可得出矩阵L。
注意:
虽然有定理
(
A
B
)
−
1
=
B
−
1
A
−
1
(AB)^{-1}=B^{-1}A^{-1}
(AB)−1=B−1A−1,但不可以通过先算消元矩阵的乘积再取逆得到矩阵L。
可以看到如果先计算消元矩阵的乘积,那么得到矩阵E的左下角为10。
另外,对于上面的例子我们可以看到,矩阵L的元素是由各消元矩阵中的因子组成的。
2.4 LDU分解
在LU分解的基础上,我们可以进一步的将矩阵分解,即
A = L U = L D U A=LU=LDU A=LU=LDU
其中D为对角线矩阵,该矩阵是由上三角矩阵U分解出的。
例:
对(2)式,我们可以进一步将它分解成
[ 2 1 8 7 ] = [ 1 0 4 1 ] [ 2 1 0 3 ] = [ 1 0 4 1 ] [ 2 0 0 3 ] [ 1 1 2 0 1 ] \begin{aligned} \left[ \begin{matrix} 2&1\\ 8&7\\ \end{matrix} \right]&= \left[ \begin{matrix} 1&0\\ 4&1\\ \end{matrix} \right] \left[ \begin{matrix} 2&1\\ 0&3\\ \end{matrix} \right]\\ &= \left[ \begin{matrix} 1&0\\ 4&1\\ \end{matrix} \right] \left[ \begin{matrix} 2&0\\ 0&3\\ \end{matrix} \right] \left[ \begin{matrix} 1&\frac{1}{2}\\ 0&1\\ \end{matrix} \right] \end{aligned} [2817]=[1401][2013]=[1401][2003][10211]
其中 D = [ 2 0 0 3 ] , U = [ 1 1 2 0 1 ] D= \left[ \begin{matrix} 2&0\\ 0&3\\ \end{matrix} \right] , U= \left[ \begin{matrix} 1&\frac{1}{2}\\ 0&1\\ \end{matrix} \right] D=[2003],U=[10211].
可以看到,分解后对角线矩阵D的主对角线元素均为主元,而上三角矩阵U的主对角线元素变为了1。
3. 矩阵消元的计算复杂度
对于nXn的矩阵A,我们要计算出矩阵U,那么它的计算复杂度是 O ( n 3 ) O( n^3) O(n3)。
示例 3:
假设有100X100的矩阵A,我们第一步消元就是将主元一下方的所有元素都变为0,把一个元素的消元看作是将第一行100个元素乘一个数,再和另一个元素所在行相减,那么第一步的计算量大致是1002次,
第一步消元看作操作100X100的矩阵,第二步操作99X99的矩阵
这样的操作需要执行100次,那么消元过程中,对于A中的每一个元素的计算大致为1003次。
如果是增广矩阵,消元后还需要进行回代,回代的计算复杂度是 O ( n 2 ) O(n^2) O(n2),那么总计算复杂度为 O ( n 3 ) + O ( n 2 ) = O ( n 3 ) O(n^3)+O(n^2)=O(n^3) O(n3)+O(n2)=O(n3)。