线性代数05:转置矩阵与向量空间

经过前面四篇文章的学习,我们已经掌握了矩阵消元、矩阵乘法、逆矩阵和LU分解。今天我们要进入线性代数一个更抽象但也更重要的主题——向量空间。在开始之前,我们先把之前提到的置换矩阵和转置矩阵做一个完整的总结,然后引出对称矩阵,最后正式进入向量空间的世界。

向量空间是线性代数的”灵魂”所在。前面我们学习的都是具体的计算,从这篇文章开始,我们要开始建立”空间”的概念——这是理解线性代数几何意义的关键一步。

知识概要

本文会涵盖以下内容:

  • 置换矩阵的回顾和性质总结
  • 转置矩阵的定义和对称矩阵的性质
  • 向量空间的定义和核心要求:对线性运算封闭
  • 子空间的概念和判断方法
  • 由矩阵构造出的第一个子空间:列空间

置换矩阵回顾

我们在上一篇文章介绍LU分解时已经提到了置换矩阵,这里我们再做一个完整的总结。

什么是置换矩阵

置换矩阵P就是完成行交换操作的矩阵。更具体地说,它是由单位矩阵I重新排列行顺序得到的矩阵。左乘一个置换矩阵P的效果就是对原矩阵按照P的行顺序进行交换。

举个最简单的例子,单位矩阵I本身就是一个置换矩阵,只不过它不改变任何行顺序。对于一个$n$阶单位矩阵,我们对它的行做任意重新排列,得到的都是置换矩阵。那么:

结论:$n$阶矩阵共有 $\boxed{n!}$ 个不同的置换矩阵。

置换矩阵最重要的一个性质是:

也就是置换矩阵的逆等于它的转置。这个性质其实很好理解:

因为置换矩阵$P$的每一列中只有一个元素是1,其余都是0。我们来看$P^T P$的乘积结果:对角线上的元素都是对应行(列)的内积,也就是1;而非对角线上的元素都是不同行(列)的内积,必然是0。所以$P^T P = I$,根据逆矩阵的定义,$P^{-1} = P^T$。

换句话说,所有置换矩阵都是正交矩阵。这个性质在数值计算中非常有用,求逆只需要转置一下就好了,不需要任何计算。

置换矩阵的应用

在高斯消元过程中,如果主元位置是0,我们就需要交换两行来选主元,这个行交换就是由置换矩阵来完成的。因此,完整的LU分解必须把行交换考虑进去,形式就是:

先用置换矩阵$P$做行交换,使得所有主元位置都不为0,然后再进行LU分解。这就是数值计算中实际使用的带主元LU分解。


转置矩阵与对称矩阵

转置矩阵回顾

我们之前已经接触过转置矩阵。转置矩阵就是将原矩阵的行和列互换得到的新矩阵,记为$A^T$。举个例子:

用元素位置来表示就是:

简单来说,原来的第$i$行第$j$列元素,转置后就跑到第$j$行第$i$列去了。这个概念理解起来不难。

对称矩阵

什么是对称矩阵呢?顾名思义,如果矩阵$A$满足$A = A^T$,那么$A$就是对称矩阵。也就是说,主对角线两侧的元素对应相等。比如:

这就是一个典型的对称矩阵。

那么我们怎么得到对称矩阵呢?其实很简单:任何矩阵$A$,$A^T A$一定是对称矩阵。我们来证明一下:

从对称矩阵的定义出发,我们只需要验证$(A^T A)^T = A^T A$:

利用了转置的运算法则$(AB)^T = B^T A^T$以及$(A^T)^T = A$。完美!所以不管$A$是不是方阵,只要做$A^T A$的乘积,得到的结果一定是对称矩阵。这个构造方法在实际应用中非常常见,比如最小二乘法中就会经常遇到。


向量空间

现在我们进入本篇文章最重要的主题——向量空间。这是线性代数中一个核心概念,理解了它,你才能真正说入门了线性代数。

向量空间的定义

首先要明确:向量空间不是随便一堆向量放在一起就能叫向量空间的。它必须满足一个核心条件:

核心条件:向量空间对线性运算(加法和数乘)封闭。也就是说,对于空间中任意两个向量$v$和$w$:

  • $v + w$ 仍然在这个空间中
  • $cv$($c$是任意标量)仍然在这个空间中

只有满足这个条件,才能被称为向量空间。

我们来看几个最常见的例子:

例子1:$\mathbb{R}^2$ 空间

$\mathbb{R}^2$包含了所有二维实向量,比如:

这些都在$\mathbb{R}^2$中。对任意两个向量做加法或者数乘,得到的结果仍然是二维实向量,所以仍然在$\mathbb{R}^2$中。几何上,$\mathbb{R}^2$就是整个xoy平面。

特别重要的一点:零向量一定在任何向量空间中。因为任何向量乘以0就是零向量,根据封闭性,零向量必须存在。这是一个非常重要的判断依据。

例子2:$\mathbb{R}^n$ 空间

推广一下,$\mathbb{R}^n$包含了所有$n$维实向量,每个分量都是实数,显然满足封闭性,所以是一个向量空间。这是我们最常遇到的向量空间。

我们再来看一个不是向量空间的反例:

反例:$\mathbb{R}^2$中的第一象限

在$\mathbb{R}^2$中,我们只取第一象限的所有向量,也就是两个分量都大于等于0的向量。这个集合是不是向量空间呢?

答案是不是。因为虽然任意两个向量相加仍然在第一象限,但数乘不封闭:取一个负的系数,比如$c=-1$,结果就跑到第三象限去了,脱离了我们定义的集合。所以它不是向量空间。

再想一个问题:如果去掉原点,整个$\mathbb{R}^2$去掉$(0,0)$,还是不是向量空间?也不是,因为零向量不在里面了,而零向量必须存在。


子空间

向量空间本身对线性运算封闭,但如果我们取它的一部分,这一部分能不能仍然构成向量空间呢?答案是可能的,这样的部分就叫做子空间

子空间的定义

子空间就是向量空间中的一个子集,它本身对加法和数乘运算封闭,所以它自己也是一个向量空间。

我们还是以$\mathbb{R}^2$为例:$\mathbb{R}^2$本身就是自己的一个子空间。除此之外:

  • 穿过原点的直线:直线上任意两个向量相加仍然在直线上,数乘也仍然在直线上,所以它是$\mathbb{R}^2$的一个子空间。但如果直线不穿过原点,那就不是子空间,因为零向量不在里面。
  • 只有零向量:${0}$这个集合,只有一个零向量。它也满足封闭性,所以它也是$\mathbb{R}^2$的一个子空间。

所以$\mathbb{R}^2$的子空间一共有三类:

  1. $\mathbb{R}^2$本身
  2. 穿过原点的直线
  3. 只有零向量

推广到$\mathbb{R}^3$,它的子空间有四类:

  1. $\mathbb{R}^3$本身
  2. 穿过原点的平面
  3. 穿过原点的直线
  4. 只有零向量

这个规律很清晰吧!维度越低,越靠近原点。

💡 关键判断:判断一个子集是不是子空间,就看两条:

  1. 是否包含零向量
  2. 对加法和数乘是否封闭

只要这两条满足,它就是子空间。

列空间:矩阵构造的子空间

上面我们都是从几何直观来找子空间,现在我们来看一种非常重要的构造子空间的方法——通过矩阵构造列空间

假设我们有一个矩阵:

$A$有两列,这两列都是$\mathbb{R}^3$中的三维向量:$\begin{bmatrix}1\2\4\end{bmatrix}$和$\begin{bmatrix}3\3\1\end{bmatrix}$。现在我们考虑这两个向量的所有线性组合

其中$c_1$和$c_2$是任意实数。这个所有线性组合构成的集合,就是矩阵$A$的列空间,记为$C(A)$。

列空间$C(A)$是不是$\mathbb{R}^3$的子空间呢?是的!因为:

  • 零向量在里面($c_1=c_2=0$)
  • 任意两个线性组合相加还是线性组合,数乘之后也还是线性组合,满足封闭性

所以$C(A)$确实是$\mathbb{R}^3$的一个子空间。在这个例子中,由于两个列向量不共线,它们张成的列空间几何上就是$\mathbb{R}^3$中穿过原点且包含这两个向量的一个平面

如果两个列向量共线,那么列空间就是一条穿过原点的直线。不管维度有多高,这个思想都是一样的:

列空间的本质:矩阵A的列空间C(A)就是A的所有列向量的线性组合构成的空间。它是$\mathbb{R}^m$的一个子空间,其中m是矩阵A的行数。

列空间为什么这么重要呢?因为我们求解线性方程组$Ax = b$,这个方程组有解的充要条件就是:b在A的列空间C(A)中。这个等价关系太重要了,我们后面还会深入讨论。

用Gilbert Strang教授的话说:三维空间我们还可以画图,那十维空间中五个向量张成的列空间呢?你看不见摸不着,但可以理解为它就是十维空间中的一个”五维平面”——这种抽象能力就是学习线性代数需要培养的。


笔者感悟

作为一名IC设计工程师,我发现向量空间的概念在工程中无处不在,只是我们平时可能没有意识到:

  • 信号处理:一个有限长度的离散信号本身就是$\mathbb{R}^n$中的一个向量,所有可能的信号构成了一个$n$维向量空间,滤波操作就是线性变换。
  • 电路分析:线性电路中,所有可能的节点电压向量构成一个向量空间,叠加定理其实就是在说线性组合仍然在空间中,这正是封闭性的体现。
  • 机器学习:机器学习中我们把每个样本看作高维空间中的一个向量,整个数据集就在特征空间中,降维、分类都离不开向量空间的概念。AI芯片做的就是在向量空间中做大量的线性运算。
  • 图像处理:一张灰度图像可以看作一个矩阵,也可以拉直成一个非常高维的向量,所有图像就在这个高维向量空间中。

有意思的是,工程中我们遇到的问题往往不是整个$\mathbb{R}^n$,而是某个子空间。比如图像的低秩近似,就是说图像实际上位于一个低维子空间中,我们只需要保留这个子空间就够了。这就是压缩感知的思想基础。

从计算到空间,这是认识上的一次飞跃。刚开始可能会觉得抽象,但一旦你理解了”空间”的观点,看线性代数的眼光就完全不一样了。后面我们还会逐步引入零空间、行空间、左零空间,这些都是矩阵的四个基本子空间,理解了它们,你就理解了线性代数的大半壁江山。


总结

本文要点回顾:

概念 核心结论
置换矩阵 由单位矩阵重新排列行得到,满足 $P^{-1} = P^T$,共$n!$个
转置矩阵 $(A^T){ij} = A{ji}$,行列互换
对称矩阵 满足 $A = A^T$,$A^T A$一定是对称矩阵
向量空间 对加法和数乘封闭,必须包含零向量
$\mathbb{R}^n$ 所有$n$维实向量构成的向量空间
子空间 向量空间的子集,自身对线性运算封闭,必须包含零向量
列空间C(A) A的所有列向量的线性组合构成的子空间,$Ax=b$有解 ⇨ $b \in C(A)$

最后放一张学习笔记留作纪念:

linear_algebra_transpose_vectorspace