矩阵四大子空间
把向量放进矩阵,就出来另一个向量。可是进去的输入并不都受一样的对待。有的方向好好地活着出来,有的方向整根被压成 0。所以一个矩阵把空间分成四块。输出那边是能够到达的全部结果,也就是列空间,输入那边是死成 0 的方向,也就是零空间。把活下来的方向数,也就是秩,加上死去的方向数,也就是零化度,总是输入的维数。这一张图就把 A x = b 为什么可以没有解、恰好一个解、或者无穷多个解全部解开。这是逆矩阵单独看不见的结构。
拖动输入向量来看。这个矩阵是两列指向同一方向的扁矩阵,所以 det=0,绿色的列和橙色的列叠在一起。无论拖到哪里,输出 A x 只落在金色直线上。蓝色输入折到那条直线上。那条直线就是列空间。A x 终究是第一列的若干倍加上第二列的若干倍,也就是两列的组合,两列平行,组合能做出的就只有那个平行方向的直线。输出绝不能离开那条线。能够到达的全部结果被关在这条 1 维直线上。这就是像 (image),也就是列空间。
在同一个扁矩阵上,这次看输入那边。另有死成 0 的输入。拖动蓝色输入,放到蓝色直线上时,输出 A x 恰好贴在原点。那条直线是零空间,列空间仍是金色虚线。沿那个方向进来的输入整根被压成 0,不留痕迹。只要稍微离开那条直线,输出马上跳上列空间。不是一个点,整条直线都去 0。所以 A x = 0 的解不是单独一个 x = 0,而是无穷多个。这个不是 0 的零空间,就是解为什么可以有很多个的钥匙。
现在用滑块把矩阵从活着的状态压成扁的状态。滑块放在一头,矩阵是完整的秩 2。单位正方形变成金色平行四边形,绿色的列和橙色的列指向不同方向。去 0 的输入只有 x = 0 一个,所以零化度是 0。把滑块转过去,让一列倒向另一列,两列变平行,det 走向 0,平行四边形压成一条线段。那一瞬间秩是 1,零化度是 1。因为整条直线都去 0。无论哪一边,秩加零化度总是 2。输入维数正好分成两份。活下来的维数秩是绿色的数,死去的维数零化度是蓝色的数,它们的和是金色,总等于进来的维数。这就是秩-零化度定理。
再看输入平面。不只是零空间,行空间也在输入这边。行空间是矩阵两行展开的方向,扁矩阵里它也是一条直线。打开两条直线,金色行空间和蓝色零空间恰好以 90 度相遇。两者是直角互补的一对。按下分解按钮,一个输入分成两块。A x 的每个分量是一行和输入的点积,输入若在零空间里,那个点积是 0,意思是这个输入垂直于每一行。所以每个输入向量都分成两块。行空间分量在输出里活下来,零空间分量消失成 0。保住的一半和杀死的一半以直角分开。
现在用四个子空间的图来解 A x = b。用滑块移动目标,答案就显出来。目标不在金色列空间直线上,就没有输入能到达那个目标,所以解是 0 个。把目标抬到列空间上,解忽然出现,而且不是一个。一个特解加上整个零空间,也就是沿蓝色虚线画的零空间方向平移的整条直线都是解,所以有无穷多个。特解是到达目标的一个输入,再怎么加上死成 0 的方向,输出都不变。假如零空间只有 0,完整秩的矩阵,解就恰好一个,那就是逆矩阵给出的答案。0 个、1 个和无穷个,这三支都直接从四个子空间的形状里出来。