前言
线性代数虽然简单,但是只知道算数是没有意义的。掌握探索分析的能力才是学习数学的有用之处。
有的人上来抛出特征值特征向量的内容,然后开始“讲解知识”。殊不知自己让初学的学生学的晕头转向。有的老师觉得部分教材给出的引入晦涩难懂,但解决办法居然是干脆不引入了,或是随便一讲。代数学这么重要的课程讲成这个样子,真是让人呜呼哀哉。
不少书试图从比较本质的线性映射的角度讲解矩阵的相似,但由于线性代数不像高等代数课时那么多,往往会因为可是不够略去或略讲这部分知识,使得很多学生对为什么要讲相似、对角化、特征向量、特征值一无所知。
那与其将一些晦涩难懂的东西,我们不妨讲引入相似与矩阵对角化的一个“朴素目的”,日后再返回来讨论更本质的目的。
观察与思考
初学线性代数,大家都有一种很困难的感觉——矩阵乘法太麻烦了。而乘法都很麻烦,乘方可就更麻烦了。如果我们套用乘法公式去计算乘方,那可真是让人头疼。那有没有好算乘方的矩阵呢?有!那就是对角矩阵。比如:
\mathbf{D}= \left[ \begin{matrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \cdots & \lambda_n \end{matrix} \right] =\mathbf{diag}\{\lambda_1, \lambda_2, \cdots,\lambda_n\}
它的乘方就是对角矩阵对角线上元素各自乘方即可:
\mathbf{D}^m= \left[ \begin{matrix} {\lambda_1}^m & 0 & \cdots & 0 \\ 0 & {\lambda_2}^m & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \cdots & {\lambda_n}^m \end{matrix} \right] =\mathbf{diag}\{{\lambda_1}^m, {\lambda_2}^m, \cdots,{\lambda_n}^m\}
那我们想一想,怎么能将某个普通的方阵\mathbf{A}转化为一个与之对应的对角矩阵\mathbf{D}=\mathbf{diag}\{\lambda_1, \lambda_2, \cdots,\lambda_n\},从而更快地计算这个方阵的乘方呢?
这个时候我们会想要构建一种\mathbf{A}^m与\mathbf{D}^m之间的关系。我们很自然地想到,如果我们找到对角矩阵\mathbf{D}使得它与矩阵\mathbf{A}相似,那么就很自然地有了下面\mathbf{A}^m与\mathbf{D}^m的关系:
不难发现,如果存在一个可逆矩阵\mathbf{U},使得:
\mathbf{U}^{-1}\mathbf{A}\mathbf{U}=\mathbf{D}=\mathbf{diag}\{\lambda_1, \lambda_2, \cdots,\lambda_n\}
那么很容易发现:
\begin{aligned} \mathbf{D}^m={(\mathbf{U}^{-1}\mathbf{A}\mathbf{U})}^m&= (\mathbf{U}^{-1}\mathbf{A}\mathbf{U})(\mathbf{U}^{-1}\mathbf{A}\mathbf{U})\cdots(\mathbf{U}^{-1}\mathbf{A}\mathbf{U}) \\ &=\mathbf{U}^{-1}\mathbf{A}(\mathbf{U}\mathbf{U}^{-1})\mathbf{A}(\mathbf{U}\cdots \mathbf{U}^{-1}\mathbf{A})\mathbf{U} \\ &=\mathbf{U}^{-1}\mathbf{A}^{m}\mathbf{U} \end{aligned}
这样求出\mathbf{D}^m=\mathbf{diag}\{{\lambda_1}^m, {\lambda_2}^m, \cdots,{\lambda_n}^m\}之后,\mathbf{A}^m=\mathbf{U}\mathbf{D}^{m}\mathbf{U}^{-1}就是好求的了。
因此,我们可以把加速计算当作介绍矩阵相似、矩阵对角化的一个比较“朴素的目的”。
进一步推导
根据上面的式子,我们推导一下,看一看可逆矩阵\mathbf{U}到底是什么。
\begin{aligned} \mathbf{U}^{-1}\mathbf{A}\mathbf{U}&=\mathbf{D} \\ \mathbf{A}\mathbf{U}&=\mathbf{U}\mathbf{D} \end{aligned}
我们把\mathbf{U}作为列向量组展开为\mathbf{U}=\{ \boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \cdots, \boldsymbol{\alpha}_n \}。
由\mathbf{D}=\mathbf{diag}\{\lambda_1, \lambda_2, \cdots,\lambda_n\},则可以继续推导,有:
\begin{aligned} \mathbf{U}^{-1}\mathbf{A}\mathbf{U}&=\mathbf{D} \\ \mathbf{A}\mathbf{U}&=\mathbf{U}\mathbf{D} \\ \mathbf{A}\{ \boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \cdots, \boldsymbol{\alpha}_n \} &= \{ \boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \cdots, \boldsymbol{\alpha}_n \}\mathbf{D}\\ \{ \mathbf{A}\boldsymbol{\alpha}_1, \mathbf{A}\boldsymbol{\alpha}_2, \cdots, \mathbf{A}\boldsymbol{\alpha}_n \} &= \{ \lambda_1\boldsymbol{\alpha}_1, \lambda_2\boldsymbol{\alpha}_2, \cdots, \lambda_n\boldsymbol{\alpha}_n \} \\ \end{aligned}
这也就是说,我们需要找到n个线性无关的向量组,使得:
\mathbf{A}\boldsymbol{\alpha}_1=\lambda_1\boldsymbol{\alpha}_1 \\ \mathbf{A}\boldsymbol{\alpha}_2=\lambda_2\boldsymbol{\alpha}_2 \\ \vdots \\ \mathbf{A}\boldsymbol{\alpha}_n=\lambda_n\boldsymbol{\alpha}_n \\
对于任意一个组\mathbf{A}\boldsymbol{\alpha}=\lambda\boldsymbol{\alpha}。我们称\lambda是\mathbf{A}的一个特征值,称\boldsymbol{\alpha}是属于特征值\lambda的一个特征向量。
这样,我们就从加速运算的角度,看到了引入矩阵的相似、矩阵对角化、特征值与特征向量的“朴素意义”。
最后一个行间公式有笔误,全部都是lambda_1。
感谢
已经修改,感谢您的斧正!