矩阵乘法: 史上最通俗易懂的讲解!!!

世界杯男篮2019

1. 形象讲讲矩阵乘法

让我从几个直观的角度来解释矩阵乘法。

线性变换的角度

矩阵乘法最本质的含义是线性变换的复合。当我们计算

A

B

AB

AB 时,可以理解为:先进行变换

B

B

B,再进行变换

A

A

A。这就解释了为什么矩阵乘法不满足交换律 - 因为变换的顺序会影响最终结果。

比如对向量

v

\mathbf{v}

v 进行变换:

v

B

B

v

A

A

(

B

v

)

=

(

A

B

)

v

\mathbf{v} \xrightarrow{B} B\mathbf{v} \xrightarrow{A} A(B\mathbf{v}) = (AB)\mathbf{v}

vB

​BvA

​A(Bv)=(AB)v

点积的角度

对于矩阵乘法

C

=

A

B

C = AB

C=AB,其中

C

i

j

C_{ij}

Cij​ 的计算实际上是

A

A

A 的第

i

i

i 行与

B

B

B 的第

j

j

j 列的点积:

C

i

j

=

k

A

i

k

B

k

j

C_{ij} = \sum_k A_{ik}B_{kj}

Cij​=k∑​Aik​Bkj​

可以形象地理解为:

[a₁ a₂ a₃] · [b₁] = a₁b₁ + a₂b₂ + a₃b₃

[b₂]

[b₃]

线性组合的角度

可以把矩阵

B

B

B 的每一列看作一个向量,那么

A

B

AB

AB 就是用

A

A

A 的列向量对

B

B

B 的列向量进行线性组合。例如:

[

a

11

a

12

a

21

a

22

]

[

b

11

b

12

b

21

b

22

]

\begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix}

[a11​a21​​a12​a22​​][b11​b21​​b12​b22​​]

第一列结果是:

b

11

b_{11}

b11​ 倍的

A

A

A 第一列加上

b

21

b_{21}

b21​ 倍的

A

A

A 第二列。

实际应用举例

假设一个商店销售矩阵:

产品1 产品2

[10 15 ] 周一销量

[12 8 ] 周二销量

价格矩阵:

[5 ] 产品1价格

[8 ] 产品2价格

它们的乘积就给出了每天的总收入:

[10×5 + 15×8] = [170] 周一收入

[12×5 + 8×8 ] = [124] 周二收入

图形变换的角度

在计算机图形学中,矩阵乘法被用来表示各种变换:

旋转矩阵:

[

cos

θ

sin

θ

sin

θ

cos

θ

]

\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}

[cosθsinθ​−sinθcosθ​]缩放矩阵:

[

s

x

0

0

s

y

]

\begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}

[sx​0​0sy​​]

这些变换可以通过矩阵乘法组合,比如先旋转再缩放。

理解这些不同视角有助于我们在不同场景下灵活运用矩阵乘法。每种理解方式都突出了矩阵乘法的某个重要特性,让我们能更好地掌握这个数学工具。

2. 矩阵乘法案例(形象)

让我用几个生动的案例来说明矩阵乘法的应用:

餐厅收入计算 假设一个餐厅的周销量矩阵:

汉堡 薯条 可乐

周一 [50 80 100]

周二 [45 70 90]

周三 [60 85 120]

价格矩阵:

汉堡 [20]

薯条 [10]

可乐 [5 ]

通过矩阵乘法,我们可以一次性算出三天的总收入:

[

50

80

100

45

70

90

60

85

120

]

[

20

10

5

]

=

[

1500

1350

1800

]

\begin{bmatrix} 50 & 80 & 100 \\ 45 & 70 & 90 \\ 60 & 85 & 120 \end{bmatrix} \begin{bmatrix} 20 \\ 10 \\ 5 \end{bmatrix} = \begin{bmatrix} 1500 \\ 1350 \\ 1800 \end{bmatrix}

​504560​807085​10090120​

​20105​

​=

​150013501800​

学生成绩加权 三个学生在不同科目的成绩矩阵:

数学 英语 物理

小明 [85 92 78]

小红 [92 88 85]

小华 [75 95 82]

科目权重矩阵:

数学 [0.4]

英语 [0.3]

物理 [0.3]

矩阵乘法可以直接计算出加权后的总分。

图片处理的像素变换 假设有一个

2

×

2

2 \times 2

2×2 的图片,每个像素有RGB三个值:

像素矩阵:

R G B

[100 150 200] 像素1

[80 120 160] 像素2

要进行颜色调整,可以用变换矩阵:

[1.1 0 0 ] R调整

[0 0.9 0 ] G调整

[0 0 0.8] B调整

矩阵乘法后得到调整后的新像素值。

商品库存周转 一个商店的进货矩阵:

A店 B店 C店

商品1 [100 150 80]

商品2 [80 120 90]

各店铺的销售比例矩阵:

A店 [0.8] 表示80%售出

B店 [0.9]

C店 [0.75]

通过矩阵乘法可以计算出每种商品的总销量。

社交网络影响力 假设有一个简单的社交网络影响力传播模型:

用户关系矩阵:

用户1 用户2 用户3

用户1 [0.5 0.3 0.2 ]

用户2 [0.4 0.4 0.2 ]

用户3 [0.3 0.3 0.4 ]

初始信息分布向量:

用户1 [100]

用户2 [50 ]

用户3 [30 ]

通过矩阵乘法可以计算一轮传播后的信息分布情况。

这些例子展示了矩阵乘法在现实中的实际应用,从简单的销售计算到复杂的网络分析都能用矩阵乘法优雅地解决。每个例子都体现了矩阵乘法的本质:将一组线性变换应用到一组数据上,得到转换后的结果。

3. 矩阵乘法计算的思路和技巧

让我详细介绍矩阵乘法计算的核心思路和实用技巧:

基本计算规则

对于矩阵乘法

C

=

A

B

C = AB

C=AB,其中

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=1∑n​Aik​Bkj​

关键要求:

A

A

A 的列数必须等于

B

B

B 的行数结果矩阵

C

C

C 的维度是:

A

A

A 的行数 ×

B

B

B 的列数

计算思路

(1) 位置定位法:

目标元素在第

i

i

i 行第

j

j

j 列取

A

A

A 矩阵的第

i

i

i 行取

B

B

B 矩阵的第

j

j

j 列对应相乘后求和

(2) 分块思维:

[a₁₁ a₁₂] × [b₁₁ b₁₂] = [(a₁₁×b₁₁ + a₁₂×b₂₁) (a₁₁×b₁₂ + a₁₂×b₂₂)]

[a₂₁ a₂₂] [b₂₁ b₂₂] [(a₂₁×b₁₁ + a₂₂×b₂₁) (a₂₁×b₁₂ + a₂₂×b₂₂)]

实用技巧

(1) 特殊矩阵快速计算:

单位矩阵:

A

I

=

A

AI = A

AI=A对角矩阵:只需计算对应位置的乘积零矩阵:结果都是0

(2) 分块矩阵技巧: 对于大型矩阵,可以划分成小块:

[

A

11

A

12

A

21

A

22

]

[

B

11

B

12

B

21

B

22

]

\begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix} \begin{bmatrix} B_{11} & B_{12} \\ B_{21} & B_{22} \end{bmatrix}

[A11​A21​​A12​A22​​][B11​B21​​B12​B22​​]

(3) 记忆助手:

“行×列” 原则口诀:“左行右列一一对”画线法:划出相乘的行和列

常见错误避免

(1) 维度检查:

乘法前检查维度匹配结果矩阵维度预判

(2) 符号处理:

注意正负号小心数字抄写错误

提高效率的策略

(1) 预估结果:

预判结果的数量级判断可能的特殊模式

(2) 化简技巧:

提取公因式利用矩阵的特殊性质

例如计算:

[

2

1

3

4

]

[

1

0

2

3

]

\begin{bmatrix} 2 & 1 \\ 3 & 4 \end{bmatrix} \begin{bmatrix} 1 & 0 \\ 2 & 3 \end{bmatrix}

[23​14​][12​03​]

思路:

第一个元素:

(

2

×

1

+

1

×

2

)

=

4

(2×1 + 1×2) = 4

(2×1+1×2)=4第二个元素:

(

2

×

0

+

1

×

3

)

=

3

(2×0 + 1×3) = 3

(2×0+1×3)=3第三个元素:

(

3

×

1

+

4

×

2

)

=

11

(3×1 + 4×2) = 11

(3×1+4×2)=11第四个元素:

(

3

×

0

+

4

×

3

)

=

12

(3×0 + 4×3) = 12

(3×0+4×3)=12

结果:

[

4

3

11

12

]

\begin{bmatrix} 4 & 3 \\ 11 & 12 \end{bmatrix}

[411​312​]

通过这些技巧和方法,我们可以更高效、准确地完成矩阵乘法计算。关键是要建立清晰的思维模式,培养良好的计算习惯。

4. 矩阵乘法计算案例(结合前面的思路进行计算)

让我通过几个具体案例来演示矩阵乘法的计算过程,结合前面讲的思路和技巧。

案例1:2×2基础矩阵乘法

[

3

2

1

4

]

[

2

3

1

2

]

\begin{bmatrix} 3 & 2 \\ 1 & 4 \end{bmatrix} \begin{bmatrix} 2 & 3 \\ 1 & 2 \end{bmatrix}

[31​24​][21​32​]

计算思路:

第一个元素

C

11

C_{11}

C11​:

(

3

×

2

+

2

×

1

)

=

8

(3×2 + 2×1) = 8

(3×2+2×1)=8第二个元素

C

12

C_{12}

C12​:

(

3

×

3

+

2

×

2

)

=

13

(3×3 + 2×2) = 13

(3×3+2×2)=13第三个元素

C

21

C_{21}

C21​:

(

1

×

2

+

4

×

1

)

=

6

(1×2 + 4×1) = 6

(1×2+4×1)=6第四个元素

C

22

C_{22}

C22​:

(

1

×

3

+

4

×

2

)

=

11

(1×3 + 4×2) = 11

(1×3+4×2)=11

结果:

[

8

13

6

11

]

\begin{bmatrix} 8 & 13 \\ 6 & 11 \end{bmatrix}

[86​1311​]

案例2:3×2矩阵乘以2×2矩阵

[

2

1

3

0

1

2

]

[

4

2

1

3

]

\begin{bmatrix} 2 & 1 \\ 3 & 0 \\ 1 & 2 \end{bmatrix} \begin{bmatrix} 4 & 2 \\ 1 & 3 \end{bmatrix}

​231​102​

​[41​23​]

计算步骤:

C

11

=

2

×

4

+

1

×

1

=

9

C_{11} = 2×4 + 1×1 = 9

C11​=2×4+1×1=9

C

12

=

2

×

2

+

1

×

3

=

7

C_{12} = 2×2 + 1×3 = 7

C12​=2×2+1×3=7

C

21

=

3

×

4

+

0

×

1

=

12

C_{21} = 3×4 + 0×1 = 12

C21​=3×4+0×1=12

C

22

=

3

×

2

+

0

×

3

=

6

C_{22} = 3×2 + 0×3 = 6

C22​=3×2+0×3=6

C

31

=

1

×

4

+

2

×

1

=

6

C_{31} = 1×4 + 2×1 = 6

C31​=1×4+2×1=6

C

32

=

1

×

2

+

2

×

3

=

8

C_{32} = 1×2 + 2×3 = 8

C32​=1×2+2×3=8

结果:

[

9

7

12

6

6

8

]

\begin{bmatrix} 9 & 7 \\ 12 & 6 \\ 6 & 8 \end{bmatrix}

​9126​768​

案例3:包含特殊数字的矩阵乘法

[

1

0

2

1

3

1

]

[

2

1

0

1

3

2

]

\begin{bmatrix} 1 & 0 & 2 \\ -1 & 3 & 1 \end{bmatrix} \begin{bmatrix} 2 & 1 \\ 0 & -1 \\ 3 & 2 \end{bmatrix}

[1−1​03​21​]

​203​1−12​

技巧应用:

注意0元素:可以跳过计算负数处理:注意符号

计算过程:

C

11

=

1

×

2

+

0

×

0

+

2

×

3

=

8

C_{11} = 1×2 + 0×0 + 2×3 = 8

C11​=1×2+0×0+2×3=8

C

12

=

1

×

1

+

0

×

(

1

)

+

2

×

2

=

5

C_{12} = 1×1 + 0×(-1) + 2×2 = 5

C12​=1×1+0×(−1)+2×2=5

C

21

=

(

1

)

×

2

+

3

×

0

+

1

×

3

=

1

C_{21} = (-1)×2 + 3×0 + 1×3 = 1

C21​=(−1)×2+3×0+1×3=1

C

22

=

(

1

)

×

1

+

3

×

(

1

)

+

1

×

2

=

2

C_{22} = (-1)×1 + 3×(-1) + 1×2 = -2

C22​=(−1)×1+3×(−1)+1×2=−2

结果:

[

8

5

1

2

]

\begin{bmatrix} 8 & 5 \\ 1 & -2 \end{bmatrix}

[81​5−2​]

案例4:含对角矩阵的乘法

[

2

0

0

3

]

[

1

4

2

5

]

\begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix} \begin{bmatrix} 1 & 4 \\ 2 & 5 \end{bmatrix}

[20​03​][12​45​]

简化技巧:

对角矩阵只需关注对角线上的元素其他位置的0可以直接跳过

快速计算:

C

11

=

2

×

1

=

2

C_{11} = 2×1 = 2

C11​=2×1=2

C

12

=

2

×

4

=

8

C_{12} = 2×4 = 8

C12​=2×4=8

C

21

=

3

×

2

=

6

C_{21} = 3×2 = 6

C21​=3×2=6

C

22

=

3

×

5

=

15

C_{22} = 3×5 = 15

C22​=3×5=15

结果:

[

2

8

6

15

]

\begin{bmatrix} 2 & 8 \\ 6 & 15 \end{bmatrix}

[26​815​]

通过这些案例,我们可以看到:

保持清晰的计算顺序很重要利用矩阵的特殊性质可以简化计算注意正负号和零元素的处理检查维度匹配和结果的合理性

这些例子展示了如何将前面讲的计算思路和技巧应用到实际计算中。掌握这些方法后,矩阵乘法计算会变得更加高效和准确。

一次读懂PP各手表系列
咪咕视频世界杯解说员都有谁?咪咕视频世界杯解说阵容一览