MIT线性代数笔记Lecture3-Lecture4

本文深入探讨了矩阵乘法的五种方法,包括单个元素计算、整行整列考虑、列乘以行、矩阵分块以及矩阵逆的概念。讲解了矩阵逆的求解方法,包括矩阵的可逆性和求逆过程,并介绍了LU分解,对比了LU分解与消元法的优势,以及LU分解的复杂度分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lecture3 矩阵乘法与逆

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

  • 1. 对于结果矩阵中的特定元素单个计算(entry)
    假定矩阵乘法为:
    AB=CAB = CAB=C
    Am×n,Bn×sA_{m\times n},B_{n\times s}Am×n,Bn×s时矩阵可乘(内标相同),且得到结果Cm×sC_{m\times s}Cm×s
    C中iiijjj列的元素为:
    Ci,j=(Row i ofA)⋅(Column j ofB)=∑k=1naikbkjC_{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. 整行和整列去考虑
    可以将BBB的列当成向量单独考虑,AAA乘以BBB的每个列向量构成新矩阵CCC的每个列。即CCC的每一列是AAA中列向量的线性组合。
    同理AAA的每一行乘以BBB构成CCC的每一行。即CCC中的每行为BBB中行向量的线性组合。
  • 4. 用A的列乘以B的行
    AB=sum of{(Columns of A)⋅(Rows of B)}AB = sum \ of \{(Columns \ of \ A)\cdot(Rows \ of \ B)\}AB=sum of{(Columns of A)(Rows of B)}
    A中的列向量与B中的行向量相乘会得到一个m×sm\times sm×s的矩阵。将其组合相加可以得到ABABAB
  • 5.利用矩阵分块
    只要将矩阵的大小按照符合乘法规则的要求来划分,可以得到:
    AB=[A1∣A2−−−A3∣A4]⋅[B1∣B2−−−B3∣B4]=[A1B1+A2B3∣A1B2+A2B4−−−−−−−−−−−−A3B1+A4B3∣A3B2+A4B4] 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)

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

  • 矩阵的可逆性
    A=[1326]A = \begin{bmatrix} 1&3\\ 2&6\\ \end{bmatrix}A=[1236]不可逆,因为找不到AAA的列的线性组合得到列向量[10]\begin{bmatrix} 1\\ 0\\ \end{bmatrix}[10](III的第一列)。
    判断矩阵是否可逆的一种方法:
    如果可以找到非零向量xxx,使得Ax=0Ax = 0Ax=0成立,则矩阵不可逆。
    因为如果此时AAA可逆将等式两边乘以A−1A^{-1}A1,得到x=0x=0x=0
    所以,若矩阵列向量的非零线性组合可以得到零向量,矩阵不可逆。
  • 矩阵逆的求法
    假设AAA的逆存在,如何求A−1A^{-1}A1?
    举个例子:
    A=[1327]    求A−1 A = \begin{bmatrix} 1&3\\ 2&7\\ \end{bmatrix} \ \ \ \ 求A^{-1} A=[1237]    A1
    假设A−1=[acbd]A^{-1} = \begin{bmatrix} a&c\\ b&d\\ \end{bmatrix}A1=[abcd],可以设立方程:
    [1327][acbd]=[1001] \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
    {[1327][ab]=[10][1327][cd]=[01]→[13∣1027∣01] \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进行消元,最终左侧将得到单位阵III
    [13∣1027∣01]→[13∣1001∣−21]→[10∣7−301∣−21] \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]
    对于以上方式的理解为相当于将单位阵的每个列单独看做一个向量bbb,该向量可视作AAA中的列的线性组合(矩阵乘法的第二种方式),之后对于每一列解它线性组合对应的系数就相当于解Ax=bAx=bAx=b的一个过程,可以使用消元法。而对每个列的消元的过程可以合并起来(因为都是初等行变换)。
    另一种理解是:AAA经过的初等行变换可以看做乘以一系列的EEE矩阵,详见上节消元法的介绍,当AAA经过初等行变换变为III的时候,这一系列的EEE相乘就相当于乘以A−1A^{-1}A1 ,此时将III作同样的变换,相当于乘以一系列的EEE最终的结果是变为A−1A^{-1}A1

Lecture4 矩阵的LU分解

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

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

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

2. 矩阵LU分解过程

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

    再进一步可以将AAA进一步分解为A=LDUA=LDUA=LDU
    A=[2187]=[1041][2103]=[1041][2003][11/201]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):
    E3,2E3,1E2,1A=UE_{3,2}E_{3,1}E_{2,1}A = U E3,2E3,1E2,1A=U
    通过变换得:
    A=E2,1−1E3,1−1E3,2−1U=LUA = E_{2,1}^{-1}E_{3,1}^{-1}E_{3,2}^{-1}U=LUA=E2,11E3,11E3,21U=LU

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

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

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

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

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

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

置换矩阵可以用来做行交换(row exchange)
3x3矩阵III有6种permutation(行交换方法):
[100010001],[010100001],[001010100][100001010],[010001100],[001100010] \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=PTP^{-1}=P^TP1=PT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值