向量点积:我打车花了200块,到底走了多远?

线性代数 Apr 14, 2025

向量点积是什么?我打车花了 200 块,到底走了多远?

如果你在大学里学过向量点积(Dot Product),你可能只记得一堆公式和计算。但如果我告诉你,点积就是“你打车花了 200 块,到底走了多远”这件事呢?

从吃货的角度理解向量

向量有两个特点:方向大小。就像你去火锅店——“往南走 500 米”,“往南”是方向,“500 米”是大小。

如果你说“我去火锅店吃了 500 块钱的肉”——这是数量,不是向量,因为没有方向。数学上叫做“标量”。

点积到底是什么意思?

点积的公式是这样的:

向量 A · 向量 B = |A| × |B| × cos(θ)

看起来很复杂?其实就是说:两个向量在同一个方向上有多“投影”

想象一下:

  • 你打车往东走了 10 公里(向量 A)
  • 你的目标地在东北方向 5 公里(向量 B)
  • 点积就是计算:你实际往目标地方向走了多少?

如果你完全顺路(方向一样),点积最大。如果你走反了(方向相反),点积是负的。如果你走的方向和目标完全垂直,点积为零——你白走了!

代码实现

import math

# 向量 A:往东 10公里
A = [10, 0]
# 向量 B:东北方向 5公里 (45°)
B = [5 * math.cos(math.radians(45)),
     5 * math.sin(math.radians(45))]

# 点积
dot = A[0]*B[0] + A[1]*B[1]
print(f"你实际往目标方向走了 {dot:.2f} 公里")
# 输出:你实际往目标方向走了 3.54 公里

点积在真实世界的应用

  • 推荐系统:比较你和另一个用户的偏好向量,点积越大越相似
  • ChatGPT 的注意力机制:计算词之间的关联度
  • 图像识别:比较两张图片的相似度
  • 机器学习:几乎所有模型都用到向量运算

总结

点积就是测量“两个向量有多同向”的工具。它没有那么可怕,只是一种“投影”的数学表达。下次打车的时候可以想一想,你的 200 块钱到底有多少是“有效行程”?

Tags