向量与线性组合
上一章画了一张地图:同一个线性问题,可以读成一组条件、一次向量拼接,也可以读成矩阵对空间做的动作。现在我们先把中间那种读法讲扎实。
想象朋友在电话里给你指路:“从地铁口出来,往东走 3 个街区,再往北走 2 个街区。”这句话没有告诉你目的地叫什么,却已经给出了一条完整的移动指令。向量就是这种指令的数学版本。它记录各个方向分别移动多少,至于从哪里开始执行,不是向量本身的一部分。
这一章会沿着一条很自然的线往前走:一条移动指令怎样写成向量,两条指令怎样接起来,怎样把一个方向放大或反向,最后怎样用几根已有方向拼出目标。走到末尾时,你会发现,线性方程组其实一直在问同一件事:目标向量能不能这样拼出来?
先把每条运算看成一个动作。分量公式不是凭空定下来的规则,它只是把“走了多少”“接着怎么走”“每个方向取几份”如实记到账上。
点告诉你在哪里,向量告诉你怎么走
先看一个具体场景。你站在点 P=(2,−1),要走到点 Q=(7,2)。横坐标从 2 变成 7,增加了 5;纵坐标从 −1 变成 2,增加了 3。因此,从 P 到 Q 的位移是
PQ=[7−22−(−1)]=[53]
这里最容易混淆的是点和向量。点 Q=(7,2) 回答“终点在哪里”;向量 PQ=[53] 回答“从起点怎样走到终点”。一个是位置,一个是变化量。
同一支箭头可以搬到别处
如果另一位同学从 R=(−4,6) 出发,向右走 5、向上走 3,他会到达 S=(1,9)。虽然两段路出现在坐标平面的不同位置,但它们给出的移动指令相同:
RS=[1−(−4)9−6]=[53]=PQ
所以我们说向量是“自由”的:只要长度和方向不变,整支箭头平移到哪里都还是同一个向量。判断两支自由向量是否相等,不看它们画在哪里,只看每个方向的位移是否相同。
从点 A=(a1,a2) 指向点 B=(b1,b2) 的向量总是“终点减起点”:
AB=[b1−a1b2−a2]
把顺序倒过来,移动方向也会倒过来:
BA=−AB
“终点减起点”不能反着写。最稳妥的检查方法是把答案翻译回动作:从 A 的坐标出发,加上你算出的位移,应该正好得到 B。
位置向量只是一个特殊摆法
我们经常把箭头的起点放在原点 O=(0,0)。这时
OP=[p1p2]
箭头的终点恰好就是点 P=(p1,p2)。从原点指向一个点的向量叫这个点的位置向量。于是,同一组数字既可能写成点 (3,2),也可能写成列向量 [32]。它们对应得很紧,但说的仍是两件事:前者是“在哪儿”,后者是“怎样从原点走过去”。

把向量放在原点时,终点坐标就是它的两个分量。
分量是各个坐标方向的位移
二维向量写成
v=[v1v2]
第一分量 v1 记录水平方向的变化,第二分量 v2 记录竖直方向的变化。正负号负责方向,绝对值负责沿该坐标轴走多远。
到了三维,多记一个方向:
v=v1v2v3
到了 n 维,就有 n 个分量。我们未必能画出四维、五维的箭头,但仍可以逐个分量记录变化,所以计算规则不需要改。
向量的长度来自勾股定理。对于二维向量,
[v1v2]=v12+v22
例如 [34] 表示向右 3、向上 4,直线位移的长度是 5。注意,3+4=7 是沿两条坐标方向累计走过的路程,不是起点到终点的直线距离。
所有分量都是 0 时,我们得到零向量:
0=[00]
它表示没有净位移,长度为 0。非零向量都有明确方向,零向量没有唯一方向。
例题:起点不同,位移也可以相同
小林从 A=(1,1) 走到 B=(4,5),小周从 C=(−2,3) 走到 D=(1,7)。判断两人的位移是否相同,并求位移长度。
先算小林的位移。终点减起点,得到
AB=[4−15−1]=[34]再算小周的位移:
CD=[1−(−2)7−3]=[34]两支箭头起点和终点都不同,但分量相同,所以它们是同一个自由向量。位移长度为
32+42=5
向量加法:把两段位移接成一段
假设第一条指令让你走位移 u,第二条指令让你接着走位移 v。从最初起点直接指向最终终点的那支箭头,就是 u+v。
设
u=[21],v=[−13]
第一段让横坐标增加 2,第二段又让横坐标增加 −1,所以总的横向变化是 2+(−1)=1。竖直方向同样单独记账,总变化是 1+3=4。因此
u+v=[2+(−1)1+3]=[14]
这就解释了为什么向量要对应分量相加。不是因为“竖着排的数就该这样算”,而是因为水平方向的位移只和水平方向合并,竖直方向的位移只和竖直方向合并。到了 n 维,仍是每个方向各算各的:
u1⋮un+v1⋮vn=u1+v1⋮un+vn
首尾相接和平行四边形
画图时,可以把 v 平移到 u 的末端。因为向量是自由向量,平移不会改变它。最初起点到最后终点的箭头就是和向量,这叫首尾相接法。
也可以让 u 和 v 从同一点出发,再把它们补成平行四边形。对角线仍是 u+v。前一种画法强调“先走再走”,后一种画法强调“两种作用同时叠加”,算出来是同一个净效果。
加法可以交换,但路线不一定相同
对应分量相加满足交换律:
u+v=v+u
它的几何意思是:先走 u 再走 v,与先走 v 再走 u,最终净位移相同。中间经过的路线可能不同,所以“和相同”不等于“过程完全一样”。
向量加法也满足结合律:
(u+v)+w=u+(v+w)
连续三段位移时,先合并前两段还是后两段,不会改变最终位置。这条性质让我们以后可以直接写 u+v+w,不用担心括号放在哪里。
减法是在接一支反向箭头
向量 −v 把 v 的每个分量变号,长度不变、方向相反。于是
u−v=u+(−v)
若 p 和 q 都从原点出发,那么 q−p 正好是从点 P 指向点 Q 的位移。这和前面“终点减起点”是同一件事。
向量和描述净位移,不描述实际走过的总路程。向东走 3 米再向西走 3 米,向量和是零向量,但你确实走了 6 米。
例题:三段移动怎样合并
一架小型无人机依次执行三条指令:向东 4 米、向北 1 米;向西 2 米、向北 3 米;向东 1 米、向南 5 米。求净位移,并说明它离起点多远。
取“向东、向北”为正方向,三条指令分别写成
u=[41],v=[−23],w=[1−5]横向和竖向分别相加:
u+v+w=[4−2+11+3−5]=[3−1]净位移是向东 3 米、向南 1 米。它离起点的直线距离为
32+(−1)2=10
数乘:把同一条指令放大、缩小或倒放
现在只给一支向量 v,但允许你取它的 c 倍。这里的 c 是普通实数,在线性代数里常叫标量。
若
v=[v1v2]
那么
cv=[cv1cv2]
这条规则也来自位移动作。如果整条指令执行两遍,每个方向的位移都变成两倍;如果只执行一半,每个方向都只走一半;如果倒着执行,所有方向同时反过来。因此必须让同一个 c 乘到每个分量上。
系数的符号和大小各管一件事
对于非零向量 v:
- c>0 时,cv 与 v 同向;
- c<0 时,cv 与 v 反向;
- ∣c∣>1 时,长度变成原来的 ∣c∣ 倍;
- 0<∣c∣<1 时,长度缩短为原来的 ∣c∣ 倍;
- c=0 时,所有分量都归零。
用公式写,长度满足
∥cv∥=∣c∣∥v∥
绝对值不能漏掉。比如 c=−3 时,长度不可能变成“负三倍”;负号只负责反向,长度扩大 3 倍。
零向量是所有方向的共同落点
无论 v 是什么,
0v=0
反过来,对任何数 c,
c0=0
第一条说把一条指令执行零份,净位移为零;第二条说“没有位移”放大多少倍仍然没有位移。它们看起来简单,却解释了为什么后面的张成范围一定包含原点。
数乘怎样和加法配合
如果把两段位移的总效果一起放大 c 倍,与先把每一段都放大 c 倍再相加,结果相同:
c(u+v)=cu+cv
同一条向量指令取 a 份再取 b 份,也等于一共取 a+b 份:
av+bv=(a+b)v
这些分配律不是额外要背的花样。把每个方向的位移分别展开,它们就是普通实数的分配律。
例题:判断两向量是否来自同一方向
设
a=[2−3],b=[−812]
判断是否存在标量 c,使 b=ca。
先用第一分量求可能的系数。若 −8=2c,就必须有 c=−4。
再检查同一个 c 能否解释第二分量:
(−4)(−3)=12与 b 的第二分量一致。
所以 b=−4a。两向量共线、方向相反,b 的长度是 a 的 4 倍。
这里必须检查所有分量。只看一个分量就宣布存在同一个倍数,可能被其他分量推翻。
线性组合:给已有方向装上系数旋钮
向量加法允许我们把指令接起来,数乘允许我们调节每条指令用多少。把两种操作合在一起,就得到线性组合。
给定向量 v1,v2,…,vk,表达式
c1v1+c2v2+⋯+ckvk
叫这些向量的一个线性组合。向量提供已有方向,系数 c1,c2,…,ck 像一排旋钮,决定每个方向取多少份。
系数可以是正数、负数或零。负数表示沿反方向使用某条向量,零表示这次完全不用它。因此“组合”不只是把箭头向前叠加,还允许后退、抵消和忽略某些方向。

先取 2 份 u,再取 1.5 份 v,首尾相接后得到一个新的向量。
“线性”限制了允许的动作
在线性组合里,我们只做两类事:向量乘标量,以及把结果相加。下面是线性组合:
2u−3v+21w
下面这些不是给定向量的线性组合:
[u12u22],[sinu1sinu2],[u1v1u2v2]
原因不在于它们“不能计算”,而在于它们对分量做了平方、正弦或对应相乘。线性组合只允许拿标量调节整支已有向量,再把结果相加。
例题:能否拼出目标向量
给定
a=[12],b=[31],c=[98]
我们要判断 c 能否写成 sa+tb。这不是靠看图猜系数,而是把目标的每个分量都对齐。
先把组合按分量展开:
sa+tb=s[12]+t[31]=[s+3t2s+t]要让它等于 c,两个分量必须同时相等:
{s+3t=92s+t=8由第二式得 t=8−2s,代入第一式:
s+3(8−2s)=9化简得到 s=3,再代回得到 t=2。
最后直接验算:
3[12]+2[31]=[98]因此目标确实能拼出,而且这次所需系数是 s=3,t=2。
拼不出来时,矛盾会落在分量方程里
看另一组向量:
a=[12],b=[24],p=[31]
若 sa+tb=p,就要有
{s+2t=32s+4t=1
但第一个方程乘 2 会得到 2s+4t=6,第二个方程却要求同一个左边等于 1。矛盾说明无论怎样调节 s,t,都拼不出 p。
从几何上看,b=2a,两根向量其实只给了同一个方向;而 p 不在那条方向线上。
张成:把所有可能的系数一次放开
刚才我们固定一个目标,寻找能否拼出它的系数。现在把问题倒过来:系数可以任意取值时,所有可能结果合在一起是什么?
给定 v1,…,vk,它们的张成记作
span{v1,…,vk}={c1v1+⋯+ckvk∣c1,…,ck∈R}
左边是一个集合,不是某一支向量。它收集了所有可能的线性组合。你可以把“张成”读成“这些方向能覆盖的全部范围”。
一根非零向量张成一条过原点的直线
只给一根非零向量 a 时,所有组合都是 ca。改变 c,终点可以沿 a 所在直线向前、向后,也可以停在原点,但不可能离开这条线。

一根非零向量的所有实数倍,恰好填满一条过原点的直线。
如果唯一给定的是零向量,那么无论系数怎样变化,结果都只有零向量:
span{0}={0}
为什么张成的直线和平面一定经过原点
把所有系数都取成零,总能得到
0v1+⋯+0vk=0
所以任何张成集合都包含原点。这给了我们一个很快的排除法:一条不经过原点的直线,不可能直接写成若干向量的张成。
例如
{[12]+t[31]∣t∈R}
描述的是经过点 (1,2)、方向为 [31] 的直线。它是“一固定位置加上一个张成方向”,一般不经过原点,因此不能把整条线简写成 span{[31]}。
新向量会不会扩大范围,只看它是否带来新方向
在二维平面中,给一根非零向量,只能覆盖一条线。再加入一根向量时,会出现两种情况。
若 b=2a,那么
sa+tb=sa+2ta=(s+2t)a
两只系数旋钮最后仍合并成沿 a 的一只旋钮。b 是重复方向,加入它没有扩大张成范围。
若第二根向量不在第一根的直线上,两根向量就提供两个真正不同的方向。在二维中,它们能张成整个平面。
“不共线就一定覆盖整个平面”可以算出来。设
a=[12],b=[21]
任取目标 p=[xy],要求
sa+tb=p
就得到
{s+2t=x2s+t=y
解为
s=32y−x,t=32x−y
无论 x,y 是什么,这两个系数都存在。因此每个二维目标都能拼出,张成范围就是整个 R2。
三维里要多问一句“是否离开原来的平面”
在 R3 中:
- 一根非零向量张成一条过原点的直线;
- 两根不共线向量张成一个过原点的平面;
- 第三根向量若落在这个平面内,只是已有方向的组合,范围仍是这个平面;
- 第三根向量若不在这个平面内,才会带来离开平面的方向,三根向量可以张成整个三维空间。
这里的核心不是数箭头,而是数真正新增的方向。三根箭头可能只给一个方向,也可能给两个方向,还可能给足三个方向。
“重复方向”与线性关系
若一组向量中有一根能由其余向量拼出,那么删掉它不会缩小张成范围。比如
v3=2v1−v2
任何原本使用 v3 的组合,都能把它换回 v1,v2:
av1+bv2+cv3=(a+2c)v1+(b−c)v2
这就是“多余”在数学上的精确含义:它没有扩大可达范围。等价地,把关系移到同一边,会得到一个系数不全为零的零向量组合:
2v1−v2−v3=0
以后学习线性相关与线性无关时,我们会把这种关系正式命名。本章先记住判断动作:加入一根向量后,张成范围有没有变大?
张成问“能到哪里”,重复方向问“谁没有带来新地方”。这两句会在列空间、基和秩里反复出现。
方程组的列视角:系数就是配方
现在回到上一章的三种视角。看方程组
{2x+y=7x+3y=8
通常的读法是:找一对 x,y,让两个条件同时成立。若按未知数把左边重新分组,会得到
x[21]+y[13]=[78]
现在 x,y 有了第二层身份:它们不只是方程里的未知数,也是两根列向量的配方系数。求解方程组,就是寻找应当取多少份第一列和多少份第二列,才能拼出右端目标。
为什么按列分组一定会还原原方程
把左边按分量算开:
x[21]+y[13]=[2x+yx+3y]
要让两个列向量相等,就必须让对应分量分别相等,于是原来的两个方程一行不少地回来。列视角没有换题,只是换了语言。
例题:从配方读回方程组
求 x,y,使
x[21]+y[13]=[78]
先按分量展开,得到
{2x+y=7x+3y=8由第一式得 y=7−2x,代入第二式:
x+3(7−2x)=8所以 −5x=−13,即 x=513。
代回 y=7−2x:
y=7−2⋅513=59用列组合语言说,目标向量需要 513 份第一列和 59 份第二列。
有解、无解和不止一个解怎样从张成看
设方程写成
x1a1+⋯+xnan=b
那么:
- 若 b 不在这些列向量的张成中,目标根本拼不出来,方程组无解;
- 若 b 在张成中,而且配方只有一份,方程组有唯一解;
- 若 b 在张成中,但已有方向中存在重复,某些系数可以互相补偿,方程组可能有无穷多解。
看一个只有重复方向的例子:
x[12]+y[24]=[36]
因为第二列是第一列的 2 倍,左边可以合并成
(x+2y)[12]
只要 x+2y=3 就能拼出目标。比如 (x,y)=(3,0)、(1,1)、(−1,2) 都可以,所以有无穷多份配方。
若把右端换成 [35],它不在那条张成直线上,任何配方都无效,方程组就无解。
下一章会把列向量并排放进一个矩阵 A,把配方系数放进向量 x,把目标写成 b。于是整句话会压缩成 Ax=b。矩阵记号变短了,背后的问题仍是“能否用这些列拼出目标”。
常见误区:先把容易混的地方拆开
把点和向量当成同一种对象
写法 (3,2) 和 [32] 很接近,但点表示位置,向量表示变化。只有把向量起点放在原点时,它的终点才与同坐标的点重合。
以为向量相加是在加长度
向量相加是分量相加,不是长度相加。一般只有两根向量同向时,和向量的长度才等于两者长度之和。若方向相反,它们还可能抵消。
以为负系数不允许
线性组合的系数可以取任意实数。负系数不是异常情况,它只是把某个方向倒过来用。少了负系数,一根向量就只能张成射线,不能张成整条过原点的直线。
用箭头数量代替方向数量
两根、三根甚至十根向量都可能只沿同一条线。张成范围取决于有多少真正新增的方向,不取决于列表里写了多少根箭头。
看到两个不相同的向量就断言能张成平面
“不相同”不等于“不共线”。[12] 和 [24] 确实不相等,但后一根是前一根的 2 倍,仍然只有一个方向。
以为张成可以得到不经过原点的直线
所有系数取零时一定得到零向量,所以张成总包含原点。不经过原点的直线要写成“固定位置向量加上方向向量的任意倍数”,不能只写一个 span。
练习:把动作、公式和范围对上
练习一:点与位移
从 A=(−3,4) 移动到 B=(2,−2)。求 AB,并检查从 B 返回 A 的向量。
终点减起点:
AB=[2−(−3)−2−4]=[5−6]返回向量方向相反:
BA=[−56]=−AB
练习二:加法与净位移
计算
[−25]+[7−3]
并说明结果表示什么。
对应分量相加:
[−2+75+(−3)]=[52]若第一分量表示向右、第二分量表示向上,那么净位移是向右 5、向上 2。
练习三:同一个标量要通过所有分量的检查
判断 u=4−62 与 v=−23−1 是否共线。
三个分量都满足同一个倍数关系:
u=−2v所以两向量共线、方向相反,u 的长度是 v 的 2 倍。
练习四:寻找线性组合系数
设
a=[10],b=[12]
求 s,t,使
sa+tb=[56]
展开左边:
s[10]+t[12]=[s+t2t]由 2t=6 得 t=3,再由 s+t=5 得 s=2。因此目标等于 2a+3b。
练习五:张成是否变化
已知
a=120,b=011,c=251
加入 c 会不会扩大 a,b 的张成范围?
先尝试把 c 写成 sa+tb。由第一分量得 s=2,由第三分量得 t=1。检查第二分量:
2⋅2+1⋅1=5成立,所以
c=2a+bc 已在原来的张成范围内,加入它不会扩大范围。
练习六:把方程组改写成列组合
把下面方程组写成列向量线性组合,并判断右端向量是否能由两列拼出。
{3x−2y=4x+5y=9
按未知数收集系数:
x[31]+y[−25]=[49]解方程组。由第一式得 x=34+2y,代入第二式:
34+2y+5y=9所以 17y=23,即 y=1723。再代回得到 x=1738。系数存在,因此右端向量在两列的张成中:
1738[31]+1723[−25]=[49]
从“怎样走”走向“怎样解”
这一章从一句指路开始。向量把变化量打包成一列数;加法把连续位移接起来;数乘让同一方向伸缩、反向或归零;线性组合给每个已有方向装上系数;张成则把所有系数放开,收集全部可达目标。
这样再看线性方程组,未知数就不只是等待求出的数字。它们是一份配方,告诉我们每个列向量该取多少。右端向量在列的张成里,配方才可能存在;已有方向是否重复,又会影响配方是否唯一。
下一章会把这些列向量排成矩阵,把配方写成未知向量,并学习怎样通过消元稳定地找出配方。那时矩阵不会突然变成一张陌生的数字表:它只是把本章的多根方向箭头整齐地放到了一起。