零空间
矩阵A的零空间就Ax=0的解的集合。假设矩阵的秩为r,矩阵为m×n的矩阵,则零空间的维数为n−r。因为秩为r,则自由变量的个数为n−r,有几个自由变量,零空间就可以表示层几个特解的线性组合,也即是零空间的维数为自由变量的个数。
列空间
矩阵A的列空间就是矩阵A中各列的线性组合。假设矩阵的秩为r,矩阵为m×n的矩阵,则列空间可以表示为r个主元的线性组合,即列空间的维数为r。
行空间
在线性代数中,我们一般习惯将矩阵看出是一组列向量的组合,matlab中矩阵的存储是按列存储的(c中不是)。因此,我们可以将矩阵A进行转置后来讨论行空间和左零空间。假设转置后的矩阵为AT,则A的行空间就是AT的列空间,A的左零空间为AT的零空间。注意这里AT为n×m的矩阵,则此时行空间的维数为r。
左零空间
左零空间是ATx=0的解的集合。由于秩为r,则自由变量的个数为m−r,即左零空间的维数为m−r。
上面都是一些定理结果,下面来举例说明上述定理:
假设矩阵为A:
A=[123111211231]经过高斯消元得到行最简式R:
A=[123111211231]→R=[101101100000]于是我们知道矩阵A的秩为2,则其列空间,行空间的维数都是2,零空间的维数为4−2=2,左零空间的维数为3−2=1。
很明显,矩阵A的列中,前两列是线性无关的,则其列空间可以由前两列来表示。同理,前两行是线性无关的,其行空间可以有前两行来表示。由于只有两个主元,则自由变量个数为4−2=2,所以零空间的特解有两个,零空间可以由这两个特解的线性组合来表示。由于左零空间可以看成是ATx=0的线性组合,则有:
ATx=0→(ATx)T=0T→xTA=0我们知道初等行变换不改变矩阵的行空间,但可能改变其列空间(因为行变换是行向量的线性组合),并且消元过程可以表示如下:
EA=R→[−1201−10−101]⏟E[123111211231]⏟A=[101101100000]⏟R我们可以看出,初等矩阵E的第三行与A相乘得到的是0向量即:
[−101][123111211231]=[0000]对比下式:
xTA=0可以求得x的值:
x=[−101]这个x就是左零空间的基,因此左零空间的维数为3−2=1。