向量空间,零空间,矩阵的秩与求解Ax=0

时间:2024-10-13 07:05:00

最近要学的东西挺多的,像什么Linux,C++之类的。因此线代学习进度就变慢了,线代相关文章更新也会变慢,见谅。


今天所讲核心内容是如何求解 A x = 0 Ax=0 Ax=0这个方程。请记住,后面大部分内容都是这个方程的解法,如果把下面的算法看成其他东西,你很可能会觉得云里雾里,难以理解。

那么,我们进入正题。

向量空间

向量空间被定义为一个集合,其中的元素是一个个向量,而这些向量满足的条件是,任意两个向量之和,或者任意向量的m倍任然在这个集合中。

比如, R 3 R^3 R3就是三维向量空间。

同样的,在 R 3 R^3 R3中过原点的直线 l 1 l_1 l1满足满足上述条件,因此我们说 l 1 l_1 l1也是向量空间。相对比,不过原点的直线就不满足任意向量的0倍——即原点不在直线上,不为向量空间。

通过上述例子,我们还能发现,向量空间一定包含原点,因为任意向量的0倍是原点。


零空间

结合上文所说的向量空间概念,你应该就能很快明白零空间是什么。

A x = 0 Ax=0 Ax=0

简言之,零空间是上述所有 x x x的解组成的向量空间,或者说是线性组合。我们求 A x = 0 Ax=0 Ax=0的所有解,换言之,即求A的零空间。


求解 A x = 0 Ax=0 Ax=0

A A A为如下矩阵:

[ 1 2 2 2 2 4 6 8 3 6 8 10 ] \left[ \begin{matrix} 1 & 2 & 2 &2\\ 2 & 4 & 6&8\\ 3 & 6& 8 &10 \end{matrix} \right] 1232462682810

解有关矩阵的方程,我们能想到的第一个方法是消元。这里也是如此,我们先进行消元操作再进一步观察:

A A A进行消元操作,得到如下矩阵 U U U(这个就不算上三角矩阵了吧,这里 U U U指上阶梯矩阵):

[ 1 2 2 2 0 0 2 4 0 0 0 0 ] \left[ \begin{matrix} 1 & 2 & 2 & 2\\ 0 & 0 & 2 & 4\\ 0 & 0 & 0 &0 \end{matrix} \right] 100200220240

首先明确,对 A A A消元操作并不影响 x x x的值。 E A x = E × 0 ⇒ U x = 0 EAx=E\times0 \Rightarrow Ux=0 EAx=E×0Ux=0

观察矩阵,今天的例子与以前不同,消元后得到很多零,后面你自会明白其用意。第三行为零的原因也很清晰,第一行与第二行之和即为第三行,对矩阵没有贡献。

理论上说我们应在消元时确定主元,但这里因为篇幅原因,省略了消元的具体过程,我们就直接指出主元。

在这个矩阵中,主元是1( U 1 , 1 U_{1,1} U1,1)和2( U 2 , 3 U_{2,3} U2,3)。说实话,我当时学矩阵消元时也不知道为什么会一直强调主元这个概念,而接下来的内容,便会略微窥见主元的重要性。

这个矩阵的主元数是2,而主元的个数有另一个名字——,(文言文中有官阶,等级的意思),英文名更直接,称为rank,简称 r r r


接下来的操作便是今天解法的核心:

我们对阶梯矩阵进一步操作,消掉主元上下所有的元素,使主元上下的元素全为0.

对于示例 U U U,具体做法是行一减去1倍行二,得到如下矩阵:

[ 1 2 0 − 2 0 0 2 4 0 0 0 0 ] \left[ \begin{matrix} 1 & 2 & 0 & -2\\ 0 & 0 & 2 & 4\\ 0 & 0 & 0 &0 \end{matrix} \right] 100200020240

这样的矩阵称为简化阶梯矩阵。继续化简,将所有主元变为1,便得到最简阶梯矩阵(reduecd row echelon form matrix),如下:

[ 1 2 0 − 2 0 0 1 2 0 0 0 0 ] \left[ \begin{matrix} 1 & 2 & 0 & -2\\ 0 & 0 & 1 & 2\\ 0 & 0 & 0 &0 \end{matrix} \right] 100200010220

此时,我们称含主元的列为主元列,其余列为*列。


再我们继续往下操作前,先来整理一下前面的信息,方便你理解接下来的内容(我看了4遍b站上MIT线代的视频才懂)。

我们要解 A x = 0 Ax=0 Ax=0,再进行消元后能够发现 x x x并非为定值,因为矩阵有4列,却只有两个主元,而这就产生了解的不确定性。矩阵有 n n n维,其秩为 r r r,那么我们定义剩下 n − r n-r nr个无主元的列为*列,用以描述解的不确定性

对应到我们的矩阵 A A A上,有 4 − 2 = 2 4-2=2 42=2个*列。而这意味着,我们只需要 2 2 2个线性不相关的两个解,这两个特殊解的线性组合便能够描述零空间

如研究LU分解时,有3个主元的三元方程组B,那么 B x = 0 Bx=0 Bx=0的解没有不确定性,不需要找到特殊解,因为只有一个解,其零空间也就是一个向量。如果是两个主元意味着有一个*列,我们需要找到一个特殊解 x x x来描述零空间,即零空间为 c x , c 取任意实数 cx,c取任意实数 cxc取任意实数


总而言之,只要我们找到 n − r n-r nr个线性不相关(不平行,不重合)的特殊解,就能表示出零空间,也就达成我们的目的了。下面,便给出解法。

为方便观察,我们对列进行置换操作(相当于乘置换矩阵,不影响 x x x),将主元列放到一起,*列放到一起:

[ 1 0 2 − 2 0 1 0 2 0 0 0 0 ] \left[ \begin{matrix} 1 & 0 & 2 & -2\\ 0 & 1 & 0 & 2\\ 0 & 0 & 0 &0 \end{matrix} \right] 100010200220

根据我们将主元上下的元素消为0这一过程,并抛掉最后一行对矩阵无贡献的0,可将矩阵简化成如下形式:

[ I F ] \left[ \begin{matrix} I & F \end{matrix} \right] [IF]

分块为单位矩阵 I I I和*列 F F F,即得 [ I F ] × x = 0 \left[ \begin{matrix} I & F \end{matrix} \right]\times x=0 [IF]×x=0

I I I矩阵的大小是 r × r r \times r r×r F F F矩阵的大小是 r × ( n − r ) , n 为列数 r \times (n-r),n为列数 r×(nr)n