MIT线性代数笔记Lecture3-Lecture4

Lecture3 矩阵乘法与逆

1. 矩阵乘法及其5种方式

  • 1. 对于结果矩阵中的特定元素单个计算(entry)
    假定矩阵乘法为:
    A B = C AB = C AB=C
    A m × n , B n × s A_{m\times n},B_{n\times s} Am×n,Bn×s时矩阵可乘(内标相同),且得到结果 C m × s C_{m\times s} Cm×s
    C中 i i i j j j列的元素为:
    C i , j = ( R o w   i   o f A ) ⋅ ( C o l u m n   j   o f B ) = ∑ k = 1 n a i k b k j C_{i,j} = (Row \ i \ of A)\cdot(Column \ j \ of B)=\sum_{k=1}^n a_{ik}b_{kj} Ci,j=(Row i ofA)(Column j ofB)=k=1naikbkj
  • 2,3. 整行和整列去考虑
    可以将 B B B的列当成向量单独考虑, A A A乘以 B B B的每个列向量构成新矩阵 C C C的每个列。即 C C C的每一列是 A A A中列向量的线性组合。
    同理 A A A的每一行乘以 B B B构成 C C C的每一行。即 C C C中的每行为 B B B中行向量的线性组合。
  • 4. 用A的列乘以B的行
    A B = s u m   o f { ( C o l u m n s   o f   A ) ⋅ ( R o w s   o f   B ) } AB = sum \ of \{(Columns \ of \ A)\cdot(Rows \ of \ B)\} AB=sum of{(Columns of A)(Rows of B)}
    A中的列向量与B中的行向量相乘会得到一个 m × s m\times s m×s的矩阵。将其组合相加可以得到 A B AB AB
  • 5.利用矩阵分块
    只要将矩阵的大小按照符合乘法规则的要求来划分,可以得到:
    A B = [ A 1 ∣ A 2 − − − A 3 ∣ A 4 ] ⋅ [ B 1 ∣ B 2 − − − B 3 ∣ B 4 ] = [ A 1 B 1 + A 2 B 3 ∣ A 1 B 2 + A 2 B 4 − − − − − − − − − − − − A 3 B 1 + A 4 B 3 ∣ A 3 B 2 + A 4 B 4 ] AB= \begin{bmatrix} A_1&|&A_2\\ -&-&-\\ A_3&|&A_4\\ \end{bmatrix}\cdot \begin{bmatrix} B_1&|&B_2\\ -&-&-\\ B_3&|&B_4\\ \end{bmatrix}= \begin{bmatrix} A_1B_1+A_2B_3&|&A_1B_2+A_2B_4\\ -----&--&-----\\ A_3B_1+A_4B_3&|&A_3B_2+A_4B_4\\ \end{bmatrix} AB=A1A3A2A4B1B3B2B4=A1B1+A2B3A3B1+A4B3A1B2+A2B4A3B2+A4B4

2. 矩阵的逆(inverse)

只有方阵才存在逆。
A A − 1 = A − 1 A = I AA^{-1} = A^{-1}A = I AA1=A1A=I
若一个矩阵存在逆,称其可逆(invertible)或非奇异(non-singular)矩阵的左逆和右逆相等,均表示为 A − 1 A^{-1} A1

  • 矩阵的可逆性
    A = [ 1 3 2 6 ] A = \begin{bmatrix} 1&3\\ 2&6\\ \end{bmatrix} A=[1236]不可逆,因为找不到 A A A的列的线性组合得到列向量 [ 1 0 ] \begin{bmatrix} 1\\ 0\\ \end{bmatrix} [10]( I I I的第一列)。
    判断矩阵是否可逆的一种方法:
    如果可以找到非零向量 x x x,使得 A x = 0 Ax = 0 Ax=0成立,则矩阵不可逆。
    因为如果此时 A A A可逆将等式两边乘以 A − 1 A^{-1} A1,得到 x = 0 x=0 x=0
    所以,若矩阵列向量的非零线性组合可以得到零向量,矩阵不可逆。
  • 矩阵逆的求法
    假设 A A A的逆存在,如何求 A − 1 A^{-1} A1?
    举个例子:
    A = [ 1 3 2 7 ]      求 A − 1 A = \begin{bmatrix} 1&3\\ 2&7\\ \end{bmatrix} \ \ \ \ 求A^{-1} A=[1237]    A1
    假设 A − 1 = [ a c b d ] A^{-1} = \begin{bmatrix} a&c\\ b&d\\ \end{bmatrix} A1=[abcd],可以设立方程:
    [ 1 3 2 7 ] [ a c b d ] = [ 1 0 0 1 ] \begin{bmatrix} 1&3\\ 2&7\\ \end{bmatrix} \begin{bmatrix} a&c\\ b&d\\ \end{bmatrix}= \begin{bmatrix} 1&0\\ 0&1\\ \end{bmatrix} [1237][abcd]=[1001]
    Gaussian-Jordan:Solve 2 equals at once
    { [ 1 3 2 7 ] [ a b ] = [ 1 0 ] [ 1 3 2 7 ] [ c d ] = [ 0 1 ] → [ 1 3 ∣ 1 0 2 7 ∣ 0 1 ] \begin{cases} \begin{bmatrix} 1&3\\ 2&7\\ \end{bmatrix} \begin{bmatrix} a\\ b\\ \end{bmatrix}= \begin{bmatrix} 1\\ 0\\ \end{bmatrix}\\\\ \begin{bmatrix} 1&3\\ 2&7\\ \end{bmatrix} \begin{bmatrix} c\\ d\\ \end{bmatrix}= \begin{bmatrix} 0\\ 1\\ \end{bmatrix}\\ \end{cases}\rightarrow \begin{bmatrix} 1&3&|&1&0\\ 2&7&|&0&1\\ \end{bmatrix} [1237][ab]=[10][1237][cd]=[01][12371001]
    首先写出上述方程增广矩阵形式,再使用Lecture2中提到的elimination进行消元,最终左侧将得到单位阵 I I I
    [ 1 3 ∣ 1 0 2 7 ∣ 0 1 ] → [ 1 3 ∣ 1 0 0 1 ∣ − 2 1 ] → [ 1 0 ∣ 7 − 3 0 1 ∣ − 2 1 ] \begin{bmatrix} 1&3&|&1&0\\ 2&7&|&0&1\\ \end{bmatrix}\rightarrow \begin{bmatrix} 1&3&|&1&0\\ 0&1&|&-2&1\\ \end{bmatrix}\rightarrow \begin{bmatrix} 1&0&|&7&-3\\ 0&1&|&-2&1\\ \end{bmatrix} [12371001][10311201][10017231]
    对于以上方式的理解为相当于将单位阵的每个列单独看做一个向量 b b b,该向量可视作 A A A中的列的线性组合(矩阵乘法的第二种方式),之后对于每一列解它线性组合对应的系数就相当于解 A x = b Ax=b Ax=b的一个过程,可以使用消元法。而对每个列的消元的过程可以合并起来(因为都是初等行变换)。
    另一种理解是: A A A经过的初等行变换可以看做乘以一系列的 E E E矩阵,详见上节消元法的介绍,当 A A A经过初等行变换变为 I I I的时候,这一系列的 E E E相乘就相当于乘以 A − 1 A^{-1} A1 ,此时将 I I I作同样的变换,相当于乘以一系列的 E E E最终的结果是变为 A − 1 A^{-1} A1

Lecture4 矩阵的LU分解

这节课的总的目标是以一种更高阶的方式去审视高斯消元。

1. 上节课没讲完的关于逆的小问题

  • AB的逆
    假设 A , B A,B A,B均可逆, ( A B ) − 1 = B − 1 A − 1 (AB)^{-1}=B^{-1}A^{-1} (AB)1=B1A1
    因为 ( A B ) ( B − 1 A − 1 ) = I (AB)(B^{-1}A^{-1})=I (AB)(B1A1)=I(乘法满足结合律)
  • A转置的逆
    ( A T ) − 1 = ( A − 1 ) T (A^T)^{-1}=(A^{-1})^T (AT)1=(A1)T
    因为 ( A A − 1 ) T = I ⇒ ( A − 1 ) T A T = I (AA^{-1})^T=I \Rightarrow (A^{-1})^TA^T=I (AA1)T=I(A1)TAT=I

2. 矩阵LU分解过程

  • 以2x2的矩阵为例
    A A A分解为 A = L U A=LU A=LU U U U为上三角矩阵(Upper triangular), L L L为下三角矩阵(Lower triangular)。
    A = [ 2 1 8 7 ] A= \begin{bmatrix} 2&1\\ 8&7\\ \end{bmatrix}\\ A=[2817]
    Lecture2中可知可以通过矩阵消元的方法得到 E , U E,U E,U矩阵,且将 A A A经过初等行变换转化成 U U U的过程可看作左乘 E E E矩阵,此处不考虑行交换的情况。
    [ 1 0 − 4 1 ] [ 2 1 8 7 ] = [ 2 1 0 3 ] → E 2 , 1 A = U \begin{bmatrix} 1&0\\ -4&1\\ \end{bmatrix} \begin{bmatrix} 2&1\\ 8&7\\ \end{bmatrix}= \begin{bmatrix} 2&1\\ 0&3\\ \end{bmatrix}\rightarrow E_{2,1}A = U [1401][2817]=[2013]E2,1A=U
    所以将 A A A分解为 A = L U A=LU A=LU的形式,只要将 U U U左乘 E 2 , 1 E_{2,1} E2,1的逆阵即可。
    A = [ 2 1 8 7 ] = [ 1 0 4 1 ] [ 2 1 0 3 ] A=\begin{bmatrix} 2&1\\ 8&7\\ \end{bmatrix}= \begin{bmatrix} 1&0\\ 4&1\\ \end{bmatrix} \begin{bmatrix} 2&1\\ 0&3\\ \end{bmatrix} A=[2817]=[1401][2013]
    L = [ 1 0 4 1 ] L=\begin{bmatrix} 1&0\\ 4&1\\ \end{bmatrix} L=[1401] U = [ 2 1 0 3 ] U=\begin{bmatrix} 2&1\\ 0&3\\ \end{bmatrix} U=[2013]

    再进一步可以将 A A A进一步分解为 A = L D U A=LDU A=LDU
    A = [ 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 ] A=\begin{bmatrix} 2&1\\ 8&7\\ \end{bmatrix}= \begin{bmatrix} 1&0\\ 4&1\\ \end{bmatrix} \begin{bmatrix} 2&1\\ 0&3\\ \end{bmatrix}= \begin{bmatrix} 1&0\\ 4&1\\ \end{bmatrix} \begin{bmatrix} 2&0\\ 0&3\\ \end{bmatrix} \begin{bmatrix} 1&1/2\\ 0&1\\ \end{bmatrix} A=[2817]=[1401][2013]=[1401][2003][101/21]

  • 考虑3x3的情况
    假设没有行交换(no row exchange):
    E 3 , 2 E 3 , 1 E 2 , 1 A = U E_{3,2}E_{3,1}E_{2,1}A = U E3,2E3,1E2,1A=U
    通过变换得:
    A = E 2 , 1 − 1 E 3 , 1 − 1 E 3 , 2 − 1 U = L U A = E_{2,1}^{-1}E_{3,1}^{-1}E_{3,2}^{-1}U=LU A=E2,11E3,11E3,21U=LU

3. 为什么要进行LU分解?

为什么 A = L U A=LU A=LU的形式比 E A = U EA=U EA=U要好?
举个典型的例子:
假设 E 2 , 1 = [ 1 0 0 − 2 1 0 0 0 1 ] E_{2,1}=\begin{bmatrix} 1&0&0\\ -2&1&0\\ 0&0&1 \end{bmatrix} E2,1=120010001 E 3 , 2 = [ 1 0 0 0 1 0 0 − 5 1 ] E_{3,2}=\begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&-5&1 \end{bmatrix} E3,2=100015001,没有 E 3 , 1 E_{3,1} E3,1(即第三行第一列本来就是0)。
然后做矩阵乘法:
E 3 , 2 E 2 , 1 = [ 1 0 0 0 1 0 0 − 5 1 ] [ 1 0 0 − 2 1 0 0 0 1 ] = [ 1 0 0 − 2 1 0 ( 10 ) − 5 1 ] = E E_{3,2}E_{2,1} = \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}=E E3,2E2,1=100015001120010001=12(10)015001=E
结果第三行第一列中有个10,而这个10是由第一行影响得到的,第一行的-2倍加到第二行之后,新第二行的-5倍加到第三行。不可以由两个 E E E矩阵直观地看出来。
接下来我们来看以逆的角度考虑:
E 2 , 1 − 1 E 3 , 2 − 1 = [ 1 0 0 2 1 0 0 0 1 ] [ 1 0 0 0 1 0 0 5 1 ] = [ 1 0 0 2 1 0 0 5 1 ] = L E_{2,1}^{-1}E_{3,2}^{-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 E2,11E3,21=120010001100015001=120015001=L
这时候可以得到: L = E 2 , 1 − 1 + E 3 , 1 − 1 + E 3 , 2 − 1 L=E_{2,1}^{-1}+E_{3,1}^{-1}+E_{3,2}^{-1} L=E2,11+E3,11+E3,21,只要在矩阵相应部分写上消元乘数就可以得到。
结论:
A = L U A=LU A=LU包含了矩阵消元法的全部信息,即只要将原矩阵按照 L L L矩阵从左到右,从上到下的顺序,按照对应系数进行初等行变换,就可以得到 U U U
同理,从列的角度考虑即:将原矩阵按照 U U U矩阵从上到下,从左到右的顺序经过初等列变换,可以得到 L L L

4. LU分解的总运算步数问题(复杂度)

如果将一次乘法之后加法看作是一次运算。
1. 对 n × n n\times n n×n的矩阵进行消元,运算步数为:
S t e p s = n ( n − 1 ) + ( n − 1 ) ( n − 2 ) + . . . + 2 × 1 Steps = n(n-1)+(n-1)(n-2)+...+2 \times 1 Steps=n(n1)+(n1)(n2)+...+2×1
近似约为:
S t e p s ≈ n 2 + ( n − 1 ) 2 + . . . + 1 2 = 1 6 n ( n + 1 ) ( 2 n + 1 ) ≈ 1 3 n 2 Steps \approx n^2+(n-1)^2+...+1^2 = \frac{1}{6}n(n+1)(2n+1) \approx \frac{1}{3}n^2 Stepsn2+(n1)2+...+12=61n(n+1)(2n+1)31n2
2. 对右侧向量 b b b 进行运算,运算步数为:
S t e p s = [ ( n − 1 ) + ( 1 ) ] ( n − 1 ) / 2 = ( n − 1 ) n / 2 ≈ n 2 Steps = [(n-1)+(1)](n-1)/2 = (n-1)n/2 \approx n^2 Steps=[(n1)+(1)](n1)/2=(n1)n/2n2

所以在完成LU分解后,对于有几个右侧向量的情况,可以节省很多时间,不必每次都对左侧进行行变换。

5. 转置与置换初步介绍(transpose and permutation)

置换矩阵可以用来做行交换(row exchange)
3x3矩阵 I I I有6种permutation(行交换方法):
[ 1 0 0 0 1 0 0 0 1 ] , [ 0 1 0 1 0 0 0 0 1 ] , [ 0 0 1 0 1 0 1 0 0 ] [ 1 0 0 0 0 1 0 1 0 ] , [ 0 1 0 0 0 1 1 0 0 ] , [ 0 0 1 1 0 0 0 1 0 ] \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1\\ \end{bmatrix}, \begin{bmatrix} 0&1&0\\ 1&0&0\\ 0&0&1\\ \end{bmatrix}, \begin{bmatrix} 0&0&1\\ 0&1&0\\ 1&0&0\\ \end{bmatrix}\\ \begin{bmatrix} 1&0&0\\ 0&0&1\\ 0&1&0\\ \end{bmatrix}, \begin{bmatrix} 0&1&0\\ 0&0&1\\ 1&0&0\\ \end{bmatrix}, \begin{bmatrix} 0&0&1\\ 1&0&0\\ 0&1&0\\ \end{bmatrix} 100010001,010100001,001010100100001010,001100010,010001100
这些矩阵两两相乘的结果仍在这个矩阵集合中(相当于将右侧矩阵再进行一次行交换),这些矩阵的逆矩阵也在这个集合中,因为就相当于把原先对调的两行调回去。
且这些permutation矩阵有一个重要的性质:
P − 1 = P T P^{-1}=P^T P1=PT

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值