← 目录Ch05 特殊矩阵
Ch05 矩阵乘法

Matrix Multiplication · 线性代数最重要的运算

🎮 矩阵乘法能做什么?

线性代数中最重要的运算

变换复合原图→R(30°)→S(2×)S × R × x = 一步到位
🎮 场景一:游戏角色变换

角色先旋转 30°,再缩放 2 倍。如何用一次运算完成?

开篇
矩阵乘法无处不在

图形变换、神经网络、推荐系统、PageRank——它们的核心都是矩阵乘法。

5.1 向量内积
🎯 目标:理解 xᵀy = ‖x‖‖y‖cos θ,结果是标量

🎮 向量内积探索器

拖动滑块改变向量,观察内积和夹角的变化

向量 x
向量 y
内积 x·y
6.0
夹角 θ
53.1°
x·y = ‖x‖·‖y‖·cos(θ) = 3.16 × 3.16 × 0.60
↗ 两向量方向相近(锐角)
xyθ = 53°
5.2 向量外积
🎯 目标:理解 xyᵀ 生成秩-1 矩阵

🎮 向量外积构建器

调整向量 x 和 y,观察外积矩阵 xyᵀ 如何生成

列向量 x (3×1)
行向量 yᵀ (1×2)
🔍 观察秩1特性
第1行 / 第2行 = 0.50
第2行 / 第3行 = 0.67
每行都是第一行的倍数 → 秩 = 1
x
1
2
3
⊗
yᵀ
4
5
=
xyᵀ (3×2)
4
5
8
10
12
15
计算过程:每个元素 = x的元素 × y的元素
[1,1]: 1 × 4 = 4
[1,2]: 1 × 5 = 5
[2,1]: 2 × 4 = 8
[2,2]: 2 × 5 = 10
[3,1]: 3 × 4 = 12
[3,2]: 3 × 5 = 15
5.3 矩阵乘向量
🎯 目标:理解 y = Ax 是线性变换

🎮 矩阵-向量乘法变换器

调整矩阵 A 和输入向量 x,观察输出 y = Ax 的变化

变换矩阵 A
A = [1.0, -0.5; 0.5, 1.0]
输入向量 x
输出向量 y = Ax
y₁
1.50
y₂
2.00
y = 2.0·[1.0, 0.5]ᵀ + 1.0·[-0.5, 1.0]ᵀ
e₁e₂Ae₁Ae₂xy=Ax输入 x输出 y=AxAe₁ (第1列)Ae₂ (第2列)
💡 理解:矩阵的两列 Ae₁ 和 Ae₂ 告诉我们基向量被映射到哪里。 输出 y = x₁·(Ae₁) + x₂·(Ae₂),即输入向量的系数不变,但基向量改变了。
5.4 矩阵乘矩阵
🎯 目标:理解 Cᵢⱼ = A的第i行 · B的第j列

🎮 矩阵乘法逐步计算器

点击结果矩阵的任意元素,查看它是如何计算出来的

矩阵 A
1234
×
矩阵 B
5678
=
结果 C = A×B(点击元素)
19224350
计算 C[1,1]= A 的第 1 行 · B 的第 1 列
[1, 2]
·
[5][7]
=
19
c11 = 1×5 + 2×7 = 5 + 14 = 19
🔬 实验:矩阵乘法探索
🎯 目标:自定义矩阵,观察乘法结果
cᵢⱼ = 行 · 列
选择行 i 与列 j,观察单元格如何由点积获得
m
k
n
行 i (0-based)
列 j (0-based)
形状:A 3×3 · B 3×3 → C 3×3
c[0,0] = -0.77
🔬 实验:乘积热力图
🎯 目标:可视化数值模式
矩阵乘积热力图
调整维度 m×k 与 k×n,观察乘积模式
m
k
n
5.5 变换的复合
🎯 目标:理解 AB 表示先 B 后 A(从右往左读)

🎮 变换复合演示器

观察 AB 如何表示"先 B 后 A"的变换顺序

变换 B(先执行)
变换 A(后执行)
动画步骤
📐 变换顺序
1原始正方形
2先做 B: 缩放1.5×
3再做 A: 旋转45°
!结果 = AB(矩阵乘法)
xy原始
💡 关键理解:矩阵乘法 AB 表示先做 B,再做 A(从右往左读)。 这是因为 (AB)x = A(Bx),向量 x 先被 B 变换,结果再被 A 变换。
5.6 矩阵与统计
🎯 目标:用矩阵语言表达求和、均值、方差
矩阵语言表达统计量求和 1ᵀx:1111·2468=20平均 (1ᵀx)/n:20 / 4 =5平方和 xᵀx:2468·2468=2² + 4² + 6² + 8²= 4 + 16 + 36 + 64120‖x‖₂² = xᵀx = 120(向量的欧几里得范数平方)
本章小结
矩阵乘法速查

乘法形态:

  • 内积 xᵀy → 标量(相似度)
  • 外积 xyᵀ → 秩-1 矩阵
  • Ax → 线性变换
  • AB → 变换复合

核心规则:

  • 形状兼容:(m×k) × (k×n) = (m×n)
  • AB ≠ BA(不可交换)
  • (AB)x = A(Bx)(从右往左)

📚 下一章:Ch06 特殊矩阵