第一章把方程组化成阶梯形,答案就跟着出来了,那套动作只教你怎么算。要看懂阶梯形的最后几行,得先有一个数,用它把方程组的命运分成三种。这个数在《九章》的直除里已经悄悄在用,只是等到 19 世纪才有了名字。
一、初等变换与矩阵等价
第三章用过初等变换,那一节只许动行,三种动作分别是交换两行、用非零数乘某一行、把一行的 \(k\) 倍加到另一行。矩阵的初等变换放宽了一步,三种行变换与三种列变换合起来共六种,列上也能交换、也能乘非零数、也能把一列的倍数加到另一列。它们的共同点是都等于乘一个可逆的初等矩阵,所以每一步都能反着做回去,做过的动作不会丢信息。
这六种动作能带来一个分类。两个同型矩阵若能用有限次初等变换互相化过去,就叫等价,记作 \(A\sim B\)。等价和相等是两件事,相等要求每个位置上的数都一样,等价只要求两个矩阵的秩一样:秩一样的时候,两边都能化到同一个标准形。这个分类在第三章讲分块矩阵时露过一次面,到这里可以正式写下来了。
定义(矩阵等价)
设 \(A,B\) 都是 \(m\times n\) 矩阵,若 \(A\) 经有限次初等变换可以化成 \(B\),则称 \(A\) 与 \(B\) 等价,记作 \(A\sim B\)。等价是自反的、对称的、传递的;同型矩阵等价的充要条件是 \(r(A)=r(B)\),此时两者都等价于同一个标准形 \(\left(\begin{smallmatrix}I_r&O\\O&O\end{smallmatrix}\right)\)。
标准形的好处是把「一大堆矩阵」压成「几个代表」:形状只由一个数 \(r\) 决定,所以 \(m\times n\) 矩阵按等价分类,类的个数不超过 \(\min(m,n)+1\),秩给每个等价类发了一个编号,编号从 0 数到 \(\min(m,n)\)。
解方程组的时候为什么只许动行
每一行是一个方程,换行、乘非零数、两行相加,说的还是同一件事,所以解集不变。换列等于给未知数改名:把 \(x\) 与 \(y\) 两列对调,方程本身没变,解却换了位置。列变换能用来化简矩阵、能用来判秩,不能直接用来解方程组。
二、秩:一个数数清主元
在 \(m\times n\) 矩阵 \(A\) 里任取 \(k\) 行 \(k\) 列,交叉位置上的数按原来的次序组成一个 \(k\) 阶行列式,叫 \(A\) 的\(k\) 阶子式。若 \(A\) 中有一个 \(r\) 阶子式不为零,而所有 \(r+1\) 阶子式(如果有)全为零,就把 \(r\) 叫作 \(A\) 的秩,记作 \(r(A)\);零矩阵没有非零子式,规定 \(r(O)=0\)。
定义(矩阵的秩)
矩阵 \(A\) 中不为零的子式的最高阶数 \(r\) 称为 \(A\) 的秩,记作 \(r(A)\)。等价的说法有三个:\(r(A)\) 是最高阶非零子式的阶数;是行阶梯形里主元的个数;也是非零行的条数。
按子式去算秩不现实,\(4\times4\) 的矩阵有 16 个三阶子式,一个一个算要算到天黑。实际算法只有一句:把 \(A\) 化成行阶梯形,数非零行的条数。行阶梯形里每行第一个非零数叫主元,一行一个,所以秩也等于主元的个数,而主元的个数又等于非零行的条数。
定理(初等变换不改变秩,三秩相等)
若 \(A\sim B\),则 \(r(A)=r(B)\),也就是说初等行变换与初等列变换都不改变秩。对任意矩阵 \(A\),它的行秩、列秩与秩三者相等,即 \(r(A)=r(A^{T})\)。
把这几句话并排看,就得到本章最要紧的一条:秩是最高阶非零子式的阶数,是行阶梯形里主元的个数,也是方程组里独立的方程的条数,三个说法数的是同一件事。多写的方程要么能被前面的方程凑出来,要么与前面根本对不上,前者不添主元,后者连解都没有,所以方程写得再密,独立的信息仍然只有 \(r\) 条。
秩、主元个数、独立方程的条数,是同一件事的三个名字。
行变换为什么改不了秩
交换两行只是把子式的行换个次序,乘非零数只是给子式提一个非零因子,\(r\) 阶子式零与非零都不变。把一行的 \(k\) 倍加到另一行,子式按行列式的性质拆成两个子式之和,其中一个有两行成比例而为零,剩下的正好是原来的那个子式。三件事都不改变「有没有非零的 \(r\) 阶子式」。
1884 年,柏林
秩成了矩阵自己的属性
「一个线性方程组相容的充要条件,是系数矩阵与增广矩阵的秩相等。」
弗罗贝尼乌斯 1884 年前后论文中的结论,此处按通行叙述转述
在此之前,「秩」只是消元过程中冒出来的一个数字;弗罗贝尼乌斯把它说成矩阵自身的属性,再用它判定相容性。克罗内克在 1880 年代也独立得到过接近的结果,欧洲的教科书因此把这条判据叫克罗内克-卡佩利定理,中文教材大多只叫有解判定定理。
三、有解的判定
把常数列并进系数矩阵,得到增广矩阵 \((A\mid b)\),对它做同样的行变换。前 \(n\) 列是系数,最后一列是常数项,主元平时落在前 \(n\) 列里;一旦某个主元落到最后一列,那一行左边的系数全是零,方程只剩 \(0=d\) 这一句。于是阶梯形只有三种样子:每行都有主元且主元全在前 \(n\) 列,此时 \(r(A)=r(A\mid b)=n\),回代一路走下来,解唯一;有的行整行为零,连常数项也是零,此时 \(r(A)=r(A\mid b)<n\),有 \(n-r\) 个未知数没被定死,解有无穷多;出现 \((0\ 0\ \cdots\ 0\mid d)\) 且 \(d\ne0\) 的一行,没有任何一组数能让它成立,无解,此时 \(r(A\mid b)=r(A)+1\)。
定理(有解判定)
设 \(A\) 是 \(m\times n\) 矩阵,\(Ax=b\) 的增广矩阵为 \((A\mid b)\)。若 \(r(A)<r(A\mid b)\),方程组无解;若 \(r(A)=r(A\mid b)=n\),有唯一解;若 \(r(A)=r(A\mid b)<n\),有无穷多解。合起来说,\(Ax=b\) 有解当且仅当 \(r(A)=r(A\mid b)\)。
判据只剩一条:两个秩相等就有解。理由在阶梯形上看得见,两个秩的差只可能取 0 与 1,因为增广矩阵比系数矩阵只多一列;差为 1 时多出的那个主元只能落在最后一列,那行的方程是 \(0=d\);差为 0 时最后一列没有主元,每行都能解出某个未知数,解集不空。所以做题的顺序是先化阶梯形,数两个秩,再决定要不要往下算。
两个秩的差为什么最多是 1
增广矩阵只比系数矩阵多一列,多一列最多多出一个主元,所以 \(r(A\mid b)\) 只能等于 \(r(A)\) 或 \(r(A)+1\),不会更大。讨论参数时这条很省事:算出 \(r(A)=2\) 之后,只要有一行常数项对不上,就能断定 \(r(A\mid b)=3\),不必再逐行算。
公元前 1 世纪,长安
直除早就在数秩
「置上禾三秉,中禾二秉,下禾一秉,实三十九斗,于右方。」
《九章算术》卷八「方程」
接下来是一遍遍「以少减多」的直除,把某一程减到整行为零。能被减成零行的条数就是 \(n-r\),剩下的非零行就是 \(r\)。古人靠数剩下几行来判断还有没有解,做法和今天的判定定理一样,只是没有把这件事写成一条定理。
四、齐次组与基础解系
常数列全是零的方程组 \(Ax=0\) 叫齐次线性方程组。它至少有零解,所以问题只剩一个:除了零解还有没有别的解。化成行阶梯形之后,若 \(r(A)=n\),每一列都有主元,回代只能得零;若 \(r<n\),就有 \(n-r\) 列没有主元,对应的未知数可以随便取,解立刻多起来。
这些解放在一起有个好脾气:两个解相加还是解,一个解乘任意常数还是解,因为 \(A(x+y)=Ax+Ay\) 与 \(A(kx)=kAx\)。所以齐次组的解集是一个向量空间,叫解空间,零解就是它的原点,这个空间的维数是 \(n-r\)。要把这个空间写出来,只需找到一组骨架向量,其余的解都由它们组合而成。
定义与定理(基础解系)
齐次组 \(Ax=0\) 的一组解 \(\xi_1,\xi_2,\dots,\xi_s\) 若线性无关,并且方程组的任一解都能写成它们的线性组合,就称为该方程组的基础解系。设 \(A\) 是 \(m\times n\) 矩阵且 \(r(A)=r<n\),则基础解系恰好含 \(n-r\) 个解,通解为 \(x=k_1\xi_1+\cdots+k_{n-r}\xi_{n-r}\),其中 \(k_i\) 任意。
求基础解系只动行,四步走:化行阶梯形;认准有主元的列与没有主元的列;让自由未知数轮流取 1、其余取 0;回代求出主元对应的未知数。下面拿一个具体的组从头走到尾。
\[ \begin{cases} x_1+2x_2+x_3=3,\\ 2x_1+4x_2+3x_3+x_4=5,\\ 3x_1+6x_2+4x_3+x_4=8. \end{cases} \]写出增广矩阵,第二行减两倍第一行得 \((0,0,1,-1\mid-1)\),乘 \(-1\) 之后写成 \((0,0,1,-1\mid1)\);第三行减三倍第一行得 \((0,0,1,-1\mid-1)\),与第二行只差一个符号,消掉就是零行。于是
\[ \left(\begin{array}{cccc|c} 1&2&1&0&3\\ 2&4&3&1&5\\ 3&6&4&1&8 \end{array}\right)\to \left(\begin{array}{cccc|c} 1&2&1&0&3\\ 0&0&1&-1&1\\ 0&0&0&0&0 \end{array}\right). \]非零行 2 条,所以 \(r(A)=r(A\mid b)=2\),两个秩相等,方程组有解;未知数 4 个,自由未知数 2 个,基础解系里就有 2 个向量。主元落在第 1 列与第 3 列,主元未知数是 \(x_1,x_3\),自由未知数是 \(x_2,x_4\)。
先算齐次组 \(Ax=0\),阶梯形给出的两个方程是 \(x_1+2x_2+x_3=0\) 与 \(x_3-x_4=0\)。取 \(x_2=1,x_4=0\),得 \(x_3=0\),\(x_1=-2\),向量 \(\xi_1=(-2,1,0,0)\);取 \(x_2=0,x_4=1\),得 \(x_3=1\),\(x_1=-1\),向量 \(\xi_2=(-1,0,1,1)\)。这两个向量线性无关,任何一个齐次解都是它们的组合,所以通解是 \(x=k_1\xi_1+k_2\xi_2\)。代回验一次,\(A\xi_2\) 的第二行是 \(-2+0+1+1=0\),第三行是 \(-3+0+2+1=0\),对上了。
自由未知数一定要取 1 吗
不一定,取什么都行,只要这 \(n-r\) 次取值让系数矩阵化成单位矩阵。习惯取 1 和 0,好处是写出来的 \(\xi\) 在自由位置上直接就是标准基,答案好检查。换成别的值,得到的是同一组解的另一组基,通解的形式不唯一,解集本身不变。
五、非齐次组的通解
回到上面那个组,常数项不是零。阶梯形已经说明两个秩相等,所以有解,而且 \(r=2<4\),解有无穷多。取自由未知数 \(x_2=x_4=0\),回代得 \(x_3=1\)、\(x_1=2\),得到一个特解 \(\eta^{*}=(2,0,1,0)\)。齐次组的解刚才已经算出来,是 \(k_1\xi_1+k_2\xi_2\)。两者相加还是解,因为 \(A(\eta^{*}+k_1\xi_1+k_2\xi_2)=b+0=b\)。
反过来也成立。任取一个解 \(x\),它减去特解满足 \(A(x-\eta^{*})=b-b=0\),所以 \(x-\eta^{*}\) 是齐次组的解。两个方向合起来,非齐次组的全部解就是一个特解加上齐次组的全部解。几何上,解集是一条不过原点的直线,它由过原点的那条平行线整体平移得到,平移量就是这个特解。
定理(非齐次组的通解结构)
设 \(Ax=b\) 有解,\(\eta^{*}\) 是它的一个特解,\(\xi_1,\dots,\xi_{n-r}\) 是 \(Ax=0\) 的基础解系,则 \(Ax=b\) 的通解为 \(x=\eta^{*}+k_1\xi_1+\cdots+k_{n-r}\xi_{n-r}\),其中 \(k_i\) 任意。\(r=n\) 时没有自由未知数,通解只剩特解本身,解唯一。
把刚才那个组的答案拼完整:\(x=(2,0,1,0)+k_1(-2,1,0,0)+k_2(-1,0,1,1)\)。取 \(k_1=k_2=0\) 就是特解,取 \(k_1=1,k_2=0\) 得 \((0,1,1,0)\),代回第一个方程是 \(0+2+1=3\),对得上。\(k_1,k_2\) 取遍所有实数,就得到解集里的全部点。
解的结构只有一句:非齐次组的解,是一个特解加上齐次组的全部解。
怎么算
- 先记下未知数个数 \(n\)。后面判断有没有唯一解、自由未知数有几个,都要用它。
- 化成行阶梯形,数非零行。这一步给 \(r(A)\),顺手把主元列圈出来。
- 常数列并进去再数一次。得到 \(r(A\mid b)\),两个数一比,无解的情形当场就能收工。
- 齐次组按列认人。主元列对主元未知数,自由列对自由未知数,让自由未知数轮流取 1、其余取 0。
- 非齐次组先要一个特解。把自由未知数全取 0,回代即得,再加上刚算好的齐次通解。
- 答案代回验一行。常数列最容易抄错,验一次能省掉大半返工。
例题
例 1 求 \(A=\begin{pmatrix}1&-1&2\\2&1&1\\3&0&3\end{pmatrix}\) 的秩。
第二行减两倍第一行得 \((0,3,-3)\),第三行减三倍第一行也得 \((0,3,-3)\),两行相减成零行,非零行剩 2 条,所以 \(r(A)=2\)。用子式验一遍:左上角二阶子式 \(1\cdot1-(-1)\cdot2=3\ne0\),而三阶行列式算出来是 \(3+3-6=0\),所以最高阶非零子式的阶数是 2。
例 2 讨论 \(a\) 取何值时,方程组 \(x_1+x_2+x_3=1,\ 2x_1+3x_2+ax_3=3,\ x_1+ax_2+3x_3=2\) 无解、有唯一解、有无穷多解。
第二行减两倍第一行得 \((0,1,a-2\mid1)\),第三行减第一行得 \((0,a-1,2\mid1)\)。再用第二行消第三行,末位是 \(a(3-a)\),常数位是 \(2-a\)。\(a\ne0\) 且 \(a\ne3\) 时末位非零,\(r(A)=r(A\mid b)=3\),唯一解;\(a=0\) 时末位为零而常数位是 2,出现 \(0=2\),无解;\(a=3\) 时末位为零而常数位是 \(-1\),同样无解。这两种情形都没有自由未知数可用,所以不会出现无穷多解。
例 3 求 \(x_1+x_2+x_3+x_4=4,\ x_1+2x_2+3x_3+4x_4=10\) 的通解。
两个方程不成比例,\(r(A)=r(A\mid b)=2\),\(n=4\),自由未知数 2 个。取 \(x_3=x_4=0\) 得特解 \((1,1,1,1)\);对应的齐次组两行相减得 \(x_2=-2x_3-3x_4\) 与 \(x_1=x_3+2x_4\),令自由未知数轮流取 1 得 \(\xi_1=(1,-2,1,0)\)、\(\xi_2=(2,-3,0,1)\)。通解 \(x=(1,1,1,1)+k_1\xi_1+k_2\xi_2\)。
习题
A 档 巩固定义与基本计算,每题五分钟内
1. 把 \(\begin{pmatrix}1&2&-1\\2&4&-2\\3&1&0\end{pmatrix}\) 化成行阶梯形,写出它的秩。
看答案
第二行减两倍第一行成零行,第三行减三倍第一行得 \((0,-5,3)\)。非零行 2 条,\(r(A)=2\)。
2. 用子式说明 \(\begin{pmatrix}1&2&3\\2&4&6\\3&6&9\end{pmatrix}\) 的秩为 1。
看答案
任意两行成比例,所有二阶子式都为零;而元素 1 本身是一个非零的一阶子式。最高阶非零子式是一阶,\(r=1\)。
3. 判断 \(x+y=1,\ x-y=2,\ 2x=3\) 有没有解。
看答案
第三行是前两行之和,消元后成零行且常数位为零。\(r(A)=r(A\mid b)=2=n\),唯一解 \(x=\tfrac32,\ y=-\tfrac12\)。
4. 求齐次组 \(x_1+x_2+x_3=0,\ 2x_1+2x_2+2x_3=0\) 的基础解系。
看答案
两行成比例,\(r=1\),\(n=3\),基础解系含 2 个解:\(\xi_1=(-1,1,0)\),\(\xi_2=(-1,0,1)\)。通解 \(x=k_1\xi_1+k_2\xi_2\)。
5. 设 \(A\) 是 \(4\times5\) 矩阵且 \(r(A)=3\),\(Ax=0\) 的基础解系含几个解?
看答案
\(n-r=5-3=2\) 个。行数 4 与答案无关,只有未知数个数和秩起作用。
6. 把 \(x+y+z=1,\ x-y=0\) 的通解写成「特解 + 齐次通解」。
看答案
\(r=2\),\(n=3\),自由未知数 1 个。取 \(z=0\) 得特解 \(\left(\tfrac12,\tfrac12,0\right)\),齐次组的基础解系取 \((-1,-1,2)\),通解 \(x=\left(\tfrac12,\tfrac12,0\right)+k(-1,-1,2)\)。
B 档 综合题,接近期末与考研难度
1. 设 \(A\) 是 \(m\times n\) 矩阵,\(r(A)=r\),证明 \(Ax=0\) 的解空间维数是 \(n-r\)。
看答案
化成行阶梯形,主元列 \(r\) 个,自由列 \(n-r\) 个。每个自由未知数取 1、其余取 0,回代得到一个解,这 \(n-r\) 个解线性无关;任一解又被 \(n-r\) 个自由未知数唯一确定,所以它们的基础解系就是 \(n-r\) 个。
2. \(a\) 取何值时 \(x+y+z=0,\ x+2y+3z=0,\ x+4y+az=0\) 有非零解?写出此时的基础解系。
看答案
系数行列式是 \(a-7\),\(a=7\) 时为零,有非零解。此时第三行等于前两行的组合,\(r=2\),取 \(z=1\) 得 \(y=-2,\ x=1\),基础解系只有一个解 \((1,-2,1)\)。
3. 设 \(Ax=b\) 有两个解 \(\eta_1=(1,1,1)\)、\(\eta_2=(2,3,4)\),且 \(A\) 是 \(3\) 阶方阵、\(r(A)=2\),写出 \(Ax=b\) 的通解。
看答案
两解之差 \(\eta_1-\eta_2=(-1,-2,-3)\) 是齐次解,\(n-r=1\),基础解系取 \((1,2,3)\)。通解 \(x=(1,1,1)+k(1,2,3)\)。
4. 证明:若 \(Ax=b\) 有两个不同的解,则它有无穷多解。
看答案
两个不同的解之差是非零的齐次解,说明 \(r(A)<n\),有自由未知数。由判定定理 \(r(A)=r(A\mid b)<n\),解集里含着一条直线,所以有无穷多解。
C 档 拓展与历史原题
1.(弗罗贝尼乌斯,1884)设 \(A\) 是 \(3\times3\) 矩阵而 \(r(A)=2\)、\(r(A\mid b)=3\),说明这个方程组无解,并指出阶梯形里会出现什么样的行。
看答案
两个秩差 1,多出的主元只能落在常数列上,阶梯形里必有一行是 \((0\ 0\ 0\mid d)\) 且 \(d\ne0\),写成方程就是 \(0=d\)。没有任何一组 \(x\) 能让它成立,所以无解。
2.(克罗内克-卡佩利)用一行符号写出这条定理,并说明为什么两个名字会并排出现。
看答案
定理说 \(Ax=b\) 有解当且仅当 \(r(A)=r(A\mid b)\)。克罗内克与弗罗贝尼乌斯在 1880 年代各自得到这条判据,卡佩利后来把它写进意大利语教材,欧洲的习惯就把名字合起来叫。中文教材多数只叫有解判定定理。
3. 用基础解系写出 \(x_1+x_2+x_3=3\) 的通解。
看答案
\(r(A)=r(A\mid b)=1\),\(n=3\),基础解系含 2 个解。取 \(x_2=x_3=0\) 得特解 \((3,0,0)\),齐次组的基础解系取 \(\xi_1=(-1,1,0)\)、\(\xi_2=(-1,0,1)\),通解 \(x=(3,0,0)+k_1\xi_1+k_2\xi_2\)。
思考题 不设标准答案,只给提示
1. 同型且秩相等的两个矩阵为什么一定等价?
看提示
把两个矩阵各自化成等价标准形,标准形的形状只由秩决定,所以化出来的是同一个矩阵。于是 \(A\) 与 \(B\) 都能化到它,再由等价可以倒着走,两者就等价。
2. 一个非齐次组有两个不同的解,能不能断定它有无穷多解?
看提示
能。两解之差是非零的齐次解,说明 \(r(A)<n\),解集里至少有一条直线,直线上的点一个一个都是解。
3. 若系数矩阵是 \(n\) 阶方阵且 \(r(A)=n\),\(Ax=b\) 有几个解?几何上怎么读?
看提示
恰好一个。主元一列不缺,回代只有一条路可走;几何上是 \(n\) 张平面交于一点,既没有多余的自由方向,也没有互相矛盾的一对。
延伸阅读
- 同济大学数学系《线性代数》第六版,第四章「线性方程组」。本章的秩、基础解系与通解口径以这本为准。
- 《九章算术》卷八「方程」,配合刘徽注读,看直除怎么把一程减成零行。
- 莫里斯·克莱因《古今数学思想》,第 3 册关于 19 世纪线性代数的部分,秩与矩阵如何从方程组里长出来。
- Gilbert Strang, Introduction to Linear Algebra,第 3 章。用列空间讲秩与可解性,与本章的说法可以对着看。