MIT18.06线性代数课程笔记3a:矩阵相乘的五种看待角度

课程简介

18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm

课程笔记

上节课,Strang在讲解高斯消元的过程中给出了三种矩阵相乘的看待角度,也可以说是计算方法:MIT18.06线性代数课程笔记2a:矩阵相乘的三种看待角度
这节课,他首先系统的给出了矩阵相乘的五种方法,之后又讲解了矩阵求逆的概念。本文主要总结矩阵相乘的相关内容。

1. 定义

矩阵 Am×n 和矩阵 Bn×p 相乘 AB=C ,有 C m×p 的矩阵,且 A 的列数必须等于 B 的行数。 AB=C ,则有

cij=ai1b1j+ai2b2j++ainbnj

2. 五种计算方法

2.1. A 的行向量和 B 的列向量相乘

这个方法非常直接简单,从上诉公式可得

cij=[ai1,ai2,,ain][b1j,b2j,,bnj]T

所以 C 向量的第 i 行第 j 列为 A 的第 i 个行向量乘以 B 的第 j 个列向量。

2.2. A B 的列向量相乘

详情可以参考MIT18.06线性代数课程笔记2a:矩阵相乘的三种看待角度
结论是 C 的第 j 列是 A B 的第 j 列相乘的结果,而矩阵 A 和列向量相乘的结果为矩阵 A 各列向量的线性组合。

2.3. A 的行向量与 B 相乘

详情可以参考MIT18.06线性代数课程笔记2a:矩阵相乘的三种看待角度
结论是 C 的第 i 行是 A 的第 i 个行向量与 B 相乘的结果,而 A 的第 i 个行向量与 B 相乘的结果为矩阵 B 各行向量的线性组合。

2.4. A 的列向量和 B 的行向量相乘

考虑 A 的第 k 个列向量和 B 的第 k 个行向量相乘的结果:

[a1k,a2k,,amk]T[bk1,bk2,,bkp]=akbk

akbk m×p 的矩阵,且 [akbk]ij=aikbkj 。所以 cij=[a1b1]ij+[a2b2]ij++[anbn]ij ,从而有 C=a1b1+a2b2++anbn

所以 C n A 的列向量和 B 的行向量相乘矩阵的加和。

2.5. 分块矩阵相乘

分块矩阵对于如何分块没有限制,只要满足矩阵相乘的条件,即 A 的列数等于 B 的行数。

先说结论:

[A1,A2A3,A4][B1,B2B3,B4]=[A1B1+A2B3,A1B2+A2B4A3B1+A4B3,A3B2+A4B4]

课上Strang并没有对其作出解释,这里笔者根据自己的理解写一段证明,正确性有待验证,还望指教。

  1. 先证明

    [A1,A2]TB=[A1B,A2B]T
    ,即可以对左侧矩阵做行切分。

    考虑矩阵乘法的row picture,即 C 的第 i 行为 B 的行向量的线性组合,系数由 A 的第 i 行唯一确定。所以对左侧矩阵做行切分,并不影响输出结果,因为 C 的第 i 行只与 A 的第 i 行有关。

  2. 类似的,有 A[B1,B2]=[AB1,AB2] ,即可以对右侧矩阵做列切分。

    证明方法和上面类似,因为输出的第 j 个列向量是 A 列向量的线性组合,系数由 B 的第 j 个列向量唯一确定。所以对右侧矩阵做列切分,不影响输出结果。

  3. 若对左侧矩阵做列切分,则必然需要对右侧矩阵做行切分,从而满足矩阵相乘的条件。若对右侧矩阵做行切分,也必然对应着左侧矩阵的列切分。从而最后一种情况是 [A1,A2][B1,B2]T=A1B1+A2B2

    这里需要用到矩阵乘法的第四种计算方法: A 的列向量和 B 的行向量的乘法。对左侧矩阵做列切分以及对右侧矩阵做行切分都没有影响到 A 的列向量以及 B 的行向量,从而 A1B1 等于 n1 A 的列向量和 B 的行向量相乘相加的结果, A2B2 等于 n2 A 的列向量和 B 的行向量相乘相加的结果,两者相加即可得到 n A 的列向量和 B 的行向量相乘相加的结果,即为 AB

  4. 对任意分块矩阵相乘应用上诉三个结论以及矩阵的结合律即可得到最终结论。

猜你喜欢

转载自blog.csdn.net/silent56_th/article/details/78216658