MENU

【Rethink Math】矩阵论的几何理解:矩阵的相似变换

2026 年 06 月 19 日 • 文章

推荐到知乎阅读此文。

到这里我们就正式进入矩阵论的环节了,笔者参考的教材是《矩阵论简明教程(第三版)》。这一部分没有很好的参考资料,几何理解基本上都是笔者自己想的,如果有误,欢迎在评论区指出,我们一起学习,共同进步。

相似矩阵

Takeaway:

相似矩阵描述了同一个线性变换在不同基下的表示。

我们之前的视角是,把一个标准基下的向量$\vec{a}$通过变换$A$,变成一个新的向量$\vec{b}$。那么同样的变换$A$,用另外一组基来描述,是什么样子呢?也就是说,我们有一组标准基下的变换方式,要通过某种方法,求它在另一组基下的矩阵表示。

举个例子,比如标准基下顺时针旋转90°的变换,用矩阵描述就是$A=\begin{bmatrix}0 & 1\\ -1 &0\end{bmatrix}$,那么标准基下的向量(1,1),经过变换,就变成了标准基下的(1,-1)——这是我们之前就讨论过的内容,那么假设同样的一个向量,但是选的基不同,其坐标也会改变,比如选取基(1,0)(1,1),那么这个向量的坐标就变成了(0,1),那么最终的变换结果,就应该是(2,-1),很显然,我们之前的$A$没法在这组基上表示同样的变换,那么我们该怎么求?

我们可以这样,我们首先把标准基下的坐标变到另一组基上,那么这一步变换就相当于做了一次线性变换:

$$ Px=y $$

这里$P$是线性变换,用来把标准基下的坐标转化为另一组基下的坐标,$x$是标准基下的坐标,$y$是另一组基下的坐标,这两个坐标实际上是描述了同一个向量。假设我们已知了另一组基下的相同线性变换的表示方法,记作$B$,那么在另一组基下,这个向量经过变换就变成了$By$,那么我们最后要求的是这个向量在标准基下的坐标,所以需要把基再变回来,就得到了$P^{-1}By$,那么又因为$Px=y$,所以这个向量最终变为了标准基下的$P^{-1}BPx$向量,这个变换和标准基下的$A$变换实际执行了同一个效果,那么我们就称$A$和$B$相似,也就是:

$$ Ax=P^{-1}BPx $$

相似对角化

Takeaway:

相似对角化也就是把一个矩阵所代表的线性变换,表达为另一组基下的缩放变换。

相似对角化要求一个矩阵的线性无关的特征向量的数目,和阶数相等。

相似对角化的对角矩阵为特征值组成,两个矩阵分别由特征向量变换得来。

在讲相似对角化之前,我们先想想对角矩阵做了一件什么事情。我们依旧从标准坐标系xOy入手,这个坐标系下最常用的一组基是(1,0)(0,1),那么对角矩阵$\begin{bmatrix}a & 0 \\ 0 & b\end{bmatrix}$,就相当于把每个向量,x轴的分量,拉伸为原来的$a$倍,y轴方向拉伸为原来的$b$倍。这种变化改变了向量的方向,但也只是把向量的不同方向的长度进行缩放了,这样我们就可以一定程度上简化运算。

在相似对角化之前,我们还需要在脑子里装上这样一件事——如果一个变换可以看作在另外一组基下的缩放,那么这个变换满足什么条件?这个条件也就是相似对角化的条件。

那么,对于一个矩阵,我们可不可以在另一组基下,进行缩放,再变换回来呢?进行这样一件事,就是对一个矩阵进行相似对角化,即:

$$ A = P^{-1}\text{diag}(\cdots)P $$

现在问题就来了,我们的这组基该怎么找?如果找到了这组基,每个基方向上的缩放倍数又该如何确定?一个很显然的想法是,我们可以利用特征值和特征向量来完成这件事!因为特征向量是线性变换前后,不变的那些方向,而特征值恰好是缩放的倍数!

好的,回到我们之前的问题,特征值和特征向量,满足什么条件,才可以相似对角化?一个很直觉的想法就是——线性无关的特征向量应该足够多,更准确地说,如果$A$是一个$n$阶矩阵,那么我们需要找到$n$个线性无关的特征向量。只有这样,这些特征向量才能组成整个$n$维空间的一组基。如果特征向量不够多,就说明我们找不到一整套坐标轴,使得每条坐标轴在变换之后仍然落在自己原来的方向上。此时这个变换就不能完全解释成“沿若干个方向分别缩放”。比如二维空间,如果只有一个线性无关的特征向量,那么这就说明,只有落在那个特征方向上的向量,才会被单纯缩放;其他方向上的向量会被拖拽、剪切或被进行一些其它的变换,不能作为独立缩放方向。

到这里我们也很容易看出一个推论——如果一个矩阵有$n$个互不相同的特征值,那么它一定能相似对角化。这是因为,特征值代表某个方向上的缩放倍数,那么缩放倍数不同,那么方向也一定不同,那么这些特征向量一定是线性无关的。

到这里,我们也可以得出相似对角化的计算方法,首先计算出特征向量,然后把特征向量看作新的一组基,然后在这组基上,把每个特征向量对应的特征值当作对角元素构建对角矩阵,这就确定了不同方向上缩放的倍数,最后再把坐标变回标准基下的坐标,就完成了计算。

Jordan相似对角化、几何重数与代数重数

Takeaway:

Jordan块用于对付特征向量不足的情况,它相当于在特征方向上缩放+特征方向附近方向的滑动。

Jordan基的选择就是,每一个方向的变化只产生前一个方向的额外分量。

几何重数表示该特征值下实际有多少个独立方向可以看作缩放。

代数重数表示该特征值理应控制多少个独立方向的缩放。

在上一节中,我们说到,如果线性无关的特征向量足够多,那么我们可以把一个矩阵代表的变换看作这些特征向量锁代表的方向上的缩放。那么如果特征向量不够,就没办法进行相似对角化了。但是,缩放操作是极其便利的,那么没法相似对角化,我们可不可以做一些妥协?对相似对角化进行一些改变?能不能达到类似的目标?

为了解答这个问题,我们还得重新回看相似对角化做了什么。相似对角化就是把变换拆成了不同方向上的缩放,那么没法相似对角化,就表明在某些方向上,除了缩放,还有其它的变换。我们依旧考虑二维变换的情形,依旧考虑标准基的情形,如果x轴方向能看作缩放,但是y轴无法看作单纯的缩放,这说明什么?这说明y轴方向的变化,引入了x轴的分量,也就是说:

$$ A = P^{-1}\text{diag}(\lambda,\lambda)P + c\begin{bmatrix}0 & 1\\ 0 & 0\end{bmatrix} $$

细心的读者会发现,这里的对角矩阵对角线元素相等,那这是因为,如果对角线元素不相等,就表明特征值不相等,不同特征值对应的特征向量一定线性无关。特征值相等的

那么我们可以把y轴方向的变换,引入x轴的分量,看作这样一种近似的相似对角化:

$$ \begin{bmatrix}\lambda & 0 \\ 0 & \lambda\end{bmatrix}\to \begin{bmatrix}\lambda & c \\ 0 & \lambda\end{bmatrix} $$

为了方便计算,我们只在x轴引入单位为1的分量,也就是$\begin{bmatrix}\lambda & 1 \\ 0 & \lambda\end{bmatrix}$。So far so good,那么三维的情况呢?如果我们只可以把线性变换看作x轴上的缩放,y和z轴都不可以,那么我们可以构造这样一个矩阵:

$$ \begin{bmatrix} \lambda & 1 & 0\\ 0 & \lambda & 1\\ 0 & 0 & \lambda \end{bmatrix} $$

这样,每一个轴都在前一个轴的方向上加上一个分量,这样就把一个独立的方向(x轴)和两个不独立的轴(y与z轴)关联起来了。这样,对角线下元素全为0,对角线上一层斜线为1的块,就叫做Jordan块,记作$J$。那么我们的相似对角化,就变成了一种广义的对角化,这种对角化就叫做Jordan相似对角化

$$ A = P^{-1}JP $$

到这里,整个故事还没结束,细心的读者可能已经发现整个故事有一个问题——嘿!对于三维的例子,你凭什么假设z轴的变换只产生y轴的分量?如果这个变换也产生x轴的分量,那么第三列第一行不应该也是1???没错,这就要引入Jordan相似对角化的计算方法了——的确,某一方向的变换可能产生多个方向上的分量,但是我们可以选择一组基,让每一个方向的变化,只落在前一个维度的方向上,因为在这里,$P$矩阵的构造是很有趣的。

首先假设我们有了一个$n$阶Jordan块,那么我们的基要满足什么样的条件——对于每一个基,向量在上面的变换,都可以看作该方向上的缩放和在前一个方向的平移分量,假设这组基为$v_1,v_2,\cdots,v_n$,那么线性变换所代表的Jordan块是$J$,那么这个矩阵的每一列,都代表$A$作用在对应基向量上的结果,那么它表达了这样一个关系:

$$ Av_1=\lambda v_1\\ Av_2=\lambda v_2+v_1\\ \cdots $$

这组向量就是我们要求的$P$阵的来源,我们需要找到这样一组基,使得每一个方向的变化,只与前一个方向有关。这里,$v_1$是真正的特征向量,而其它的向量则不是普通特征向量,它们叫做广义特征向量。它们的特点是:虽然自己不是单纯被$A$缩放,但是在减掉纯缩放部分之后,会逐级滑向前一个向量。这个向量组的求法,就可以根据Jordan对角化的定义,解线性方程组即可。

最后,我们还有一个问题没有解决,就是对于一个矩阵,其Jordan块的组合该怎么确定,比如一个三阶矩阵,有一个特征值,那么我是选择一阶+二阶呢,还是选择三阶呢?我们知道,Jordan块是对于相同特征值的处理方法。一个特征值理应控制的维度数就是其代数重数,如果代数重数为3,就表示理应控制3个维度的缩放,这个时候如果几何重数为1,就表明我们实际只有一个方向上的缩放,那么这个时候,我们就能推导出:理应控制的额外两个维度,实际上是和求出来的单个特征向量有关联的,所以这个时候块数为1,并且我们要补充两个广义特征向量。

举个例子,如果四阶矩阵有两个特征值,代数重数分别是1和3,几何重数分别是1,那就是一个一阶Jordan块和一个三阶Jordan块的拼接;如果代数重数是2和2,几何重数分别是1,那就是两个二阶Jordan块的拼接。

也就是说,代数重数是指一个特征值理应控制多少个维度的缩放,几何重数表示实际有多少个独立维度的缩放,二者之差就是我们要补足的广义特征向量数。多说一嘴,我们知道几何重数是$A-\lambda I$的零空间的维数,也就是变化之后,哪些方向被压到零向量了,这些向量就是实际有的,独立维度的缩放。对于代数重数的理解,我更倾向于用行列式的几何意义来理解,我们知道行列式是衡量线性变换前后,有向面积/体积/Whatever you call it积的变化倍数,那么一个特征值的次数就表示它控制着多少个维度对于最终变化的贡献,也就是理应控制多少个维度的缩放。

总结

实际上这本书里还有一个哈密顿-凯莱定理的内容,不过笔者觉得这部分的几何意义,如果明白了特征值和特征向量的含义,就很容易自行理解了。(其实是太懒了,赫赫