Linear Algebra-求解 Ax=0,主变量,特解-07

概要

上一节我们讨论了列空间和零空间的相关概念,理解了零空间就是满足 $Ax=0$ 的所有解 $x$ 构成的空间。那么这一节,我们就从定义过渡到实际计算,学习如何系统地求出零空间的一般形式。

本文将给出一套完整的算法,让我们能够一步步解出 $Ax=0$ 的零空间。

消元法求解零空间

还记得我们之前用消元法解方程组 $Ax=b$ 吗?当时有一种情况我们没能完全处理,那就是矩阵 $A$ 不可逆的情况。那时候我们说这种情况”解不唯一”,现在有了零空间的概念,我们就能更清楚地理解为什么解不唯一了——零空间本身就是一个空间,包含无穷多个解。

让我们从最简单的零空间(也就是 $b=0$ 的情况)的计算谈起。

消元法确定主变量与自由变量

我们通过一个具体例子来理解整个过程:

【例】设 ,求由 $Ax=0$ 中的 $x$ 构成的零空间。

$Ax=0$ 其实就是一个齐次线性方程组,写成矩阵乘法形式就是:

我们还是用之前学过的消元法来处理矩阵 $A$:

首先我们看到,矩阵 $A$ 消元之后只有两个主元:第一个主元是 $1$,第二个主元是 $2$,第三行全为 $0$,没有主元了。主元的个数就是矩阵的秩,所以这里 $A$ 的秩为 $2$。

接下来本该进行回代求解,但在这之前我们需要先明确几个概念。因为消元得到的 $U$ 不是严格的上三角矩阵,这意味着方程的解不唯一,有些变量我们可以自由取值。

Linear_Algebra70

在这个例子中,主元所在的列是第 $1$ 列和第 $3$ 列,对应的变量 $x_1$ 和 $x_3$ 就是主变量;而第 $2$ 列和第 $4$ 列没有主元,对应的变量 $x_2$ 和 $x_4$ 就是自由变量。这意味着我们可以自由给 $x_2$ 和 $x_4$ 赋值,然后反解出 $x_1$ 和 $x_3$。

对自由变量赋值构造零空间:特解

既然自由变量可以任意取值,那我们怎么表示所有可能的解呢?思路很清晰:我们给每个自由变量轮流赋值为 $1$,其他自由变量赋值为 $0$,分别求解,得到的每个解就是特解。然后,所有特解的线性组合就能覆盖整个零空间。

让我们动手算一下:

  1. 首先给自由变量 赋值为

回代入方程组 $Ux=0$:

时,从第二个方程得 $2x_3=0 \Rightarrow x_3=0$,再代入第一个方程得 $x_1 + 2 \cdot 1 + 0 + 0 = 0 \Rightarrow x_1 = -2$,所以解向量为:

  1. 再给自由变量 赋值为

再次回代入方程组,从第二个方程得 $2x_3 + 4 \cdot 1 = 0 \Rightarrow x_3 = -2$,代入第一个方程得 $x_1 + 0 + 2 \cdot (-2) + 2 \cdot 1 = 0 \Rightarrow x_1 = 2$,此时的解向量为

还有别的给 赋值的方法吗?很明显,其余的赋值方法都可以被的线性组合所覆盖,所以这两个解向量足够代表零空间的特征了,我们称这两个解向量为:特解。它们的特殊之处就在于我们给自由变量赋值为标准单位向量。

通过特解的任意线性组合可以构造出整个零空间

即$Ax=0$的所有解,或者说$Ax=0$中的 $x$ 构成的零空间为:

其中 $c$ 和 $d$ 是任意常数。

算法总结

我们把这套算法推广到一般情况:

对于一个$m\times n$的矩阵 $A$,若其秩为 $r$,那么就意味着其主变量为 $r$ 个,而自由变量为 $n-r$ 个。也就是只有 $r$ 个方程真正起作用,而一共有 $n$ 个变量 $x$,我们将其中的 $n-r$ 个自由变量依次赋值为:。接下来解方程求出每个特解,将所有特解进行线性组合就得到了整个零空间。

整个求解过程可以用流程图表示:

简化行阶梯形式

上面的消元法得到阶梯形 $U$ 后就开始回代求解,看上去已经很完整了,但实际上最后一步解方程还有进一步化简的空间。得到的 $U$ 矩阵还可以继续化简成简化行阶梯形式,让求解变得更加简单直接。

让我们拿上面例子中的 $U$ 矩阵 为例,看看如何继续化简:

  • 首先向上消元,使主元列除主元之外都是 0
  • 归一化,使主元均为 1
  • 如果需要,可以通过列交换,使左上角变为单位阵 $I$:

在矩阵中,主元行和主元列的交汇处会形成一个单位阵。通过列交换,可以将矩阵 $R$ 中的主元列集中在左侧,从而在左上角形成这个单位阵,而将自由列集中在矩阵的右侧。如果矩阵 $A$ 中的某些行是线性相关的,则在矩阵 $R$ 的下半部分就会出现一些完全为 $0$ 的行向量。

Linear_Algebra71

这里的$I$是一个$r\times r$的方阵,$F$ 即自由列消元后组成的部分。

原方程$Ax=0$变为求解 $R$ 的主元行乘以 $x$:

我们将$Ax=0$的特解作为列向量写成矩阵$N$,也就是零空间矩阵。这里 $I$ 为一个$(n-r)\times (n-r)$的单位矩阵,就是对 $n-r$ 个自由变量分别赋值 $1$ 所构造出来的,零空间矩阵满足 $RN=0$,其中 $0$ 是一个$m\times (n-r)$的零矩阵。从矩阵分块乘法运算可知:

所以零空间矩阵的最终形式为:

这个结论非常漂亮!对于简化行阶梯矩阵 $R$,求零空间的特解变得非常简单,只需要将消元得到的 $F$ 部分取负后拼上单位矩阵,就可以直接得到所有特解。

需要注意的是:如果在变换出 $R$ 左上角单位矩阵的过程中使用了列交换,则在最后的解中也要对应交换行的顺序才能得到正确结果。