求解Ax=0
消元法求解零空间
那么我们如何求解呢?还是使用消元法,之前我们说使用消元法求解方程时,我们对一种情况是无法处理的,那就是矩阵不可逆的情况,之前对这种情况的解释是求出的解不唯一,这其实正好对应了现在我们所认识到的“空间”的概念。我们从最简单的零空间()的计算谈起。
例1:,求中的构成的零空间
先将方程写出,如下
首先观察矩阵我们发现,第三行是前两行的和,这意味着即使主元为,我们也得继续消元下去。那么按部就班,有
在消元的过程中,我们发现矩阵的主元(Pivot)数量为(和),主元的个数称为矩阵的秩(Rank),因此在本题中矩阵的秩为。
接下来就是回代求解了,由于消元得到的不是一个严格的上三角矩阵,对角线上的给我们造成了解不唯一的麻烦,所以这里我们先来声明几个概念
中,列和被称为主列(Pivot Columns,主元所在的列),其余两列和被称为自由列(Free Columns),所谓自由列就是表示其对应的未知变量(表示自由列是第列)可以被任意分配值。因为回代求解时,只有主列对应的未知数的解有确定值。因此矩阵中的主变量(主元)为和,和为自由变量。
(1)我们假设,令,代入方程
解得
因此当时,解向量为,这只是零空间中的一个解,这个解表示倍的列倍的列,如果想找出更多零向量中的解,我们只需要求它的倍数,所以,这是一条在四维空间中无限延伸的直线,但它不是整个零空间。
(2)我们再令,代入方程
解得
因此当时,解向量为,因此另一条在四维空间中的直线为
那么还能为赋其他值吗?很明显其他情况都可以被和的线性组合所涵盖,所以这两个解向量足够代表空间的特征了,我们称这两个解向量为特解,其特殊之处在于我们给自由变量赋值为和。通过特解的任意倍的线性组合,可以构造出整个零空间。因此便得出了矩阵的零空间
算法总结
对于一个的矩阵A,若其秩为,那么意味着其主变量为个,而自由变量为个。也就是说,只有列起作用。我们需要先对矩阵进行消元,得到个主元,由于有个变量,我们再将其中的个自由变量依次赋值为。接着求解方程的特解,将特解的任意倍进行线性组合即可得到矩阵的零空间。
简化阶梯形式
尽管上面的消元法看上去已经很完美了,但事实上仍有化简的余地,最后得到的矩阵仍可以被进一步化简。我们以上文中的为例,继续化简的目标是令对角线上的主元为1,并且通过列交换将主元放在一起,把自由列放在一起来构成新的矩阵,操作如下
也就是说最终我们能将上三角矩阵化简成矩阵,矩阵的一般形式为
其中,表示主列,由于个主列的主元被化简成了,因此这部分变成了维单位矩阵,表示自由列,共有个自由列。有了矩阵我们可以改写的表达形式
这里的为零空间矩阵,即各列向量由特解组成的矩阵
需要注意的是,这里的单位矩阵和矩阵中的有所不同,这里的是维的,是将个自由变量分别赋值为或得到的。将上文中的示例代入到和,得到
由于和是主列,和是自由列,因此只需交换零空间矩阵中的第2、3行即可得到特解和。因此将矩阵化简称矩阵可以直接求解零空间。我们用下面一个例题来试验一下:
例 ,求解中构成的零空间。
(1)将消元为:
(2)将化简为:
(3)得到零空间矩阵:
(4)得到零空间:
求解Ax=b
Ax=b的可解性
对于我们知道这个方程不一定有解,在之前的章节中说明了是否有解取决于是否在的列空间中,我们再通过一个例子来说明一下
例 求方程的可解条件。
在这个方程中,观察矩阵A,发现矩阵中第三行为第一行和第二行的和。根据之前的Gauss-Jordan消元法,我们可以得到
代入方程,会发现最后一行,这一行方程必须成立,因此这一行就是方程的可解条件。同时,它还反映了向量的第三个分量是前两个分量之和,这也与矩阵的特点一致,这也印证了是否有解取决于是否在的列空间中。
结合之前的章节总结出有解条件:
- 列空间角度:当且仅当属于的列空间时成立
- 线性组合角度:当且仅当是各列的线性组合时成立
- 矩阵变换角度:如果各行线性组合后得到零行,那么取相同运算方式也必将得到
求解Ax=b
接下来介绍通解和特解,通解就是满足方程所有的解,将“无穷解”用一种形式表达出来,对于这个方程
因为矩阵零空间向量代入方程最后结果等于,所以它不会影响等式,而是把方程的解向量扩展到一个类似子空间上,使我们求出的解更具有普遍意义,而求解零空间我们在上文也已经介绍,下面我们只需要关注如何求特解即可。在之前求解方程的特解时,我们分别将自由变量赋值为或,得到
观察这个表达式会发现,只要将系数和定为就可以得到零空间中的零向量,而且我们不能在求解时将自由变元都赋为。但是在中,只要不是,我们就可以将自由变元全部赋为,使用此方法即可得到特解。
接下来补充上述例题中方程的条件
Gauss-Jordan消元后得到
将回代方程得到
解得特解为
利用上一节的知识我们很容易求出的零空间为
因此的解为
这个解集在几何角度的解释是上的一个不过原点的二维平面,显然这个解集无法构成一个向量空间,因为解集中不包含零向量。
矩阵的秩与解的关系
我们在消元求的过程中会发现,矩阵的秩对最后解的形式有着重要的影响,下面我们来总结一下其中的规律。
列满秩
对于的矩阵,列满秩时,意味着没有自由列,,此时零空间中只有零向量(不需要求零空间),的解要么有解且唯一(特解),要么无解。例如
消元,由于两列线性无关,因此只有两个主元,逐行减去第一行的若干倍,行三和行四清零,得到第二个主元,然后各行都减去第二个主元的若干倍,最终第二个主元化为的得到矩阵
行满秩
对于的矩阵,行满秩时,意味着有个主元(每一行各一个),,此时自由变元有个,必然有解而且有无穷多解,例如
最后我们会消元得到
行列满秩
对于的矩阵,行列满秩时,意味着矩阵可逆,,此时自由变元有个,经过消元,最终矩阵可化为单位矩阵,即一个全是主元的方程组,最终只能有一个唯一解。例如
最后消元得到
不满秩
对于的矩阵,不满秩时,意味着通过消元最终会得到,因此方程的解要么无解,要么无穷多解(特解+零空间所有向量)
小结
综上所述,会发现自由变量总为个,所以通过判断自由变元的个数可以初步判断的解的结构:如果没有自由变元,意味着方程的解唯一或者无解;如果存在自由变元,意味着方程的解有无穷多解或者无解。也就是说,自由变元是否存在决定了方程的解是否唯一。另一点是,可以通过观察消元后矩阵是否存在行来进一步判断方程是否有解:如果矩阵中没有零行时,意味着方程一定有解;如果存在零行,则需要考虑方程是否满足可解条件。
除此之外,我们还发现了零空间实际上就是用来判断矩阵的各列向量是否是线性无关的,如果各列向量是线性无关的,那么零空间中只有零向量,如果各列向量是线性相关的,那么零空间中除了零向量还有其他向量。因此零空间反映的就是各列向量的线性组合。
关于Ax=b的另一种解释
当我们求解方程时,例如
矩阵表达如下
除了使用消元法或判断矩阵是否满秩以外,我们还可以从列空间的角度来看这个方程,改写一些这个矩阵表达如下
那么我们判断这个方程是否有解的条件实际上就是判断向量是否在以向量和向量构成的列空间中,换句话说,向量是否可以表达成向量和向量的线性组合。由于向量和向量是线性无关的,因此可以张成一个二维平面,而向量只是其中的一个二维向量,因此可以推断出方程一定有解。