考虑方程 Ax=b 的左边。把 Ax 按列展开,就是以未知数 x1,…,xn 为系数,对系数矩阵 A 的列向量进行线性组合。所以“方程组是否有解”与“b 是否落在系数矩阵的列空间中”是同一个问题。
Ax=b⟺x1a1+⋯+xnan=b有解⟺b∈Col(A) 增广矩阵 [A∣b] 比 A 多一列 b。若 b 已在列空间中,加入它不会增加维数;否则,它会增加一个独立方向。因此也可比较两个矩阵的秩来判断是否有解:
Ax=b 有解⟺rank(A)=rank([A∣b]). 确定有解后,再看组合系数是否唯一。列向量线性无关时,同一个 b 的组合系数只能有一组,因此解唯一;列向量线性相关时,可以沿某些方向改变系数而不改变组合结果,因此有无穷多解。单看列相关性不能判断有解与否,仍须先检查 b 是否在列空间中。
所有满足 Ah=0 的向量 h 组成 A 的零空间,记为 Null(A)。它与矩阵左乘所诱导映射 TA(h)=Ah 的核是同一个集合,只是分别从方程组和线性映射的角度命名。若 xp 是 Ax=b 的一个特解,则所有解组成如下集合:
Null(A)={h∈Rn:Ah=0}=ker(TA),{x:Ax=b}=xp+Null(A)={xp+h:h∈Null(A)}. 解集维数表示描述所有解需要多少个独立参数。对齐次方程,解集 Null(A) 是线性空间,维数就是其一组基的向量数。非齐次方程有解时,解集是这个线性空间的平移;平移不改变独立参数的个数,因此将它的解集维数定义为 dimNull(A)。
从行的角度看,rank(A)=k 表示系数部分有 k 个独立的线性条件。在方程组有解的前提下,消元后留下 k 个非零的有效方程;其他方程是它们的线性组合,没有再增加限制。“有效”指独立,不是指原方程中看起来非零的行数。
设 A 有 n 列、秩为 r。消元后有 r 个主元变量,余下 n−r 个自由变量。在齐次方程中,让每个自由变量依次取 1、其余自由变量取 0,就得到 n−r 个基础解向量;它们线性无关,并张成整个零空间。因此:
dimNull(A)=n−rank(A),rank(A)+dimNull(A)=n,Ax=b 有解时:dim{x:Ax=b}=n−rank(A). 在实数范围内,有解且维数为 0 时,解唯一;维数大于 0 时,有无穷多解,维数给出自由参数的个数。无解时不套用这个维数公式。
读完这一节了吗?标记后,可以在目录中找到自己的学习进度。