矩阵乘法: 史上最通俗易懂的讲解!!!
1. 形象讲讲矩阵乘法
让我从几个直观的角度来解释矩阵乘法。
- 线性变换的角度
矩阵乘法最本质的含义是线性变换的复合。当我们计算 ABABAB 时,可以理解为:先进行变换 BBB,再进行变换 AAA。这就解释了为什么矩阵乘法不满足交换律 - 因为变换的顺序会影响最终结果。
比如对向量 v\mathbf{v}v 进行变换:
v→BBv→AA(Bv)=(AB)v\mathbf{v} \xrightarrow{B} B\mathbf{v} \xrightarrow{A} A(B\mathbf{v}) = (AB)\mathbf{v}vBBvAA(Bv)=(AB)v
- 点积的角度
对于矩阵乘法 C=ABC = ABC=AB,其中 CijC_{ij}Cij 的计算实际上是 AAA 的第 iii 行与 BBB 的第 jjj 列的点积:
Cij=∑kAikBkjC_{ij} = \sum_k A_{ik}B_{kj}Cij=k∑AikBkj
可以形象地理解为:
[a₁ a₂ a₃] · [b₁] = a₁b₁ + a₂b₂ + a₃b₃
[b₂]
[b₃]
- 线性组合的角度
可以把矩阵 BBB 的每一列看作一个向量,那么 ABABAB 就是用 AAA 的列向量对 BBB 的列向量进行线性组合。例如:
[a11a12a21a22][b11b12b21b22]\begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix}[a11a21a12a22][b11b21b12b22]
第一列结果是:b11b_{11}b11 倍的 AAA 第一列加上 b21b_{21}b21 倍的 AAA 第二列。
- 实际应用举例
假设一个商店销售矩阵:
产品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θ]
- 缩放矩阵:[sx00sy]\begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}[sx00sy]
这些变换可以通过矩阵乘法组合,比如先旋转再缩放。
理解这些不同视角有助于我们在不同场景下灵活运用矩阵乘法。每种理解方式都突出了矩阵乘法的某个重要特性,让我们能更好地掌握这个数学工具。
2. 矩阵乘法案例(形象)
让我用几个生动的案例来说明矩阵乘法的应用:
- 餐厅收入计算
假设一个餐厅的周销量矩阵:
汉堡 薯条 可乐
周一 [50 80 100]
周二 [45 70 90]
周三 [60 85 120]
价格矩阵:
汉堡 [20]
薯条 [10]
可乐 [5 ]
通过矩阵乘法,我们可以一次性算出三天的总收入:
[50801004570906085120][20105]=[150013501800]\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}5045608070851009012020105=150013501800
- 学生成绩加权
三个学生在不同科目的成绩矩阵:
数学 英语 物理
小明 [85 92 78]
小红 [92 88 85]
小华 [75 95 82]
科目权重矩阵:
数学 [0.4]
英语 [0.3]
物理 [0.3]
矩阵乘法可以直接计算出加权后的总分。
- 图片处理的像素变换
假设有一个 2×22 \times 22×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=ABC = ABC=AB,其中 CijC_{ij}Cij 的计算公式是:
Cij=∑k=1nAikBkjC_{ij} = \sum_{k=1}^n A_{ik}B_{kj}Cij=k=1∑nAikBkj
关键要求:
- AAA 的列数必须等于 BBB 的行数
- 结果矩阵 CCC 的维度是:AAA 的行数 × BBB 的列数
- 计算思路
(1) 位置定位法:
- 目标元素在第 iii 行第 jjj 列
- 取 AAA 矩阵的第 iii 行
- 取 BBB 矩阵的第 jjj 列
- 对应相乘后求和
(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) 特殊矩阵快速计算:
- 单位矩阵:AI=AAI = AAI=A
- 对角矩阵:只需计算对应位置的乘积
- 零矩阵:结果都是0
(2) 分块矩阵技巧:
对于大型矩阵,可以划分成小块:
[A11A12A21A22][B11B12B21B22]\begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix} \begin{bmatrix} B_{11} & B_{12} \\ B_{21} & B_{22} \end{bmatrix}[A11A21A12A22][B11B21B12B22]
(3) 记忆助手:
- “行×列” 原则
- 口诀:“左行右列一一对”
- 画线法:划出相乘的行和列
- 常见错误避免
(1) 维度检查:
- 乘法前检查维度匹配
- 结果矩阵维度预判
(2) 符号处理:
- 注意正负号
- 小心数字抄写错误
- 提高效率的策略
(1) 预估结果:
- 预判结果的数量级
- 判断可能的特殊模式
(2) 化简技巧:
- 提取公因式
- 利用矩阵的特殊性质
例如计算:
[2134][1023]\begin{bmatrix}
2 & 1 \\
3 & 4
\end{bmatrix}
\begin{bmatrix}
1 & 0 \\
2 & 3
\end{bmatrix}[2314][1203]
思路:
- 第一个元素:(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
结果:
[431112]\begin{bmatrix}
4 & 3 \\
11 & 12
\end{bmatrix}[411312]
通过这些技巧和方法,我们可以更高效、准确地完成矩阵乘法计算。关键是要建立清晰的思维模式,培养良好的计算习惯。
4. 矩阵乘法计算案例(结合前面的思路进行计算)
让我通过几个具体案例来演示矩阵乘法的计算过程,结合前面讲的思路和技巧。
案例1:2×2基础矩阵乘法
[3214][2312]\begin{bmatrix}
3 & 2 \\
1 & 4
\end{bmatrix}
\begin{bmatrix}
2 & 3 \\
1 & 2
\end{bmatrix}[3124][2132]
计算思路:
- 第一个元素 C11C_{11}C11:(3×2+2×1)=8(3×2 + 2×1) = 8(3×2+2×1)=8
- 第二个元素 C12C_{12}C12:(3×3+2×2)=13(3×3 + 2×2) = 13(3×3+2×2)=13
- 第三个元素 C21C_{21}C21:(1×2+4×1)=6(1×2 + 4×1) = 6(1×2+4×1)=6
- 第四个元素 C22C_{22}C22:(1×3+4×2)=11(1×3 + 4×2) = 11(1×3+4×2)=11
结果:
[813611]\begin{bmatrix}
8 & 13 \\
6 & 11
\end{bmatrix}[861311]
案例2:3×2矩阵乘以2×2矩阵
[213012][4213]\begin{bmatrix}
2 & 1 \\
3 & 0 \\
1 & 2
\end{bmatrix}
\begin{bmatrix}
4 & 2 \\
1 & 3
\end{bmatrix}231102[4123]
计算步骤:
- C11=2×4+1×1=9C_{11} = 2×4 + 1×1 = 9C11=2×4+1×1=9
- C12=2×2+1×3=7C_{12} = 2×2 + 1×3 = 7C12=2×2+1×3=7
- C21=3×4+0×1=12C_{21} = 3×4 + 0×1 = 12C21=3×4+0×1=12
- C22=3×2+0×3=6C_{22} = 3×2 + 0×3 = 6C22=3×2+0×3=6
- C31=1×4+2×1=6C_{31} = 1×4 + 2×1 = 6C31=1×4+2×1=6
- C32=1×2+2×3=8C_{32} = 1×2 + 2×3 = 8C32=1×2+2×3=8
结果:
[9712668]\begin{bmatrix}
9 & 7 \\
12 & 6 \\
6 & 8
\end{bmatrix}9126768
案例3:包含特殊数字的矩阵乘法
[102−131][210−132]\begin{bmatrix}
1 & 0 & 2 \\
-1 & 3 & 1
\end{bmatrix}
\begin{bmatrix}
2 & 1 \\
0 & -1 \\
3 & 2
\end{bmatrix}[1−10321]2031−12
技巧应用:
- 注意0元素:可以跳过计算
- 负数处理:注意符号
计算过程:
- C11=1×2+0×0+2×3=8C_{11} = 1×2 + 0×0 + 2×3 = 8C11=1×2+0×0+2×3=8
- C12=1×1+0×(−1)+2×2=5C_{12} = 1×1 + 0×(-1) + 2×2 = 5C12=1×1+0×(−1)+2×2=5
- C21=(−1)×2+3×0+1×3=1C_{21} = (-1)×2 + 3×0 + 1×3 = 1C21=(−1)×2+3×0+1×3=1
- C22=(−1)×1+3×(−1)+1×2=−2C_{22} = (-1)×1 + 3×(-1) + 1×2 = -2C22=(−1)×1+3×(−1)+1×2=−2
结果:
[851−2]\begin{bmatrix}
8 & 5 \\
1 & -2
\end{bmatrix}[815−2]
案例4:含对角矩阵的乘法
[2003][1425]\begin{bmatrix}
2 & 0 \\
0 & 3
\end{bmatrix}
\begin{bmatrix}
1 & 4 \\
2 & 5
\end{bmatrix}[2003][1245]
简化技巧:
- 对角矩阵只需关注对角线上的元素
- 其他位置的0可以直接跳过
快速计算:
- C11=2×1=2C_{11} = 2×1 = 2C11=2×1=2
- C12=2×4=8C_{12} = 2×4 = 8C12=2×4=8
- C21=3×2=6C_{21} = 3×2 = 6C21=3×2=6
- C22=3×5=15C_{22} = 3×5 = 15C22=3×5=15
结果:
[28615]\begin{bmatrix}
2 & 8 \\
6 & 15
\end{bmatrix}[26815]
通过这些案例,我们可以看到:
- 保持清晰的计算顺序很重要
- 利用矩阵的特殊性质可以简化计算
- 注意正负号和零元素的处理
- 检查维度匹配和结果的合理性
这些例子展示了如何将前面讲的计算思路和技巧应用到实际计算中。掌握这些方法后,矩阵乘法计算会变得更加高效和准确。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)