矩阵与线性方程组
线性方程组最初看起来是一排排方程。矩阵把这些方程里重复出现的结构拆开:哪些数字是系数,哪些量是未知数,哪些数字是右端结果。写成矩阵形式以后,同一个问题就有了三种读法:按行看是约束,按列看是组合,按整体看是一个矩阵方程。
本章先不急着做完整消元。我们要先学会把方程组翻译成
Ax=b
并看懂这句话在问什么:有没有一组系数 x1,x2,…,xn,能把矩阵 A 的列向量拼成目标向量 b。

从方程组到 Ax=b,关键是把系数、未知数和右端结果分开。
把方程组写成矩阵方程
先看一个二元方程组:
{x+2y=5,3x−y=4.
这里真正重复出现的是未知数 x,y。每个方程只是在告诉我们:这两个未知数分别乘上哪些系数,最后等于哪个数。把系数取出来,放成一个矩阵:
A=[132−1]
把未知数放成一个列向量:
x=[xy]
把右端结果放成一个列向量:
b=[54]
原来的方程组就变成:
[132−1][xy]=[54]
也就是 Ax=b。
矩阵方程不是把普通方程写得更复杂。它把“系数表”“未知数表”和“目标结果”分开,让我们能同时讨论许多方程和许多未知数。
更一般地,如果有 m 个方程、n 个未知数,系数矩阵 A 的大小是 m×n,未知向量 x 的大小是 n×1,右端向量 b 的大小是 m×1:
a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amnx1x2⋮xn=b1b2⋮bm
矩阵乘法在这里的结果正好是一列数。第 i 个数来自第 i 行系数和未知向量的点乘:
ai1x1+ai2x2+⋯+ainxn=bi
这就是第 i 个方程。
例题:从方程组到矩阵
把下面的方程组写成 Ax=b:
⎩⎨⎧2x−y+3z=7,−x+4y+z=2,5x+2z=9.
先按未知数的顺序固定列。这里使用 x,y,z 的顺序,所以第一列放 x 的系数,第二列放 y 的系数,第三列放 z 的系数。
再逐行取系数。第三个方程没有 y 项,所以 y 的系数是 0,不能把这一格空着。
A=2−15−140312把未知数和右端结果分别写成列向量:
x=xyz,b=729因此原方程组的矩阵形式是:
2−15−140312xyz=729
行视角与列视角
同一个 Ax=b 可以从行和列两个方向读。行视角接近我们熟悉的方程组;列视角更接近线性代数的核心。
行视角:每一行是一条约束
矩阵 A 的每一行对应一个方程。二元一次方程在平面上是一条直线,三元一次方程在空间中是一个平面。方程组的解,就是所有这些约束共同满足的位置。

按行看,解是所有方程共同满足的点。
以前面的方程组为例:
{x+2y=5,3x−y=4.
第一行给出一条直线,第二行给出另一条直线。如果两条直线相交,交点就是唯一解;如果平行,可能无解;如果重合,就会有无穷多解。
行视角很适合解释“解在哪里”。但当方程数量和未知数数量变多以后,只靠几何交点很快会变得困难。这时列视角会更有力。
列视角:用列向量拼出目标
把矩阵 A 按列拆开:
A=∣a1∣∣a2∣⋯∣an∣
其中 a1,a2,…,an 是 A 的列向量。矩阵乘法可以写成:
Ax=x1a1+x2a2+⋯+xnan
所以方程 Ax=b 实际在问:
x1a1+x2a2+⋯+xnan=b
也就是说,b 能不能由 A 的列向量线性组合得到。

按列看,未知数不是点的坐标,而是“每一列取多少倍”。
方程 Ax=b 有解,当且仅当 b 可以由 A 的列向量线性组合得到。换句话说,b 必须落在 A 的列向量张成的集合里。
再看开头的例子:
[132−1][xy]=[54]
矩阵的第一列是
[13]
第二列是
[2−1]
列视角把问题改写成:
x[13]+y[2−1]=[54]
如果能找到合适的 x,y,目标向量 b 就能被这两列拼出来。
增广矩阵
解线性方程组时,未知数的名字有时会妨碍我们看清结构。增广矩阵把系数矩阵 A 和右端向量 b 放在一起:
a11a21a31a12a22a32a13a23a33b1b2b3
竖线左边是系数,右边是方程等号右侧的结果。它不表示新的运算,只是一个记录方式。

增广矩阵保留了解方程组所需的全部数字信息。
例如:
{x+2y=5,3x−y=4
对应的增广矩阵是:
[132−154]
下一章会系统学习高斯消元。现在先记住一件事:对增广矩阵做合适的行变换,本质上是在用等价方程替换原方程,目标是让解集保持不变,同时把结构变得更容易读。
增广矩阵里的竖线不是绝对值,也不是矩阵的一列运算符。它只是提醒我们:左边是系数,右边是结果。行变换时,竖线两侧同一行必须一起变化。
三种可能的解
线性方程组的解只有三种基本情况:无解、唯一解、无穷多解。二维里可以用直线看出来;更高维里,要靠矩阵结构判断。

二维直线图能给出直观图像,但矩阵方法会把这种判断推广到更高维。
唯一解:所有未知数都被确定
例如:
{x+y=3,x−y=1.
两条直线相交于一个点,所以只有一个解。代数上看,两个方程给出的约束足够确定 x 和 y。
无解:约束互相冲突
例如:
{x+y=2,2x+2y=5.
第二个方程左边是第一个方程左边的 2 倍。如果第一个方程成立,那么 2x+2y 必须等于 4,不可能等于 5。这说明两条约束冲突。
用增广矩阵写出来是:
[121225]
做等价变形时,会出现类似下面的矛盾行:
[101021]
最后一行表示 0x+0y=1,也就是 0=1。这不可能成立,所以无解。
无穷多解:有自由方向
例如:
{x+y=2,2x+2y=4.
第二个方程只是第一个方程的 2 倍,没有提供新的约束。所有满足 x+y=2 的点都是解。令 y=t,就得到:
x=2−t
所以解可以写成:
[xy]=[2−tt]
其中 t 可以是任意实数。
例题:用列向量判断有解
考虑矩阵方程:
[132−1][xy]=[54]
问:b 是否能由 A 的列向量线性组合得到?如果能,组合系数是多少?
先把矩阵按列拆开:
a1=[13],a2=[2−1]写出列组合方程:
x[13]+y[2−1]=[54]这等价于两个普通方程:
{x+2y=5,3x−y=4.由第一个方程得 x=5−2y。代入第二个方程:
3(5−2y)−y=415−7y=4y=711因而
x=713所以 b 可以由 A 的两列拼出来:
[54]=713[13]+711[2−1]
这个结果说明两件事:方程组有解,而且在这个例子中只有一个解。列视角告诉我们“目标能不能被拼出来”,解出的 x,y 告诉我们“每列各取多少倍”。
例题:从增广矩阵读出无解
判断下面的方程组是否有解:
{x+2y=3,2x+4y=7.
先写出增广矩阵:
[122437]第二行左侧正好是第一行左侧的 2 倍。如果两个方程同时成立,第二行右侧也应该是第一行右侧的 2 倍,也就是 6。
但第二行右侧是 7。这等价于出现矛盾:
0=1因此这个方程组无解。按列向量看,目标向量
[37]不在两列向量张成的那条直线上。
一个真实模型:资源配比
矩阵方程常出现在配比问题里。假设有两种生产方案,方案甲和方案乙都会消耗三类资源。每执行一次方案甲,会产生资源需求向量:
a1=211
每执行一次方案乙,会产生资源需求向量:
a2=131
现在希望总需求是:
b=895
问题是:方案甲做多少次、方案乙做多少次,能刚好达到目标?

在配比模型里,每一列可以代表一种方案,每一行可以代表一种资源约束。
把方案甲和方案乙作为矩阵的两列:
211131[uv]=895
列视角直接给出含义:
u211+v131=895
如果取 u=3,v=2,就有:
3211+2131=895
所以这个目标可以由两种方案组合出来。若目标向量换成别的数,未必还能精确做到。这就是列空间视角在真实模型中的作用:它先回答“目标是否可达”,再回答“怎么组合”。
练习
练习一:写成矩阵形式
把下面的方程组写成 Ax=b:
{4x−y=6,2x+3y=1.
答案是:
[42−13][xy]=[61]第一列是 x 的系数,第二列是 y 的系数,右端向量收集两个方程的结果。
练习二:写出列组合
把下面的矩阵方程改写成列向量线性组合:
[13−2104]x1x2x3=[57]
列组合形式是:
x1[13]+x2[−21]+x3[04]=[57]这句话的含义是:目标向量是否能由这三列向量组合得到。
练习三:判断解的类型
判断下面方程组的解类型:
{2x−y=1,4x−2y=2.
第二个方程是第一个方程的 2 倍,它没有提供新的约束。因此所有满足 2x−y=1 的点都是解,方程组有无穷多解。
令 x=t,则:
y=2t−1解可以写成:
[xy]=[t2t−1]
练习四:识别无解
判断下面方程组是否有解:
{x−3y=4,2x−6y=9.
第二个方程左侧是第一个方程左侧的 2 倍。如果第一个方程成立,第二个方程右侧应该是 8,但题目给的是 9。约束互相冲突,所以无解。
对应的增广矩阵是:
[12−3−649]它会产生矛盾行,表示类似 0=1 的不可能等式。
练习五:配比问题
设
a1=[12],a2=[31],b=[75]
求 u,v,使得 ua1+va2=b。
列组合给出:
u[12]+v[31]=[75]所以:
{u+3v=7,2u+v=5.由第一个方程得 u=7−3v。代入第二个方程:
2(7−3v)+v=514−5v=5v=59因此:
u=58目标向量可以写成:
b=58a1+59a2
你应能做出的判断
学完本章后,遇到线性方程组时,先做三件事。
第一,把它写成 Ax=b,并确认矩阵大小是否匹配。A 有多少列,未知向量就有多少个分量;A 有多少行,右端向量就有多少个分量。
第二,在行视角和列视角之间切换。按行看,每一行是一条约束;按列看,Ax=b 在问 b 能不能由 A 的列向量线性组合得到。
第三,识别三种解类型。出现矛盾时无解;所有未知数都被确定时唯一解;没有矛盾但留下自由变量时无穷多解。下一章的高斯消元会把这些判断变成稳定可执行的步骤。