Skip to content

向量空间、基与维数 ​

上一章结尾留下一个没兑现的说法:两个列向量"能不能张成整个平面".这话当时靠直觉撑着,现在要把它拆成四个精确的词——张成、线性无关、基、维数.

拆完你会得到一个不太舒服的结论:坐标不是向量的属性.同一个箭头,换一组基,坐标就全变了.

高中那点工具,够用到哪里 ​

这一章的核心对象,教材已经给过你了——而且比你想的更近:

  • 必修二 6.3.1 平面向量基本定理:平面上两个不共线的向量 e1\mathbf{e}_1、e2\mathbf{e}_2 叫一组"基底",平面内任一向量 a\mathbf{a} 都能写成 a=λ1e1+λ2e2\mathbf{a} = \lambda_1\mathbf{e}_1 + \lambda_2\mathbf{e}_2,而且这对实数唯一. 把"基底"换成"基"、"系数"换成"坐标",就是这个定理的逐字翻译.
  • 必修二 6.3.2 正交分解及坐标表示:基底取成互相垂直的 e1=(1,0)\mathbf{e}_1 = (1,0)、e2=(0,1)\mathbf{e}_2 = (0,1),分解式就变成你天天写的 (x,y)(x, y)——教材里的坐标,是"标准基下的坐标",只是默认到不写基底.
  • 选必一 1.2 空间向量基本定理:同一件事在空间里——三个不共面的向量当基底,任意空间向量有唯一分解. 二维、三维的"基本定理",到 nn 维就是这一章的"基与坐标".

一个教材场景,两种读法. 平行四边形 ABCDABCD,高中常用"以 {AB→,AD→}\{\overrightarrow{AB}, \overrightarrow{AD}\} 为基底"表示其它向量:对角线

AC→=AB→+AD→,BD→=AD→−AB→.\overrightarrow{AC} = \overrightarrow{AB} + \overrightarrow{AD}, \qquad \overrightarrow{BD} = \overrightarrow{AD} - \overrightarrow{AB}.

换成线代语言:AC→\overrightarrow{AC} 在这组基下的坐标是 (1,1)(1,1),BD→\overrightarrow{BD} 是 (−1,1)(-1,1). 现在反过来,用 {AC→,BD→}\{\overrightarrow{AC}, \overrightarrow{BD}\} 当基表示 AB→\overrightarrow{AB}、AD→\overrightarrow{AD}:

AB→=12AC→−12BD→,AD→=12AC→+12BD→.\overrightarrow{AB} = \tfrac12\overrightarrow{AC} - \tfrac12\overrightarrow{BD}, \qquad \overrightarrow{AD} = \tfrac12\overrightarrow{AC} + \tfrac12\overrightarrow{BD}.

同一个 AB→\overrightarrow{AB},前一组基下坐标是 (1,0)(1,0),后一组基下坐标是 (12,−12)(\tfrac12, -\tfrac12)——向量没动,坐标全变了. 这就是开头那句"坐标不是向量的属性"的高中版本;这一章把它说清楚.

本章的舞台 ​

先把要用的东西定义下来.

定义(nn 维坐标空间) 记

Rn={(x1,…,xn)∣xi∈R},\mathbb{R}^n = \{(x_1, \dots, x_n) \mid x_i \in \mathbb{R}\},

加法与数乘按分量定义:

(x1,…,xn)+(y1,…,yn)=(x1+y1,…,xn+yn),a(x1,…,xn)=(ax1,…,axn).(x_1,\dots,x_n) + (y_1,\dots,y_n) = (x_1+y_1, \dots, x_n+y_n), \qquad a(x_1,\dots,x_n) = (a x_1, \dots, a x_n).

n=2n = 2 就是平面,n=3n = 3 就是空间.高中写的 (x,y)(x, y) 就是 R2\mathbb{R}^2 里的元素,只是教材没起这个名字.

Rn\mathbb{R}^n 只是一个例子.凡是"能加、能按实数伸缩、并且满足加法交换结合、有零元、有负元、数乘与加法相容"这些常识规律的集合,都叫向量空间.精确的公理写在下面,现在不看完全不影响本章;等以后遇到函数空间、矩阵空间时再回来对一遍.

向量空间的公理(选读)

设集合 VV 上定义了加法 +:V×V→V+: V \times V \to V 与数乘 ⋅:R×V→V\cdot: \mathbb{R} \times V \to V.若对任意 u,v,w∈V\mathbf{u}, \mathbf{v}, \mathbf{w} \in V 与 a,b∈Ra, b \in \mathbb{R}:

  1. u+v=v+u\mathbf{u} + \mathbf{v} = \mathbf{v} + \mathbf{u};
  2. (u+v)+w=u+(v+w)(\mathbf{u} + \mathbf{v}) + \mathbf{w} = \mathbf{u} + (\mathbf{v} + \mathbf{w});
  3. 存在零向量 0\mathbf{0},使 v+0=v\mathbf{v} + \mathbf{0} = \mathbf{v};
  4. 每个 v\mathbf{v} 有相反向量 −v-\mathbf{v},使 v+(−v)=0\mathbf{v} + (-\mathbf{v}) = \mathbf{0};
  5. a(v+w)=av+awa(\mathbf{v} + \mathbf{w}) = a\mathbf{v} + a\mathbf{w};
  6. (a+b)v=av+bv(a + b)\mathbf{v} = a\mathbf{v} + b\mathbf{v};
  7. a(bv)=(ab)va(b\mathbf{v}) = (ab)\mathbf{v};
  8. 1v=v1\mathbf{v} = \mathbf{v},

就称 VV 是 R\mathbb{R} 上的向量空间.前四条说 VV 的加法是一个交换群,后四条说数乘与加法的配合没问题.

还有一个词后面会反复用:

定义(子空间) VV 的子集 WW 若对加法和数乘都封闭(WW 里两个向量相加仍在 WW 里,WW 里的向量乘实数仍在 WW 里),就称 WW 是 VV 的子空间.

直线 y=xy = x 是 R2\mathbb{R}^2 的子空间:线上两个向量相加仍在线上,伸缩也仍在线上.而直线 y=x+1y = x + 1 不是——它甚至不含原点,加两个点会跑到 y=x+2y = x + 2 上去.

四个词 ​

下面四个定义都只涉及有限个向量.本章只聊"有限个向量够用"的空间.

张成:能拼出什么 ​

定义(张成) 对向量 v1,…,vk\mathbf{v}_1, \dots, \mathbf{v}_k,它们的张成是全部线性组合:

span⁡{v1,…,vk}={λ1v1+⋯+λkvk∣λ1,…,λk∈R}.\operatorname{span}\{\mathbf{v}_1, \dots, \mathbf{v}_k\} = \{\lambda_1\mathbf{v}_1 + \dots + \lambda_k\mathbf{v}_k \mid \lambda_1, \dots, \lambda_k \in \mathbb{R}\}.

人话版:把这些向量任意乘系数再相加,所有可能的结果凑成一个集合,就是这个张成.它是包含这组向量的最小集合,还自动对加法与数乘封闭.

  • (e1,e2)(\mathbf{e}_1, \mathbf{e}_2) 的张成是整个平面;
  • ((1,0),(2,0))((1,0), (2,0)) 的张成只有 xx 轴——两个向量指向同一条线,怎么组合都出不了这条线.

线性无关:有没有多余 ​

定义(线性无关) 若 λ1v1+⋯+λkvk=0\lambda_1\mathbf{v}_1 + \dots + \lambda_k\mathbf{v}_k = \mathbf{0} 只能靠把所有系数取成 00 来实现,就称 v1,…,vk\mathbf{v}_1, \dots, \mathbf{v}_k 线性无关;否则称它们线性相关.

人话版:无关 = 这组向量里没有一个是多余的、能被别人拼出来的.相关则是有人吃白饭.

  • (e1,e2)(\mathbf{e}_1, \mathbf{e}_2) 无关:设 ae1+be2=0a\mathbf{e}_1 + b\mathbf{e}_2 = \mathbf{0},按分量拆开立刻得到 a=b=0a = b = 0;
  • ((1,0),(2,0))((1,0), (2,0)) 相关:−2(1,0)+(2,0)=0-2(1,0) + (2,0) = \mathbf{0},系数 −2-2 和 11 没有全取零,也拼出了零;
  • 只要一组向量里有零向量,它必然相关:给零向量配系数 11、其余配 00 就行.

基:刚刚好的一组 ​

定义(基) 若 v1,…,vn\mathbf{v}_1, \dots, \mathbf{v}_n 既线性无关,又满足 span⁡{v1,…,vn}=V\operatorname{span}\{\mathbf{v}_1, \dots, \mathbf{v}_n\} = V, 就称它们是 VV 的一组基.

人话版:不多不少.无关保证"不多",张成保证"不少".

R2\mathbb{R}^2 里随便两条不共线的向量都是一组基;R2\mathbb{R}^2 里任意三个向量一定相关(平面上塞不下三个独立方向).第二章的实验就是让你拖着向量自己验证这件事.

维数:基的规模 ​

基的选择可能不止一组,但规模是固定的:

定理(基的个数不变) 若 VV 有一组由 nn 个向量组成的基,那么 VV 的每一组基都恰好有 nn 个向量.

为什么不会出现"一组基 2 个、另一组基 3 个"?证明的核心是一个替换论证,展开可见.

为什么(证明思路)

先证一个引理:设 v1,…,vn\mathbf{v}_1, \dots, \mathbf{v}_n 张成 VV,且 w1,…,wm\mathbf{w}_1, \dots, \mathbf{w}_m 线性无关,则 m≤nm \le n.

做法是从 (v1,…,vn)(\mathbf{v}_1, \dots, \mathbf{v}_n) 出发,依次把 v\mathbf{v} 换成 w\mathbf{w}:先看 w1\mathbf{w}_1,它可由当前张成组组合出来;因为 w1≠0\mathbf{w}_1 \ne \mathbf{0},这个组合里至少有一个 v\mathbf{v} 的系数不为零,解出那个 v\mathbf{v},就知道它能被 w1\mathbf{w}_1 和其余的 v\mathbf{v} 拼出来.换成 w1\mathbf{w}_1 之后,剩下的向量仍然张成 VV.对 w2,…\mathbf{w}_2, \dots 重复同样的操作:每一步都能换掉一个 v\mathbf{v},且保持"张成 VV".

如果 m>nm > n,换完 nn 步之后组里全是 w\mathbf{w},说明 w1,…,wn\mathbf{w}_1, \dots, \mathbf{w}_n 就张成了 VV.于是 wn+1\mathbf{w}_{n+1} 能被它们拼出来,前面那 n+1n+1 个 w\mathbf{w} 就线性相关了,与假设矛盾.所以 m≤nm \le n.

现在看两组基 (v1,…,vn)(\mathbf{v}_1, \dots, \mathbf{v}_n) 与 (w1,…,wm)(\mathbf{w}_1, \dots, \mathbf{w}_m).第一组张成、第二组无关,引理给 m≤nm \le n;交换角色又给 n≤mn \le m.两边一夹,m=nm = n.

定义(维数) 由上面的定理,"一组基里向量的个数"与基的选择无关.这个公共的个数叫 VV 的维数,记作 dim⁡V\dim V.

dim⁡R2=2\dim \mathbb{R}^2 = 2,dim⁡Rn=n\dim \mathbb{R}^n = n.维数是空间的属性,不是某一组基的属性.

坐标是借来的 ​

有了基,坐标才可以定义.

定义(坐标) 固定 VV 的一组基 (v1,…,vn)(\mathbf{v}_1, \dots, \mathbf{v}_n).把满足

w=c1v1+⋯+cnvn\mathbf{w} = c_1\mathbf{v}_1 + \dots + c_n\mathbf{v}_n

的那组系数 (c1,…,cn)(c_1, \dots, c_n) 叫 w\mathbf{w} 在这组基下的坐标.

这句话里藏着一个约定:这样的系数有且只有一组.存在性由张成保证,唯一性由无关保证——若 ∑civi=∑ci′vi\sum c_i\mathbf{v}_i = \sum c_i'\mathbf{v}_i,相减得 ∑(ci−ci′)vi=0\sum (c_i - c_i')\mathbf{v}_i = \mathbf{0},由无关推出每个 ci=ci′c_i = c_i'.

看一个反直觉的例子.取 w=(2,1)\mathbf{w} = (2, 1):

  • 在标准基 (e1,e2)(\mathbf{e}_1, \mathbf{e}_2) 下,w=2e1+1e2\mathbf{w} = 2\mathbf{e}_1 + 1\mathbf{e}_2,坐标是 (2,1)(2, 1);
  • 在斜基 v1=(1,0)\mathbf{v}_1 = (1, 0)、v2=(0.6,1)\mathbf{v}_2 = (0.6, 1) 下,解 c1(1,0)+c2(0.6,1)=(2,1)c_1(1, 0) + c_2(0.6, 1) = (2, 1),得 c2=1c_2 = 1、c1=1.4c_1 = 1.4,坐标是 (1.4,1)(1.4, 1).

同一个向量,两组坐标.坐标系不是世界的一部分,是我们装上去的.

例题(教材风格). 已知 e1\mathbf{e}_1、e2\mathbf{e}_2 是一组基底,a=2e1+e2\mathbf{a} = 2\mathbf{e}_1 + \mathbf{e}_2,b=−e1+3e2\mathbf{b} = -\mathbf{e}_1 + 3\mathbf{e}_2. 用 a\mathbf{a}、b\mathbf{b} 表示 e1\mathbf{e}_1.

解(高中). 设 e1=αa+βb\mathbf{e}_1 = \alpha\mathbf{a} + \beta\mathbf{b},展开:

α(2e1+e2)+β(−e1+3e2)=(2α−β)e1+(α+3β)e2.\alpha(2\mathbf{e}_1 + \mathbf{e}_2) + \beta(-\mathbf{e}_1 + 3\mathbf{e}_2) = (2\alpha - \beta)\mathbf{e}_1 + (\alpha + 3\beta)\mathbf{e}_2.

因为 e1\mathbf{e}_1、e2\mathbf{e}_2 线性无关(它们是基底),比较系数得 2α−β=12\alpha - \beta = 1、α+3β=0\alpha + 3\beta = 0,解得 α=37\alpha = \frac37、β=−17\beta = -\frac17. 所以

e1=37a−17b.\mathbf{e}_1 = \frac37\mathbf{a} - \frac17\mathbf{b}.

线代读法. 这就是"换基"的手算版:两组基底之间的坐标换算,本质是解一个 2×22 \times 2 方程组. 高中课本里"用一组基底表示向量"和这一章的"坐标",是同一件事的两个名字.

实验:拖出你自己的基 ​

实验里有两个可拖的向量 v1\mathbf{v}_1、v2\mathbf{v}_2,一个可拖的目标 w\mathbf{w},还有一组实时读数.

  1. 默认是标准基.拖动 w\mathbf{w},右侧坐标跟着变,虚线折线给出配方:先走 c1c_1 步 v1\mathbf{v}_1,再走 c2c_2 步 v2\mathbf{v}_2.
  2. 点「斜基」再拖 w\mathbf{w}.同一个位置,坐标不一样了,但"两个数"照样唯一.
  3. 点「共线」,或者手动把 v2\mathbf{v}_2 拖到 v1\mathbf{v}_1 的直线上:张成塌成一条线,读数里的维数变成 1,目标只要离开这条线就没有坐标.
  4. 点「冗余」加上第三个向量:它能被前两个拼出来,整组立刻线性相关,不再是基.
实验 02

张成、无关与基

张成平面
无关是
基是
维数2
v₁v₂w
目标 w 在这组向量下的坐标
坐标1.500.80

这是一组基:平面上每个向量都能被唯一地写成 c₁v₁ + c₂v₂.拖动目标 w,看它的坐标怎么跟着变.

拖动 v₁、v₂、w 的端点.虚线网格是 v₁ 与 v₂ 张成的格点,虚线折线是 w 的配方:先走 c₁ 步 v₁,再走 c₂ 步 v₂.

交叉 ​

  • 矩阵分析:SVD 给出每个方向上拉伸的倍数,和本章的"张成"与"维数"直接相关.
  • 机器学习:Transformer 的每个注意力头在自己的子空间里做加权,多头就是把几个低维子空间的张成并起来用.
  • 机器学习:词嵌入的 512 维不是任意选的——它是一组基的规模,决定了模型能区分多少种方向上的差异.

高维空间:把 n 当数字用 ​

科幻作品里的"高维"多半指时空的额外维度,那是物理假说.数学里的高维只有一个意思:坐标多几个.R512\mathbb{R}^{512} 就是一个点需要 512 个数,词嵌入说的"512 维"就是这么回事,没有多出来的神秘方向.

前面所有结论原样成立,因为证明里从来没有用过 22 这个数字本身,用的只是"nn 个向量张成、mm 个向量无关"这样的句子:

  • Rn\mathbb{R}^n 里任意 n+1n+1 个向量一定线性相关(把习题 2 证明里那句"张成整个 R2\mathbb{R}^2"换成"张成 Rn\mathbb{R}^n"即可);
  • 坐标的存在唯一性对任何 nn 一样成立.

高维听起来玄,是因为二维直觉在那里失效.失效不是神秘,只是不习惯.两个能亲手算的例子:

  • 单位立方体 [0,1]n[0,1]^n 的体对角线长度是 n\sqrt{n}.n=512n = 512 时约 22.6,而每条棱仍然只是 1.
  • 立方体的内接球(半径 1/21/2)体积占比随维度指数衰减:n=2n=2 时 78.5%,n=3n=3 时 52.4%,n=10n=10 时 0.25%,再往后小到可以忽略.高维立方体的体积几乎全贴在边界上,中心那颗球占不到地方.

下面的实验把这两个数做成可以拖动的读数.

实验 03

高维里剩下什么

维数3
体对角线1.73
内接球占比52.4%
维数 n = 3
78.5%
n=2
52.4%
n=3
30.8%
n=4
2.5e-3
n=10
1.5e-28
n=50
1.6e-534
n=512

单位立方体 [0,1]^n 的体积恒为 1,内接球半径固定 1/2,占比 πn/22n Γ(n/2+1)\dfrac{\pi^{n/2}}{2^n\,\Gamma(n/2+1)} 随维度指数衰减.柱子越高表示占比越小(纵轴做过对数压缩,否则 n≥10 的柱子会彻底看不见).

体对角线长度是 √n:n=512 时约 22.6,而每条棱仍然只是 1.高维立方体"很空旷"与"体积几乎全贴在边界",是同一个计算的两面.

结论只有一句:高维里没有"看不见的第四个方向".方向就是向量,"看得见"不是数学的要求;凡是能在二维验证的命题,换成 nn 个坐标照样成立.

习题 ​

  1. 判断下列向量组是否线性无关,并写出它们的张成: (a) (1,2)(1, 2)、(3,4)(3, 4),在 R2\mathbb{R}^2 中; (b) (1,2)(1, 2)、(2,4)(2, 4); (c) (1,0,0)(1, 0, 0)、(0,1,0)(0, 1, 0)、(1,1,0)(1, 1, 0),在 R3\mathbb{R}^3 中.
  2. 证明:R2\mathbb{R}^2 中任意三个向量一定线性相关.
  3. 第一象限 W={(x,y)∣x≥0, y≥0}W = \{(x, y) \mid x \ge 0,\ y \ge 0\} 是 R2\mathbb{R}^2 的子空间吗?逐条检查子空间的两个条件.
  4. 把 w=(4,3)\mathbf{w} = (4, 3) 写成 v1=(1,1)\mathbf{v}_1 = (1, 1)、v2=(1,−1)\mathbf{v}_2 = (1, -1) 的线性组合,并给出 w\mathbf{w} 在这组基下的坐标.
  5. 判断真假并说明理由: (a) 张成一定包含零向量; (b) 线性无关的向量组一定不含零向量; (c) 线性相关的向量组去掉一个向量后,一定仍然线性相关.
  6. 在 R4\mathbb{R}^4 中判断 (1,0,0,0)(1,0,0,0)、(0,1,0,0)(0,1,0,0)、(1,1,0,0)(1,1,0,0) 是否线性无关,并写出它们的张成.
  7. 在 R4\mathbb{R}^4 中,(3,−1,0,0)(3,-1,0,0) 与 (0,0,1,0)(0,0,1,0) 能否写成 e1=(1,0,0,0)\mathbf{e}_1 = (1,0,0,0)、e2=(0,1,0,0)\mathbf{e}_2 = (0,1,0,0) 的线性组合?
  8. 单位立方体 [0,1]n[0,1]^n 的体对角线长度在 n=4n = 4、99、512512 时分别是多少?
参考答案

1. (a) 无关:1⋅4−2⋅3=−2≠01 \cdot 4 - 2 \cdot 3 = -2 \ne 0,两条不共线,张成整个 R2\mathbb{R}^2,构成一组基. (b) 相关:(2,4)=2(1,2)(2, 4) = 2(1, 2),张成是直线 y=2xy = 2x. (c) 相关:(1,1,0)=(1,0,0)+(0,1,0)(1, 1, 0) = (1, 0, 0) + (0, 1, 0),张成是 xyxy 平面,维数 2.

2. 设三个向量为 v1,v2,v3\mathbf{v}_1, \mathbf{v}_2, \mathbf{v}_3.若 v1,v2\mathbf{v}_1, \mathbf{v}_2 已经相关,则这三个也相关(把 v3\mathbf{v}_3 的系数取 00,仍然凑出系数不全为零的零组合).若 v1,v2\mathbf{v}_1, \mathbf{v}_2 无关,它们张成整个 R2\mathbb{R}^2,于是 v3=c1v1+c2v2\mathbf{v}_3 = c_1\mathbf{v}_1 + c_2\mathbf{v}_2,移项得 c1v1+c2v2−v3=0c_1\mathbf{v}_1 + c_2\mathbf{v}_2 - \mathbf{v}_3 = \mathbf{0}——三个系数里 −1-1 不为零,所以相关.

3. 不是.加法封闭成立:两个非负坐标相加仍然非负.数乘不封闭:取 (1,1)∈W(1, 1) \in W 和 a=−1a = -1,则 a(1,1)=(−1,−1)∉Wa(1, 1) = (-1, -1) \notin W.

4. 设 c1(1,1)+c2(1,−1)=(4,3)c_1(1, 1) + c_2(1, -1) = (4, 3),按分量列方程:c1+c2=4c_1 + c_2 = 4,c1−c2=3c_1 - c_2 = 3,解得 c1=3.5c_1 = 3.5、c2=0.5c_2 = 0.5.坐标是 (3.5,0.5)(3.5, 0.5).

5. (a) 真:所有系数都取 00 的组合就是零向量,按定义零向量属于张成. (b) 真:若组里含零向量,给它配系数 11、其余配 00,就得到系数不全为零的零组合. (c) 假:反例 ((1,0), (2,0), (0,1))((1,0),\ (2,0),\ (0,1)) 线性相关,但去掉 (2,0)(2,0) 后剩下的两个向量无关.

6. 线性相关:(1,1,0,0)=(1,0,0,0)+(0,1,0,0)(1,1,0,0) = (1,0,0,0) + (0,1,0,0).张成是 {(x,y,0,0)∣x,y∈R}\{(x, y, 0, 0) \mid x, y \in \mathbb{R}\},就是前两个坐标张成的平面,维数 2.

7. (3,−1,0,0)=3e1−e2(3,-1,0,0) = 3\mathbf{e}_1 - \mathbf{e}_2,坐标是 (3,−1)(3, -1).(0,0,1,0)(0,0,1,0) 不行:e1,e2\mathbf{e}_1, \mathbf{e}_2 的张成里所有向量的第三、四坐标都是 00,而它的第三坐标是 1.

8. 长度是 n\sqrt{n}:n=4n = 4 时是 22,n=9n = 9 时是 33,n=512n = 512 时是 162≈22.6316\sqrt{2} \approx 22.63.

延伸 ​

下一章《线性映射与矩阵表示》会把这一章和第一章合流:线性映射把基送到哪里,矩阵就长什么样.有了基和坐标,你才能说清楚"同一个映射在不同基下的矩阵"是什么意思.