
线性代数(一):向量的本质——不仅仅是箭头
向量无处不在 -- 从 GPS 导航到 Netflix 推荐。本章从空间中的箭头出发,构建直觉,一路推进到抽象向量空间,涵盖加法、数乘、内积、范数,以及线性性为何如此重要。
为什么要学向量?#
物理学家谈论“力”,数据科学家谈论“特征”,游戏程序员谈论“速度”,量子理论家谈论“态”。不同领域,不同术语——但背后指向的是同一个数学对象:向量。

这绝非巧合。向量是最简单却足够灵活的数学对象,能描述任何可以相加和缩放的东西。一旦你识别出这个模式,就会发现它无处不在。
大多数入门课程对“什么是向量”给出两个答案:
- “空间中一个有长度和方向的箭头。”
- “一组有序的数字。”
两者都正确,但都不完整。完整的故事是:向量就是存在于向量空间中的任意对象——一个支持加法和数乘运算的集合。箭头和数字列表是最常见的例子;函数、信号、多项式、量子态同样合法。
本章将从具体走向抽象,依次展开四个层次:
- 几何视角——可绘制的箭头。
- 数值视角——可用于计算的数字列。
- 结构视角——内积,融合前两者。
- 公理视角——适用于任何此类对象的通用规则。
你将学到什么#
- 如何从几何(箭头)和数值(列表)两个角度理解向量
- 三种基本运算:加法、数乘、减法
- 点积——代数与几何如何一致地定义“对齐”
- 多种度量大小的方式(范数),以及为何需要不止一种
- 向量空间的公理化定义——为何函数也能是向量
前置知识#
- 中学代数
- 平面直角坐标系($x$ –$y$ 平面)
- 勾股定理
一、几何视角:向量即箭头#
从行走指令到向量#
站在公园中心(设为原点)。朋友说:“向东走 4 步,再向北走 3 步。”
$$ \vec{v} = \begin{pmatrix} 4 \\ 3 \end{pmatrix}, $$其中 $4$ 表示东向($x$ 分量),$3$ 表示北向($y$ 分量)。
$$ \|\vec{v}\| = \sqrt{4^2 + 3^2} = 5. $$ $$ \theta = \arctan\!\left(\frac{3}{4}\right) \approx 37^\circ. $$因此,一个向量将长度与方向这两条几何信息打包成单一对象。

平移不变性:向量没有“家”#
初学者常感惊讶的第一个概念是:向量不关心起点在哪。无论你从公园中心还是东北角画出“4 东、3 北”,它都是同一个向量。只有方向和长度是不变量。
速度是最清晰的例子。一艘以 20 节航速向东行驶的船,无论在太平洋中央还是西班牙海岸附近,其速度向量都相同。位置每分钟都在变,速度向量却不变。
正因如此,绘图时我们常将向量锚定在原点——这是便利,而非约束。

向量加法:同一事物的三种图景#
给定两个向量 $\vec{a}$ 和 $\vec{b}$ ,其和 $\vec{a} + \vec{b}$ 可通过三种方式可视化,三者等价:
首尾相接:先沿 $\vec{a}$ 走,再沿 $\vec{b}$ 走,从起点到终点的箭头即为和。这是我们自然理解连续位移的方式。
平行四边形:从同一点画出两个向量,补全平行四边形,从该公共点出发的对角线即为和。物理学家常用此法合成作用于同一点的两个力。
$$ \begin{pmatrix} 3 \\ 1 \end{pmatrix} + \begin{pmatrix} 1 \\ 2.5 \end{pmatrix} = \begin{pmatrix} 4 \\ 3.5 \end{pmatrix}. $$用几何图景去理解,用分量去做计算——它们是一枚硬币的两面。

数乘:拉伸、压缩、反向#
将向量 $\vec{v}$ 乘以一个数(标量)$c$ ,会沿其自身直线重新缩放。行为分为四种情形:
- $c > 1$ :箭头在原方向上拉伸。
- $0 < c < 1$ :在原方向上收缩。
- $c = 0$ :坍缩为零向量。
- $c < 0$ :反向,并按 $|c|$ 缩放。
所有非零向量的标量倍数构成一条过原点的直线——这是你首次接触张成(span)的概念,将在第 2 章 深入探讨。

| |
一个驾驶类比能让此概念更牢固:若 $\vec{v}$ 是当前速度,则 $2\vec{v}$ 是加速至两倍速,$0.5\vec{v}$ 是半速巡航,而 $-\vec{v}$ 则是以相同速度掉头。
向量减法:“从此处到彼处”#
$$ \vec{b} - \vec{a} \;=\; \text{从 } A \text{ 指向 } B \text{ 的向量}. $$游戏引擎频繁使用此操作:玩家到目标的位移、子弹飞行方向、两个航点间的偏移——全都是位置向量的差。
二、数值视角:向量即数据#
超越二维与三维#
$$ \vec{v} = \begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{pmatrix} \in \mathbb{R}^n. $$你无法想象 100 维的箭头,但所有运算——加法、缩放、点积、范数——都无缝延续。这正是从“可见几何”迈向“仅可计算几何”的桥梁。
同一对象,三种视角#
以下五个数 $\{25.3,\,65.0,\,1013,\,15.2,\,45\}$ ,从三个传统视角看,本质是同一个向量。

物理学:物理空间中的箭头,如速度或力。
计算机科学:特征向量——一行测量值刻画一个样本,此处表示某时刻的天气状况(温度、湿度、气压、风速、云量)。
数学:一列实数,属于 $\mathbb{R}^5$ 。
| |
一旦你接受这三种视角实为同一对象,许多迥异的问题就变成了相同的计算。比较两位用户的电影偏好、两张图像的相似度、两个分子指纹——全都归结为我们即将定义的点积运算。
| |
自然语言处理中的著名例子更进一步:单词被训练为 300 维向量,使得 $\text{king} - \text{man} + \text{woman} \approx \text{queen}$ 。向量运算竟能捕捉语义。
三、内积:几何与代数的交汇#

内积(在 $\mathbb{R}^n$ 中也称点积)是本章最深刻的单一运算。它隐藏着一个小奇迹:两个看似毫不相关的定义,竟给出相同的数值。
两种定义,同一运算#
$$ \vec{a} \cdot \vec{b} \;=\; \sum_{i=1}^{n} a_i b_i \;=\; a_1 b_1 + a_2 b_2 + \cdots + a_n b_n. $$ $$ \vec{a} \cdot \vec{b} \;=\; \|\vec{a}\|\,\|\vec{b}\|\,\cos\theta, $$其中 $\theta$ 是 $\vec{a}$ 与 $\vec{b}$ 的夹角。
代数形式告诉你如何计算,几何形式揭示其含义:点积衡量两个向量在方向上的一致性。同向 ⇒ 大的正值;垂直 ⇒ 零;反向 ⇒ 大的负值。
投影:最佳近似#
$$ \operatorname{proj}_{\vec{b}}\vec{a} \;=\; \frac{\vec{a}\cdot\vec{b}}{\vec{b}\cdot\vec{b}}\,\vec{b}. $$这是*$\vec{b}$ 所在直线上离 $\vec{a}$ 尖端最近的点*。这并非巧合——最小二乘回归、主成分分析、信号滤波等众多“最佳线性近似”问题,核心思想皆源于此。

| |
正交性:几何化的独立性#
当 $\vec{a} \cdot \vec{b} = 0$ 时,两向量正交(垂直),记作 $\vec{a} \perp \vec{b}$ 。几何上意味着 90 度夹角。为何值得专门命名?
- 几何:正交方向互不干扰——沿其一移动,不会改变在另一方向上的投影。
- 统计:不相关的随机变量对应正交向量(协方差 $= 0$ )。
- 计算:正交基将问题解耦为独立的一维子问题。数值线性代数中几乎所有“高效”技巧都依赖正交性。
Cauchy–Schwarz 不等式#
$$ |\vec{a}\cdot\vec{b}| \;\leq\; \|\vec{a}\|\,\|\vec{b}\|, $$等号成立当且仅当其一为另一的标量倍。换言之:点积永不超过长度之积。这是 $|\cos\theta| \leq 1$ 的代数体现,也是整个分析学中最常用的不等式。
四、范数:度量大小的多种方式#
熟悉的“长度” $\sqrt{x_1^2+\cdots+x_n^2}$ 是向量大小的一种有效度量,称为 $L^2$ 范数。但它并非唯一,选择不同范数会改变问题的几何特性。
三种最常见范数#
| 范数 | 公式 | 直观 |
|---|---|---|
| $L^2$ (欧氏) | $\sqrt{\sum_i x_i^2}$ | 直线距离 |
| $L^1$ (曼哈顿) | $\sum_i \lvert x_i \rvert$ | 城市街区距离,只能沿街道走 |
| $L^\infty$ (最大值) | $\max_i \lvert x_i \rvert$ | 最坏情况分量 |
为何三种?因为不同问题关注点不同:
- $L^2$ 光滑,在原点外处处可微,且旋转不变。它是安全默认选项,也是点积的天然搭档。
- $L^1$ 有棱角。这种非光滑性反而是优势:它促使优化器趋向于使多个坐标精确为零。这正是 LASSO 回归与压缩感知的秘密。
- $L^\infty$ 用于只关心最坏分量而非平均的情形——鲁棒控制、误差界、最大误差保证。
单位球:范数的几何指纹#
观察范数的清晰方式是绘制其单位球——所有范数为 1 的向量集合。三种范数,三种迥异形状:

菱形在坐标轴上的尖角正是 $L^1$ 产生稀疏解的原因:当在菱形约束下最小化目标函数时,最优解倾向于落在尖角上,这意味着若干坐标为零。
一个令人安心的定理——范数等价性——指出:在有限维空间中,所有范数在定性上可互换:序列在一范数下收敛当且仅当在所有范数下收敛。数值不同,拓扑不变。
五、抽象视角:公理化的向量空间#
至此,“向量”意指“箭头”或“数字列”。但数学家注意到:许多截然不同的对象——箭头、多项式、连续函数、随机变量、量子态——都遵循相同规则。于是他们将这些规则提炼为定义。
定义#
一个向量空间 $V$ (定义在域 $\mathbb{F}$ 上,通常为 $\mathbb{R}$ 或 $\mathbb{C}$ )是一个集合,配备两种运算:
- 向量加法,$\vec{u} + \vec{v} \in V$ ,
- 标量乘法,$c\,\vec{v} \in V$ ,
满足十条公理(加法交换律与结合律、零向量与加法逆元存在性、分配律、标量乘法结合律及单位元)。公理是细则,精神可归为一句:
任何可相加、可缩放且遵守常规代数规则的对象,都是向量。
意想不到的向量空间#
连续函数:$[0,1]$ 上所有连续函数构成向量空间:逐点相加 $(f+g)(x) = f(x) + g(x)$ ;逐点缩放 $(cf)(x) = c\,f(x)$ ;零向量是恒零函数。此空间是无限维的——可视为每个 $x \in [0,1]$ 对应一个坐标的向量。
多项式:次数不超过 $n$ 的多项式构成 $(n+1)$ 维向量空间,自然基为 $\{1, x, x^2, \ldots, x^n\}$ 。
矩阵:所有 $m \times n$ 矩阵构成 $mn$ 维向量空间;加法与缩放均为逐元素操作。
量子态:量子态是复 Hilbert 空间中的单位向量。“叠加态”不过是穿了燕尾服的向量加法。
抽象的价值#
一旦在公理层面证明定理,它便适用于所有满足公理的场景:
- Cauchy–Schwarz 不等式适用于列向量、函数空间及随机变量(此时变为协方差不等式 $|\operatorname{Cov}(X,Y)| \le \sigma_X \sigma_Y$ )。一定理,三领域。
- 傅里叶分析即“将函数分解为正交基向量的线性组合”——与第 7 章 对列向量的操作完全一致。
- 量子力学即“在无限维内积空间中研究物理”。
这正是线性代数的深层回报:掌握结构一次,终身应用。
六、现实中的向量#
五行代码实现游戏物理#
| |
这就是离散化的牛顿力学。你玩过的每个游戏物理引擎,核心都是这两行代码,每秒重复 60 次。
调色即向量加法#
| |
RGB 颜色存在于 $\mathbb{R}^3$ 中。混合颜色本质上就是向量运算。
GPS 定位简化为向量方程#
$$ \|\vec{x} - \vec{s}_i\| \;=\; d_i. $$在平面中,两个方程给出两个交点;第三个确定唯一解。在三维中,需四颗卫星(第四颗用于钟差校正)。仅此而已——价值数十亿美元的基础设施,表达为向量方程。
七、常见陷阱#
“向量必须从原点出发。” 错。向量平移不变;从原点画仅为方便。
“向量就是一串数字。” 半对。数字串是向量的一种表示。连续函数、多项式、量子态也是向量,却无法写成有限数字列。
“点积与叉积类似。” 不然。点积取两向量返回标量;叉积(仅存于 $\mathbb{R}^3$ ,$\mathbb{R}^7$ 有类似物)取两向量返回向量。输入相同,输出迥异。
“零向量有方向。” 否。零向量是唯一无明确定义方向的向量——这正是 $\vec{v}/\|\vec{v}\|$ 等公式需特殊处理的原因。
九、后续内容#
在 第 2 章 :线性组合与向量空间 中,我们将探讨几个自然问题:
- 如何用少量向量构建整个空间?(张成)
- 何时某些向量是冗余的?(线性无关)
- 描述空间所需的最小“完整工具箱”是什么?(基与维数)
这三个概念将“向量”的静态概念转化为“坐标系”的动态概念。
八、总结#
| 概念 | 核心思想 |
|---|---|
| 向量 | 有大小与方向的对象——更广义地,向量空间中的元素 |
| 加法 | 首尾相接、平行四边形或分量相加——三者等价 |
| 标量乘法 | 沿同一直线拉伸、收缩或反向 |
| 内积 | 度量对齐程度;代数与几何在此一致 |
| 投影 | 最佳一维近似——最小二乘的原型 |
| 范数 | 度量大小;不同范数反映不同优先级 |
| 向量空间 | 任意满足加法与缩放公理的集合——包括函数空间 |
核心洞见#
向量不是箭头,也不是数字列。它是一种模式——一套简洁而锋利的“可加可缩”规则。一旦你开始留意,就会在图像、信号、量子态、金融组合、神经网络参数、概率分布中处处发现它。线性代数研究的正是这一模式。
数值稳定性:向量运算在代码中失效之时#
我想指出一个常被忽视的问题:教科书公式 $\cos\theta = \vec{u}\cdot\vec{v} / (\|\vec{u}\|\,\|\vec{v}\|)$ 并非计算两向量夹角的安全方法。试试这对几乎平行的单位向量:
| |
发生了什么?norm 内部对分量平方,使小量 $10^{-9}$
变为 $10^{-18}$
,低于双精度在 1 附近的分辨率(约 $2.22 \times 10^{-16}$
)。于是 $c$
舍入为精确 1,而 arccos(1) = 0。
atan2 对极小或接近 $\pi$
的角度均保持全精度。同理适用于:Gram-Schmidt(用修正版或 Householder,勿用经典版)、方差计算(用 Welford 在线公式,勿用 $E[X^2] - (E[X])^2$
)、softmax(先减最大值)。
关键点:本章所学代数在 $\mathbb{R}$ 上精确,但每行代码运行于 $\mathbb{F}_{64}$ ——一个约含 $2^{64}$ 个有理数的有限集。抵消、溢出、舍入非边缘情况——它们决定模型能否训练。
np.dot 的真实运作#
当你对两个一维数组调用 np.dot(u, v) 时,NumPy 不会执行 Python 循环。它会分派至 BLAS Level 1 例程——通常是 OpenBLAS、MKL 或 Apple Accelerate 提供的 cblas_ddot,以手工优化的 C 或汇编编写。对长度 $n$
的向量,该例程:
- 检查对齐与步长。若两数组连续,则走快速路径。
- 将循环拆为 4 或 8 元素块,利用 SIMD 指令(x86 上 AVX2/AVX-512,ARM 上 NEON),单条 CPU 指令并行完成 4 或 8 个双精度乘加。
- 在独立寄存器中累加部分和以打破依赖链,最后合并。这比朴素顺序求和快 4–8 倍,且——略反直觉——会改变比特级精确结果,因浮点加法不满足结合律。
开销:$\Theta(n)$
FLOPs 与 $\Theta(n)$
内存读取。现代笔记本上处理 $10^6$
长向量时,应达 5–10 GFLOPS,耗时约 0.1 毫秒。若实测慢得多,说明 NumPy 未走 BLAS 路径——通常因非连续切片(如 u[::2])或 object dtype。
同理可推广。A @ B 对 $n \times n$
矩阵调用 dgemm(BLAS Level 3),使用分块算法将数据保留在 L1/L2 缓存。这正是手写 Python 三重循环比 NumPy 慢千倍的原因——非因 Python 单次乘法慢,而是无法像 dgemm 那样高效利用缓存。
因此,本章说“内积即 $\sum u_i v_i$
”在数学上成立。但实际中,np.dot 是你调用过的最高度优化的软件之一。信任它,勿重造。
线性代数 18 篇
- 01 线性代数(一):向量的本质——不仅仅是箭头 当前
- 02 线性代数(二):线性组合与向量空间
- 03 线性代数(三):矩阵作为线性变换
- 04 线性代数(四):行列式的秘密
- 05 线性代数(五):线性方程组与列空间
- 06 线性代数(六):特征值与特征向量
- 07 线性代数(七):正交性与投影——当向量互不干扰
- 08 线性代数(八):对称矩阵与二次型
- 09 线性代数(九):奇异值分解 SVD
- 10 线性代数(十):矩阵范数与条件数——数值计算的健康体检
- 11 线性代数(十一):矩阵微积分与优化——从梯度到反向传播
- 12 线性代数(十二):稀疏矩阵与压缩感知——少即是多的数学奇迹
- 13 线性代数(十三):张量与多线性代数——从标量到高维数据立方体
- 14 线性代数(十四):随机矩阵理论——混沌中的秩序
- 15 线性代数(十五):机器学习中的线性代数——从 PCA 到推荐系统
- 16 线性代数(十六):深度学习中的线性代数——从全连接到 Transformer
- 17 线性代数(十七):计算机视觉中的线性代数——从像素到三维重建
- 18 线性代数(十八):前沿应用与总结——量子计算、GNN、大模型,与十八章回望