线代笔记Part 2 (Lecture 3 & 4 & 5上半)

线代笔记Part 2 (Lecture 3 & 4 & 5上半)

来自MIT OpenCourseWare由Gilbert Strang主讲的Linear Algebra讲座。视频地址在此

该笔记主要用于帮助对线代知识体系的复习。其中添加了我个人的一些感悟。

Lecture 3

这一讲详细阐述了求矩阵乘法的各种方法,以及计算逆矩阵(若存在)的方法。

设矩阵 A A A的形状为 m × n m\times n m×n,矩阵 B B B的形状为 n × p n\times p n×p,那么我们可以计算
A B = C AB=C AB=C
其中 C C C的形状为 m × p m\times p m×p

计算这个矩阵 C C C有4种方法:

  1. 对矩阵 C C C中任意一个元素,记第 i i i行第 j j j列的元素为 c i j c_{ij} cij,则
    c i j = ∑ k = 1 n a i k b k j c_{ij}=\sum_{k=1}^{n}a_{ik}b_{kj} cij=k=1naikbkj
  2. 记矩阵 C C C中各列向量为 c ⋅ j , j ∈ { 1 , … , p } c_{\cdot j}, j\in\{1,\dots,p\} cj,j{1,,p},矩阵 B B B中的各列向量则为 b ⋅ j b_{\cdot j} bj,那么
    C = [ c ⋅ 1 ⋯ c ⋅ p ] = [ A b ⋅ 1 ⋯ A b ⋅ p ] C=\begin{bmatrix} c_{\cdot 1}&\cdots&c_{\cdot p} \end{bmatrix} =\begin{bmatrix} Ab_{\cdot 1}&\cdots&Ab_{\cdot p} \end{bmatrix} C=[c1cp]=[Ab1Abp]
  3. 记矩阵 C C C中各行向量为 c i ⋅ , i ∈ { 1 , … , m } c_{i\cdot }, i\in\{1,\dots,m\} ci,i{1,,m},矩阵 A A A中的各行向量为 a i ⋅ a_{i\cdot} ai,那么
    C = [ c 1 ⋅ ⋮ c m ⋅ ] = [ a 1 ⋅ B ⋮ a m ⋅ B ] C=\begin{bmatrix} c_{1\cdot } \\ \vdots \\ c_{m\cdot } \end{bmatrix} =\begin{bmatrix} a_{1\cdot}B \\ \vdots \\ a_{m\cdot}B \end{bmatrix} C= c1cm = a1BamB
  4. 记矩阵 A A A的各列向量为 a ⋅ k a_{\cdot k} ak,矩阵 B B B的各行向量为 b k ⋅ b_{k\cdot} bk,则
    C = ∑ k = 1 n a ⋅ k b k ⋅ C=\sum_{k=1}^{n}a_{\cdot k}b_{k\cdot} C=k=1nakbk

在我看来,我们可以用一种更直观的方式来理解以上运算过程。假设矩阵 A A A 3 × 2 3\times 2 3×2,矩阵 B B B 2 × 2 2\times 2 2×2,那么我们可以把 A A A的行与列依次放在x轴和y轴上, B B B的行与列依次在y轴和z轴上,于是我们很容易发现 C C C的行与列上的向量长度正好各自符合x轴和z轴上的向量长度:
在这里插入图片描述
放到三维直角坐标系来看就是:
在这里插入图片描述
我们可以理解为,矩阵乘法就是在三维直角坐标系下把来自xOy平面和yOz平面的两个矩阵先是各自在同一y坐标下做笛卡尔积(Cartesian product),获得 3 × 2 × 2 = 12 3\times 2\times 2=12 3×2×2=12个值;然后依y轴进行求和,最后把求和的结果投射到xOz平面上。将这个过程以不同次序来实现,就能得到以上所讲授的4种计算方法。

类似地,我们也可以凭此来理解block matrices的计算。

一个 m × m m\times m m×m的方阵 A A A可能有逆矩阵,也可能没有。如果存在一个不是零向量的向量 x x x,使得 A x = 0 Ax=0 Ax=0,那么 A A A必然没有逆矩阵——如果并非如此,那么两边同乘 A A A的“逆矩阵”之后,会得出 x = 0 x=0 x=0这样一个与前提矛盾的结论。

给定方阵 A A A,且我们确定 A A A存在逆矩阵,即存在 A − 1 A^{-1} A1使得
A − 1 A = I = A A − 1 A^{-1}A=I=AA^{-1} A1A=I=AA1
那么如何计算 A − 1 A^{-1} A1呢?通用的方法就是建立增广矩阵 [ A ∣ I ] \begin{bmatrix} A \mid I \end{bmatrix} [AI],通过Gauss-Jordan法,我们通过一系列行变换使得
E [ A ∣ I ] = [ I ∣ E ] E\begin{bmatrix} A \mid I \end{bmatrix}= \begin{bmatrix} I \mid E \end{bmatrix} E[AI]=[IE]
其中矩阵 E E E就代表了我们对上述增广矩阵进行的行变换操作,而且正好 E = A − 1 E=A^{-1} E=A1。如果放到三维直角坐标系下来观测的话那么正好就是以下图示:
在这里插入图片描述
这也就是说,通过构建增广矩阵,我们把代表行变换操作的矩阵从xOy平面投射到了xOz平面,这一投射是通过在yOz平面上沿z轴叠加单位矩阵来实现的。

Lecture 4

假如我们知道矩阵 A A A B B B都是方阵,而且都是可逆的,分别记为 A − 1 A^{-1} A1 B − 1 B^{-1} B1,那么我们就有
A B B − 1 A − 1 = I B − 1 A − 1 A B = I \begin{align} ABB^{-1}A^{-1}&=I \\ B^{-1}A^{-1}AB&=I \end{align} ABB1A1B1A1AB=I=I
那么 A B AB AB的转置,即 ( A B ) T (AB)^{T} (AB)T,该如何表示呢?在STRANG G. Linear Algebra and Its Applications[M]. Edition 4. Brooks Cole, 2006.一书的第56页中我们可以知道, ( A B ) T (AB)^{T} (AB)T的第一行正好对应 A B AB AB的第一列,即以 B B B的第一列为系数对 A A A按列求和;这也就意味着 ( A B ) T (AB)^{T} (AB)T的第一行是以 B T B^{T} BT的第一行为系数对 A T A^{T} AT按行求和。以此类推我们就能知道
( A B ) T = B T A T (AB)^{T}=B^{T}A^{T} (AB)T=BTAT
所以我们就有
A A − 1 = I = ( A − 1 ) T A T AA^{-1}=I=(A^{-1})^{T}A^{T} AA1=I=(A1)TAT
因此我们能进一步得知
( A T ) − 1 = ( A − 1 ) T (A^{T})^{-1}=(A^{-1})^{T} (AT)1=(A1)T
接下来介绍矩阵的三角分解(triangular factorization)。这一分解和消去法有很强的关联。比如,我们可以写出这样的等式:
E 21 A = [ 1 0 − 4 1 ] [ 2 1 8 7 ] = [ 2 1 0 3 ] = U E_{21}A= \begin{bmatrix} 1 & 0 \\ -4& 1 \end{bmatrix} \begin{bmatrix} 2 & 1 \\ 8 & 7 \end{bmatrix}= \begin{bmatrix} 2 & 1 \\ 0 & 3 \end{bmatrix} =U E21A=[1401][2817]=[2013]=U
若我们把上式改写成 A = L U A=LU A=LU的形式,那么我们有
[ 2 1 8 7 ] = [ 1 0 4 1 ] [ 2 1 0 3 ] \begin{bmatrix} 2 & 1 \\ 8 & 7 \end{bmatrix}= \begin{bmatrix} 1 & 0 \\ 4 & 1 \end{bmatrix} \begin{bmatrix} 2 & 1 \\ 0 & 3 \end{bmatrix} [2817]=[1401][2013]
进一步地,改写为 A = L D U A=LDU A=LDU形式的话就有
[ 2 1 8 7 ] = [ 1 0 4 1 ] [ 2 0 0 3 ] [ 1 1 2 0 1 ] \begin{bmatrix} 2 & 1 \\ 8 & 7 \end{bmatrix}= \begin{bmatrix} 1 & 0 \\ 4 & 1 \end{bmatrix} \begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix} \begin{bmatrix} 1 & \frac{1}{2} \\ 0 & 1 \end{bmatrix} [2817]=[1401][2003][10211]
相比较 E A = U EA=U EA=U中的 E E E A = L U A=LU A=LU中的 L L L有更好的性质:在没有行交换的情况下, L L L下三角部分的每一个元素都精确表示了从 A A A变换到 U U U的乘数。

A A A n × n n\times n n×n的一个矩阵,那么 A = L U A=LU A=LU这一分解的时间复杂度就为 O ( n 3 ) O(n^3) O(n3)

假如从 A A A U U U的变换过程包含了行交换呢?那么这里就需要置换矩阵(permutation matrix)。比如对于 3 × 3 3\times 3 3×3的矩阵,其所施加的全部可能置换为
[ 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{align} \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} \end{align} 100010001 010100001 001010100 100001010 001100010 010001100
对于置换矩阵 P P P,我们显然有
P − 1 = P T P^{-1}=P^{T} P1=PT
道理是很简单的。设 e ∈ R n , ∥ e ∥ 0 = ∥ e ∥ 1 = 1 e\in\mathbf{R}^{n},\|e\|_{0}=\|e\|_{1}=1 eRn,e0=e1=1,且对于 ∀ i ∈ { 1 , … , n } \forall i\in\{1,\dots,n\} i{1,,n},记 e i e_{i} ei为第 i i i个元素为 1 1 1、其余元素皆为 0 0 0的向量。那么我们可以把 P P P的每一列都看成是一个 e i e_{i} ei向量。显然,如果 P P P的大小为 n × n n\times n n×n,那么 P P P的全部可能数量为 n ! n! n!,正好是 n n n e i e_{i} ei的排列数。假如我们把 e i e_{i} ei的排列打乱,由此形成的新排列以 e q 1 , e q 2 , … , e q n e_{q1},e_{q2},\dots,e_{qn} eq1,eq2,,eqn编号,那么对由此组成的新的置换矩阵
P = [ e q 1 ⋯ e q n ] P=\begin{bmatrix} e_{q1} &\cdots & e_{qn} \end{bmatrix} P=[eq1eqn]
考虑到
e q i e q i T = Λ q i e_{qi}e_{qi}^{T}=\Lambda_{qi} eqieqiT=Λqi
其中 Λ q i \Lambda_{qi} Λqi是一个对角矩阵,其对角线上的第 q i qi qi个元素为1,而其余元素皆为0。

于是,我们必然有
P P T = [ e q 1 ⋯ e q n ] [ e q 1 T ⋮ e q n T ] = I PP^{T}= \begin{bmatrix} e_{q1} &\cdots & e_{qn} \end{bmatrix} \begin{bmatrix} e_{q1}^{T} \\ \vdots \\ e_{qn}^{T} \end{bmatrix} =I PPT=[eq1eqn] eq1TeqnT =I
回忆一下计算矩阵乘法的第4种方法。

因为上式的 P P P是任意的,所以 P T = P − 1 P^{T}=P^{-1} PT=P1得证。

Lecture 5(上半)

考虑到我们需要行变换操作以确保pivot不为零,那么三角分解的公式就应该写为
P A = L U PA=LU PA=LU
其中 A A A是待分解的矩阵, P P P为置换矩阵, L L L为下三角矩阵, U U U为上三角矩阵。

对于置换矩阵 P P P,我们已经知道 P P T = I PP^T=I PPT=I。那么对于一个任意的矩阵和它的置换,两者之间有何关系呢?

给定矩阵 A ∈ R m × n A\in\mathbf{R}^{m\times n} ARm×n,我们显然有 A T ∈ R n × m A^{T}\in\mathbf{R}^{n\times m} ATRn×m。假如我们记 ( A ) i , j (A)_{i,j} (A)i,j为矩阵 A A A中第 i i i行第 j j j列的元素,那么我们必然有:
( A T ) i , j = ( A ) j , i (A^T)_{i,j}=(A)_{j,i} (AT)i,j=(A)j,i
进一步地,我们还能发现 ( A T A ) T = A T ( A T ) T = A T A (A^TA)^T=A^T(A^T)^T=A^TA (ATA)T=AT(AT)T=ATA,即 A T A A^TA ATA是一个对称矩阵。(如果矩阵 M M M是一个对称矩阵,那么我们必然有 M T = M M^T=M MT=M

接下来要讲解的是关于向量空间(Vector Space)的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值