子空间、张成、线性无关、基与维数
上一章做矩阵乘法时,我们已经碰到了本章的入口。把矩阵 A 的列依次记成 a1,a2,…,an,那么
Ax=x1a1+x2a2+⋯+
右边不是一条新的运算规则,它只是说:矩阵拿到系数 x1,x2,…,xn 后,用这些系数把自己的列向量重新拼了一遍。
接下来真正值得问的,不是“怎么算这一遍”,而是三件更大的事:这些列向量把系数随便调来调去,究竟能覆盖哪里?其中有没有一根方向其实可以由其他方向拼出来?如果只保留最少的一组方向,至少要留几根?
张成回答“能覆盖哪里”,线性无关回答“有没有多余”,基把“覆盖”和“不多余”同时做到,维数则数出空间里真正自由的方向。子空间是它们共同活动的舞台。我们沿着这条线往下走,几个看似抽象的词就会自然连起来。
从一个矩阵方程看见两个空间
先看方程
Ax=b
它是否有解,取决于能不能找到一组系数 x1,…,xn,把 A 的列向量组合成 b。换句话说,b 必须落在列向量能够覆盖的范围里。这个范围叫作 的:
C(A)=span(a1,a2,…,a
这里的 span 就是“所有线性组合”的意思。若 A 是 m×n 矩阵,每一列都有 m 个分量,所以 C(A) 住在输出空间 R 中。
再把右端换成零向量:
Ax=0
现在问的不是“哪些输出能做到”,而是“哪些输入会被 A 消掉”。全部这样的 x 组成 A 的零空间:
N(A)={x∈Rn:Ax=0}
零空间住在输入空间 Rn 中。它的一个非零向量,就是一份不全为零的系数说明书:照这份系数组合 A 的列,几根列向量恰好互相抵消。
列空间问“能够得到哪些结果”,零空间问“哪些输入不会留下结果”。本章只把它们当成子空间、基与维数的两个重要例子;下一章再把它们和行空间、左零空间放到同一张图里。
这两个集合为什么配得上“空间”二字?因为它们经得住线性组合。若 u=Ax1、v=Ax2 都在列空间中,那么对任意实数 r,,
ru+sv=rAx1+sAx2=
结果仍是某个 A 乘向量,当然还在列空间中。若 x1,x2 都在零空间中,那么
A(rx1+sx2)=rAx1
结果仍在零空间中。这里已经露出了子空间最核心的要求:集合内部的向量做线性组合,不能跑到集合外面去。
子空间:在里面做线性动作,结果仍在里面
想象我们圈出 Rn 中的一部分向量,记成 W。如果我们希望把 W 当作一个较小的线性世界,那么加法和数乘在这个世界里必须始终可用。不能两个合法向量一相加就越界,也不能一根向量反向或放大后就被赶出去。
对 Rn 的非空子集 W,常用的子空间检查有三项:
- 零向量在 W 中。
- 若 u,v∈W,则 u+v∈W。
- 若 u∈W、,则 。
第二项叫加法封闭,第三项叫数乘封闭。三项都满足,W 才是 Rn 的子空间。

子空间的三项检查,本质上是在确认所有线性组合都不会离开集合。
为什么恰好检查这三项
“必须包含零向量”先把线性世界的原点固定下来。任意子空间都要允许把某个向量乘 0,结果就是零向量。因此,不过原点的直线或平面无论多么平整,都不能成为子空间。
“加法封闭”保证两次合法移动接在一起仍是合法移动。若 u 和 v 都是空间允许的方向,那么先走 u、再走 v,总位移 u+v 也应当属于这个空间。
“数乘封闭”保证一根允许的方向可以任意放大、缩小、反向。这里的系数是任意实数,尤其包括负数。第一象限对正数倍很友好,却会被 −1 立刻翻到第三象限,所以它不是子空间。
把后两项合起来看更简洁:对任意 u,v∈W 和任意 r,s∈R,都要有
ru+sv∈W
这叫对线性组合封闭。只要 W 非空,这一条实际上已经把三项都包住了:取 r=s=0 得到零向量;取 r=s=1 得到加法;取 s=0 得到数乘。初学时分成三项检查,更不容易漏掉条件。
一眼能认出的例子与反例
在 R3 中,过原点的直线、过原点的平面、整个 R3,以及只含零向量的集合 {0},都是子空间。
不过原点的平面不是子空间。单位球面也不是:球面上的向量乘 2 后长度变了,会离开球面。第一象限虽然包含零向量、也对加法封闭,却不对负数数乘封闭。
“经过原点”只是必要条件,不是充分条件。两条过原点直线的并集经过原点,但从两条不同直线上各取一个向量,相加通常落在两条直线之外,所以这个并集一般不是子空间。
完整判定例题:齐次条件为什么可靠
判断
W={(x,y,z)∈R3:x−2y+z=
是不是 R3 的子空间。
先把零向量代进去。0−2⋅0+0=0,所以 (0,0,0)。
如果把条件右边改成 1,得到
W1={(x,y,z):x−2y+z=1}
那么零向量第一关就失败。更深的原因是:齐次方程的右端是 0,线性组合后仍是 r⋅0+s⋅0=0;非齐次条件的右端是 1,两个解相加后右端会变成 2,集合无法保持封闭。
张成:这些方向能覆盖哪里
给定向量 v1,v2,…,vk,把系数 在全体实数中随便取,所有可能结果组成它们的张成:
span(v1,v2,…,v
一根非零向量能前后伸缩,张成一条过原点的直线。两根不共线向量可以独立调节两份系数,张成一个平面。在 R3 中,第三根向量若跑到这个平面外,就会补出第三个自由方向,从而张成整个空间。

张成不是几根箭头本身,而是让所有系数自由变化后得到的全部线性组合。
张成是包含这些向量的最小子空间
张成本身一定是子空间。零向量可以用所有系数取 0 得到;两个线性组合相加,只是把同一位置的系数相加;线性组合再乘一个数,只是把所有系数一起缩放。
更重要的是,任何包含 v1,…,vk 的子空间,都必须包含它们的全部线性组合。因此,span(v 是“装得下这些向量”的最小子空间。它没有擅自加入与这些方向无关的东西,也不会漏掉线性操作必然产生的结果。
例题:从参数式看出张成的形状
设
v1=
它们的一般线性组合是
av1+bv2=
若把结果记成 (x,y,z),就有 x=a、z=b,所以
y=2x+z
因此
span(v1,v2)={(x,y,z)
这是过原点的一个平面。注意我们做了两种描述之间的转换:一边是“由哪几根向量张成”,另一边是“坐标满足什么齐次方程”。前者适合生成向量,后者适合判断一个向量是否落在里面。
例如,判断 p=(2,7,3) 是否在这个张成里,可以直接检查 7−2⋅2−3=0。也可以解
av1+bv2=
得到系数 a=2、b=3。这也说明
273=
若右端向量改成 (2,6,3),关系 y=2x+z 不成立,对应的系数方程也会矛盾,所以它不在这个平面中。
线性无关:有没有人在重复别人的方向
假设有三根向量。前两根已经张成一个平面,第三根也躺在这个平面里,那么第三根无论看起来朝向多么不同,最终都能由前两根拼出来。加入它之后,能够覆盖的范围一点没变。它提供了另一种走法,却没有提供新方向。
这就是线性相关。说得直接一点,一组向量里有人是“可删的”:删掉它,张成不变。
为了判断时不必轮流猜“到底谁多余”,我们把所有向量放到同一边,研究
c1v1+c2v2
如果只有
c1=c2=⋯=ck=
这一组解,那么这些向量线性无关。若存在一组不全为零的系数也能得到零向量,它们线性相关。
为什么“非零系数组合成零向量”和“某根向量能由其他向量拼出”是同一回事?假设 cj=0,把含 vj 的一项移到另一边,再除以 c:
vj=−cj
于是 vj 可以由其他向量合成。反过来,若某根向量能由其他向量合成,把各项移到同一边,就得到一组非平凡的零组合。
例题:完整判断一组三维向量
判断
v1=
是否线性无关。
设线性组合等于零向量:
c1v1+c
线性无关同时保证表示唯一
如果一组向量线性相关,同一个结果可能有多种系数写法。上例中 v3=2v1+v2,因此向任何表示中加入
t(−2v1−v2+v3)=
都不会改变结果,却会改变系数。
反过来,若 v1,…,vk 线性无关,而某个向量有两种表示
w=c1v1+⋯+ckv
以及
w=d1v1+⋯+dkv
两式相减得到
(c1−d1)v1+⋯
线性无关迫使每个 ci−di=0,所以两组系数完全相同。没有多余方向和每个向量的表示唯一,其实是同一件事的两面。
几条好用但不能乱用的快速判断
- 一组向量中只要含有零向量,就一定线性相关,因为 1⋅0=0 已经是一条非平凡关系。
- 一根向量构成的集合线性无关,当且仅当这根向量非零。
- 两根向量线性无关,当且仅当它们不互为倍数。
- Rn 中超过 n 根向量一定线性相关,因为这个空间容不下超过 n 个彼此独立的方向。
- 向量数不超过 n 并不保证线性无关,最终仍要检查齐次方程是否只有零解。
基:既能覆盖,又没有多余
现在可以回答“怎样用尽量精炼的一组方向描述整个空间”。一组向量要成为空间 V 的基,必须同时满足两件事:
- 它们张成 V,所以空间中任何向量都能由它们表示。
- 它们线性无关,所以没有任何一根可以删掉。
张成保证“够用”,线性无关保证“不重复”。只满足第一条的向量组可能塞了很多冗余方向;只满足第二条的向量组可能很干净,却还没有覆盖整个空间。基正好卡在两者交界处。
例如,R2 的标准基是
e1=[10],e
但标准基不是唯一选择。下面两根向量也不共线,因此同样张成整个平面并且线性无关:
u1=[11],u
所以 (u1,u2) 也是 R2 的一组基。
基为什么给出唯一坐标
基的“张成”保证每个向量至少有一种表示,基的“线性无关”保证这种表示至多有一种。两条合起来,每个向量恰好有一种基展开。
设 B=(u1,u2)。对
p=[42]
寻找 a,b,使得
p=au1+bu2
也就是
[42]=a[1
对应方程是
{a+b=4a−b=2
解得 a=3、b=1,于是 p 在基 B 下的坐标是
[p]B=[31]
同一个向量在标准基下的坐标是 (4,2),在斜基 B 下的坐标是 (3,1)。向量没有变,变的是用来报位置的坐标尺。
写基时,顺序也很重要。若把基从 (u1,u2) 换成 (u,同一个向量的坐标会从 换成 。基向量没有增减,但坐标分量必须跟着新的顺序排列。
从一堆生成向量里提炼出基
若手里已经有一组张成 V 的向量,可以不断删掉能由其他向量组合出来的成员。每删掉一个多余向量,张成不变。直到再删任何一个都会缩小张成,剩下的就是一组基。
反过来,若手里有一组线性无关向量但还没张成 V,就从 V 中挑一根不在当前张成里的向量加入。新向量带来新方向,所以加入后仍线性无关。继续这样做,直到覆盖整个空间,也会得到一组基。
这两条路线说明了基的双重身份:它既是删无可删的张成集,也是加无可加的线性无关组。
维数:真正自由的方向有几个
一条过原点的直线可以换很多根不同长度的向量当基,但每组基都只需要一根。一个平面也可以换无数对不共线向量当基,但每组都恰好两根。基可以换,所需方向的数量不会换。
有限维向量空间 V 的维数,定义为任意一组基所含的向量个数:
dimV=一组基中的向量个数

维数数的是彼此独立的自由方向,不是图画所在背景空间的维数。
为什么不同基的向量数一定相同
假设 B=(b1,…,bm) 和 D= 都是同一个空间的基。因为 张成整个空间, 一定能由 表示。这个表示里至少有一个非零系数,我们可以用 换掉对应的那根 ,仍然得到一组基:覆盖没有丢,线性无关也没有破坏。
接着把 d2 换进来,再换 d3。每换进一根 D 中的向量,就换出一根 B 中的向量,基的总数量始终是 m。如果 ,换完 根后, 还有向量没有换进来;但此时已有的 根 向量已经是一组基,剩余向量必能由它们组合出来,这会和 的线性无关矛盾。所以 。
把 B、D 的角色对调,同理得到 m≤n。于是 m=n。这就是维数能够被定义成“任意一组基的向量数”的原因。
维数不是外部坐标的个数
常见例子是:
- 只含零向量的空间 {0} 没有自由方向,维数是 0;它的基是空组。
- R3 中一条过原点的直线只需一根非零向量,维数是 1。
- R3 中一个过原点的平面需要两根不共线向量,维数是 。
一个子空间写在 R5 里,不代表它是五维。环境只告诉我们每个向量有五个坐标;维数要看这个子空间本身需要几根基向量,也就是有几个真正可以独立调节的方向。
维数还带来一个很实用的计数结论:在 n 维空间中,超过 n 根向量一定线性相关,少于 n 根向量一定不可能张成整个空间。若恰好有 n 根向量,那么只需证明“线性无关”或“张成整个空间”中的任意一项,另一项会自动成立。
从参数解直接读出基与维数
齐次方程组的解集是最典型的子空间。实际计算时,求它的一组基有一条很稳定的路线:行化简,找自由变量,把通解拆成“每个自由变量乘一根固定向量”。这些固定向量就是自然候选基。
考虑
A=[1224
求零空间 N(A) 的一组基和维数。
对 A 做行化简。第二行减去第一行的两倍,再把主元列整理好,得到
rref(A)=[
每个自由变量各自取 1、其余自由变量取 0,就得到一根“特殊解向量”。这里有两个自由变量,于是得到两根基向量。这个现象不是巧合:自由变量恰好给零空间提供独立的活动方向。
同一个矩阵的列空间也能顺手看一眼。化简中主元落在原矩阵第 1、第 3 列,因此原矩阵的这两列
[12],[13]
线性无关,并且其余列都能由它们组合出来。它们构成 C(A) 的一组基,列空间维数是 2。下一章会解释为什么找列空间基时必须回到原矩阵的主元列,以及这里的两个 2 如何共同进入秩—零化度关系。
把五个概念接成一条完整推理链
现在回头看,一条线已经很清楚了。
先从几根向量出发,允许任意线性组合,就得到它们的张成。这个张成自动是一个子空间,因为在里面继续做线性组合不会跑出去。
如果某根向量能由其他向量拼出,它就是多余的,整组向量线性相关;如果谁都替代不了谁,整组向量线性无关。
一组向量既张成整个目标空间,又线性无关,它就是一组基。基让空间里的每个向量都有唯一坐标。
最后,数一数任意一组基里有几根向量,就得到空间的维数。它不是表面上写了几个坐标,而是这个空间里真正能够彼此独立变化的方向数。
可以把它压缩成下面四个问题:
常见误区
误区一:包含零向量就一定是子空间
不够。单位圆盘包含零向量,但把圆盘内的非零向量放大很多倍会跑出去。两条过原点直线的并集也包含零向量,却通常不对加法封闭。三项条件缺一不可。
误区二:向量看起来朝向不同,就线性无关
图只能帮你猜,不能代替证明。尤其到了四维、五维,根本没有可靠的图可看。统一的方法始终是解
c1v1+⋯+ckv
看是否只有零解。
误区三:张成同一个空间的向量组,都是基
张成只保证“够用”,没有保证“不多余”。在 R2 中,(e1,e2,e 张成整个平面,但三根向量线性相关,所以不是基。
误区四:线性无关的向量组就是基
还要问它是哪个空间的基。e1,e2 在 R3 中线性无关,却只张成 xy 平面,不是 的基;它们倒是这个 平面的基。
误区五:在 R3 中的集合,维数就是 3
环境空间和子空间不是一回事。R3 中的过原点直线维数是 1,过原点平面维数是 2。维数要数基向量,不是数坐标栏。
误区六:行化简后的主元列就是原列空间的基
行化简会保持列之间的依赖关系,却一般会改变列向量本身。主元位置要从化简结果中找,真正的列空间基要回原矩阵取对应列。这一点下一章会用完整例子展开。
练习
练习一:子空间判定
判断下面两个集合是否是 R3 的子空间:
W1={(x,y,z):x+y−2z=0}
W2={(x,y,z):x+y−2z=3}
W1 是子空间。零向量满足条件;若 u,v 的坐标都满足左边等于 0,那么 u+v 的左边是 0;数乘后左边是 。所以它对加法和数乘封闭。
练习二:判断是否属于张成
设
v1=
判断 p=(3,8,2) 是否在 span(v1,v2) 中。
若 p=av1+bv2,比较第一、第三坐标得到 a=3、。此时第二坐标应当是
练习三:找出多余方向
判断下面向量组是否线性无关;若相关,写出一根向量和其余向量的关系。
u1=
直接计算可见
u3=u1+2u2等价地,
练习四:基与坐标
判断
B=([21],[11
是否是 R2 的一组基。若是,求 p=(5,3) 在基 B 下的坐标。
两根向量不互为倍数,所以线性无关。R2 是二维空间,两根线性无关向量自动构成一组基。
设
a[21
练习五:从参数解取基
求下面齐次方程组解空间的一组基和维数:
{x1+x2+x
第二个方程给出
x2=−x3−2x4代入第一个方程,得到
练习六:辨析“够用”和“不多余”
在 R3 中,分别判断下面两组向量缺少基的哪一项条件。
S1={e1,e2}
S2={e1,e2,e
S1 线性无关,但只张成 xy 平面,没有覆盖整个 R3,所以缺少“张成”条件。
S 张成整个 ,但第四根向量满足
下一步:四个基本子空间与秩—零化度
这一章把衡量空间的尺子准备好了:张成告诉我们覆盖范围,线性无关帮我们删除重复方向,基留下最精炼的坐标框架,维数记录自由方向数。
回到矩阵,列空间已经回答了 Ax=b 的结果能落在哪里,零空间也已经暴露了 Ax=0 中的自由方向。下一章会把行空间与左零空间也加入进来,并从行化简中统一读出四个空间的基。到那时,我们会得到一个精确的计数关系:矩阵用掉多少个独立方向、又留下多少个自由方向,它们加起来为什么恰好等于输入变量的总数。