200字
跟着AI学AI-数学基础线性代数(3)
2026-03-06
2026-03-06

太棒了!看到"3",我就知道你已经准备好进入第 3 课:矩阵乘法的奥秘了!🎉

这节课是线性代数的"分水岭",很多人卡在这里。但别担心,我们依然用初中知识+生活例子,把它讲得明明白白!


📚 第 3 课:矩阵乘法 —— 为什么是"左行 × 右列"?

1️⃣ 先问一个灵魂问题:

矩阵乘法,为什么不是对应位置直接相乘?

比如:

\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \times \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \quad \text{❌ 不等于} \quad \begin{bmatrix} 1\times5 & 2\times6 \\ 3\times7 & 4\times8 \end{bmatrix}

答案:因为矩阵乘法的设计目的,不是为了"数字游戏",而是为了描述现实中的组合关系


2️⃣ 用一个"奶茶店"例子彻底搞懂

🧋 场景设定:

你开了一家奶茶店,卖两种饮品:

  • 珍珠奶茶:成本 3 元,售价 8 元
  • 水果茶:成本 5 元,售价 12 元

某天销售情况:

  • 上午:卖出 10 杯珍珠奶茶,6 杯水果茶
  • 下午:卖出 8 杯珍珠奶茶,12 杯水果茶
💡 点击看个人备注 由于列间是直接相关的,行间是不直接相关的,此处可以把 珍珠奶茶和水果茶的数据拆成两列 行是两列对应的数据, 那为啥时间又成了相关的 所以我提问了AI它回答我:

这其实是线性代数里最核心、也最容易让人困惑的地方:矩阵的行和列到底代表什么?

你的疑问主要集中在两点:

  1. 为什么要把“时间”放在列上?(你觉得时间好像不应该和商品混在一起)
  2. 行列的“相关性”到底怎么看?

别担心,我们把这个逻辑彻底拆解开。

1. 核心原则:矩阵乘法是“消消乐”

矩阵乘法 A \times B 有一个硬性规则:A 的列数 必须等于 B 的行数

你可以把这两个相等的维度想象成**“接口”或者“桥梁”。在计算过程中,这个维度会被“消耗掉”**(求和消去),剩下的外圈维度组成了新的矩阵。

回到奶茶店的例子:

\underbrace{\begin{bmatrix} \text{成本} \\ \text{售价} \end{bmatrix}}_{\text{钱的类型 (2 行)}} \times \underbrace{\begin{bmatrix} \text{珍珠} & \text{珍珠} \\ \text{水果} & \text{水果} \end{bmatrix}}_{\text{商品类型 (2 行)}} \times \underbrace{\begin{bmatrix} \text{上午} \\ \text{下午} \end{bmatrix}}_{\text{时间 (2 列)}}

等等,上面的写法是为了展示逻辑,实际矩阵是这样的:

\underbrace{\begin{bmatrix} 3 & 5 \\ 8 & 12 \end{bmatrix}}_{\text{价格矩阵 } P} \times \underbrace{\begin{bmatrix} 10 & 8 \\ 6 & 12 \end{bmatrix}}_{\text{销量矩阵 } S}

🔍 维度拆解:

  • 价格矩阵 P
    • :钱的类型(成本、售价)
    • :商品类型(珍珠、水果) \leftarrow 这是接口 A
  • 销量矩阵 S
    • :商品类型(珍珠、水果) \leftarrow 这是接口 B
    • :时间(上午、下午)

🌉 为什么这样设计?

因为我们要消去“商品类型”
我们不在乎单个商品卖了多少,我们在乎的是总共收了多少钱。
所以,“商品类型”必须一个在列(左边),一个在行(右边),这样它们才能对应相乘并相加,最后“消失”,留下我们想要的结果:

\text{结果} = \begin{bmatrix} \text{钱的类型} \\ \text{(行)} \end{bmatrix} \times \begin{bmatrix} \text{时间} \\ \text{(列)} \end{bmatrix} = \begin{bmatrix} \text{上午成本} & \text{下午成本} \\ \text{上午收入} & \text{下午收入} \end{bmatrix}

2. 回答你的疑问:“为啥时间成了相关的?”

其实,时间并不是“相关”的,时间只是“并列”的。

  • 列的含义:在矩阵里,同一行的不同列,通常表示同类事物的不同样本
    • 在销量矩阵里,列代表“上午样本”和“下午样本”。
    • 它们都是“销量数据”,只是发生的时间不同。
  • 为什么放列上?:这是为了结果好看
    • 如果你把时间放行的位置,最后算出来的结果矩阵,时间就会变成行。
    • 通常我们习惯把“指标”(成本、收入)放在行,把“样本”(上午、下午)放在列,这样方便对比。

结论:时间放在列上,是为了让最终结果表里,上午和下午能并排显示,方便老板对比。这是一种人为的排版习惯,不是数学强制规定的。

3. 如果非要换一种排法呢?(转置)

你的直觉其实也没错!完全可以把商品放在行,时间放在列,或者反过来。只要保证**“接口维度”匹配**即可。

比如,如果你想把商品放在行

  • 价格矩阵就得变成:行=商品,列=钱类型(这叫转置)。
  • 销量矩阵就得变成:行=时间,列=商品。

这样也能乘,但顺序要变:S \times P

为了让你直观看到**“维度匹配”**的重要性,我写了一小段代码来演示这两种不同的排法。虽然结果一样,但矩阵的形状变了。

线性代数/矩阵结构/维度匹配演示.py

import numpy as np

# 方法 1:之前的写法(消去商品维度)
# 价格:2 行 (钱类型) x 2 列 (商品)
P1 = np.array([
    [3, 5],   # 成本:珍珠 3, 水果 5
    [8, 12]   # 售价:珍珠 8, 水果 12
])

# 销量:2 行 (商品) x 2 列 (时间)
S1 = np.array([
    [10, 8],  # 珍珠:上午 10, 下午 8
    [6, 12]   # 水果:上午 6,  下午 12
])

# 计算:(2x2) * (2x2) -> (2x2)
# 中间维度 "2 (商品)" 被消去
Result1 = P1 @ S1 
print("方法 1 结果形状:", Result1.shape) 
# 含义:2 行 (钱类型) x 2 列 (时间)


# 方法 2:你的直觉写法(商品放在行)
# 价格:2 行 (商品) x 2 列 (钱类型) -> 这是 P1 的转置
P2 = P1.T 

# 销量:2 行 (时间) x 2 列 (商品) -> 这是 S1 的转置
S2 = S1.T

# 注意:这时候要算总钱数,乘法顺序要变!
# 必须是 销量 (时间 x 商品) * 价格 (商品 x 钱类型)
# 中间维度 "2 (商品)" 依然被消去
Result2 = S2 @ P2

print("方法 2 结果形状:", Result2.shape)
# 含义:2 行 (时间) x 2 列 (钱类型)
# 结果其实是 Result1 的转置,信息一样,只是行列换了位置

4. 总结你的“备注”

你提到的:“列间是直接相关的,行间是不直接相关的”

在线性代数的应用里,更准确的理解是:

  • 行(Row):通常代表一种属性特征(比如:都是价格,都是成本)。
  • 列(Column):通常代表一个样本实例(比如:都是珍珠奶茶的数据,都是上午的数据)。

为什么时间成了列?
因为在销量矩阵里,我们把“上午”和“下午”看作两个独立的样本

  • 第一列样本:上午的销售情况。
  • 第二列样本:下午的销售情况。
    它们共享相同的行属性(珍珠销量、水果销量)。

🎯 给你的建议

你现在的思考方式已经很棒了,开始关注数据的结构而不仅仅是数字计算。接下来你只需要记住一个黄金法则:

矩阵乘法就像拼积木,接触面(中间维度)必须一样大,才能拼在一起。拼完之后,接触面就看不见了,只剩下外表面。

  • 接触面 = 商品类型(被算总账消掉了)
  • 外表面 = 钱类型 vs 时间(留下了结果)

这样解释,有没有解开你关于“时间相关性”的疑惑?如果还有觉得别扭的地方,我们继续抠细节!😊

❓ 问题:上午和下午的总成本总收入分别是多少?

✅ 第一步:把数据写成矩阵

价格矩阵(每列是一种饮品):

P = \begin{bmatrix} \text{成本} & \text{成本} \\ \text{售价} & \text{售价} \end{bmatrix} = \begin{bmatrix} 3 & 5 \\ 8 & 12 \end{bmatrix}

销量矩阵(每列是一个时段):

S = \begin{bmatrix} \text{上午} & \text{下午} \\ \text{珍珠} & \text{珍珠} \\ \text{水果} & \text{水果} \end{bmatrix} = \begin{bmatrix} 10 & 8 \\ 6 & 12 \end{bmatrix}

个人备注:由于矩阵乘法就像拼积木,接触面(中间维度)必须一样大,才能拼在一起。拼完之后,接触面就看不见了,只剩下外表面。所以我们心中要找到不要的内容作为 “接口“,此处问题上午和下午的总成本总收入是多少?没有提到的就是商品类型所以商品类型变成了维度的 “牺牲品“
AI回复:这就是所谓的 “爱因斯坦求和约定” 的直观体现(虽然我们现在还没提这个名字,但你已经掌握了它的灵魂(维度消去))。

✅ 第二步:用"左行 × 右列"计算

我们想算:上午的总成本 = 珍珠成本×销量 + 水果成本×销量

\text{上午成本} = \begin{bmatrix} 3 & 5 \end{bmatrix} \times \begin{bmatrix} 10 \\ 6 \end{bmatrix} = 3\times10 + 5\times6 = 60 \text{元}

发现了吗?👉 左边取一行,右边取一列,对应相乘再相加

✅ 第三步:完整矩阵乘法

\begin{bmatrix} 3 & 5 \\ 8 & 12 \end{bmatrix} \times \begin{bmatrix} 10 & 8 \\ 6 & 12 \end{bmatrix} = \begin{bmatrix} 3\times10+5\times6 & 3\times8+5\times12 \\ 8\times10+12\times6 & 8\times8+12\times12 \end{bmatrix} = \begin{bmatrix} 60 & 84 \\ 152 & 208 \end{bmatrix}

📊 结果解读:

\begin{bmatrix} \text{上午成本} & \text{下午成本} \\ \text{上午收入} & \text{下午收入} \end{bmatrix} = \begin{bmatrix} 60 & 84 \\ 152 & 208 \end{bmatrix}

✅ 上午赚:152 - 60 = 92 元
✅ 下午赚:208 - 84 = 124 元

🌟 核心领悟:矩阵乘法的"行×列求和",本质上是在算加权总和,就像算"总价 = 单价₁×数量₁ + 单价₂×数量₂ + ..."


3️⃣ 矩阵乘法的"交通规则"(重要!)

不是任意两个矩阵都能相乘!必须满足:

🔑 左边矩阵的列数 = 右边矩阵的行数

🚦 举例:

左矩阵右矩阵能否相乘?结果大小
33×4✅ 能!2×4
32×4❌ 不能!-
1×31✅ 能!1×1(一个数)

🎯 记忆口诀:

"中间相同,两边留下"
(m×n) × (n×p) = m×p


4️⃣ 动手练一练(小白友好版)

计算:

\begin{bmatrix} 1 & 2 & 3 \end{bmatrix} \times \begin{bmatrix} 4 \\ 5 \\ 6 \end{bmatrix} = ?
💡 点击看思路
  • 左边是 1 行 3 列,右边是 3 行 1 列 → ✅ 能乘!
  • 结果应该是 1 行 1 列(就是一个数)
  • 计算:1\times4 + 2\times5 + 3\times6 = 4 + 10 + 18 = 32

✅ 答案:\begin{bmatrix} 32 \end{bmatrix} 或直接写 32


5️⃣ 矩阵乘法的"几何意义"(拓展视野)

如果把向量看作"箭头",矩阵看作"变换机器":

矩阵 × 向量 = 对这个箭头做拉伸、旋转、剪切等变换

🎮 游戏例子:

假设有一个向量 \vec{v} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}(指向右方的单位箭头)

用一个"旋转 90°"的矩阵去乘它:

\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \times \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 1 \end{bmatrix}

✅ 结果:箭头从"向右"变成了"向上"!这就是旋转!

🌟 矩阵乘法不只是算数,更是空间变换的语言


🧠 本课小结

知识点一句话记住
为什么行×列因为要算"加权总和",比如总价=Σ(单价×数量)
乘法规则左行乘右列,对应相乘再相加
能否相乘左列数 = 右行数(中间相同,两边留下)
几何意义矩阵是"变换机器",乘法就是对向量做变换

🗺️ 下一步预告

📌 第 4 课:行列式 —— 矩阵的"缩放倍数"是多少?
📌 第 5 课:逆矩阵 —— 如何"撤销"一个变换?
📌 第 6 课:特征值 —— 哪些方向在变换中"保持不动"?

✅ 小测试(巩固一下)

已知:

A = \begin{bmatrix} 2 & 1 \\ 0 & 3 \end{bmatrix}, \quad B = \begin{bmatrix} 4 \\ 5 \end{bmatrix}
  1. A \times B = ?
  2. 如果 C = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix},那么 C \times B 能算吗?为什么?
💡 点击看答案
\begin{bmatrix} 2 & 1 \\ 0 & 3 \end{bmatrix} \times \begin{bmatrix} 4 \\ 5 \end{bmatrix} = \begin{bmatrix} 2\times4 + 1\times5 \\ 0\times4 + 3\times5 \end{bmatrix} = \begin{bmatrix} 13 \\ 15 \end{bmatrix}
  1. ❌ 不能!因为 C 是 1×3 矩阵,B 是 2×1 矩阵,3 ≠ 2,不满足"中间相同"的规则。

🎯 现在轮到你了

  • 如果这节课的内容跟上了,回复"4",我们进入第 4 课:行列式的秘密!
  • 如果"行×列"还是有点晕,告诉我哪里卡住了,我用更简单的例子再讲一遍!

你的学习节奏,你说了算~ 😊

跟着AI学AI-数学基础线性代数(3)
作者
WuQingYang
发表于
2026-03-06
License
CC BY-NC-SA 4.0