首先推荐一本线性代数的教材,《线性代数应该这样学》,这本书相较于大部分“从行列式入手”的教材,它选择的是从线性空间的认知开始,逐步地去认识矩阵和行列式。虽然采取的是一种相反的方向,但个人觉得,学完这本书,对一些概念和定义会有自己的理解。
直接转入正题,矩阵的作用,可以将其视为一个转换,这个转换有两个作用:1.旋转,2.伸长或者缩短。
在一个n维线性空间中,一个n阶矩阵的作用可以视作:将一个向量变成另一个向量,通过旋转和伸缩即可完成这个过程。
而一个n维的线性空间的衡量,首先需要一个基,这个基是人为选定的,比如定好哪个方向是第一维,哪个垂直方向是第二维,依次类推。那么矩阵的某一个特征向量的方向,我们可以这样理解,
在这个线性空间中,一个该方向的向量通过该矩阵的变换,得到的新向量的方向和原向量方向平行,特征值的正负表示正向或是反向,特征值的大小表示伸缩的程度。
一个n维矩阵可能有k个特征向量(k<=n),我们可以这样理解,有k个方向的不同向量通过这个矩阵的变换,得到的新向量和原向量的方向平行,方向和伸缩程度由其特征向量所对应的特征值决定。
同时这k个向量是互相垂直的,我们可以用这k个向量作为基,形成一个k维的子空间,这个矩阵的作用范围也就被框住了。 当一个n维向量输入给这个矩阵,得到的新向量一定是在这个k维子空间中,其中n-k维度的值变成0。
由以上的理解,可以把矩阵乘法视作一种变换,而这种变换可以分解成一下过程:
- 得到矩阵的k个特征向量和相对应的特征值;
- 将输入向量按照k个特征向量的方向分解成k个子向量,不在k维子空间的部分直接视作0;
- 将k个子向量按照相对应的特征值做向量与常数乘法,得到k个新的子向量;
- 将新得到的k个子向量做加法,得到的新向量即为变换后的向量。
以上是我对矩阵特征向量和特征值的一点拙见,没有什么实际价值,当初用传统教材一直不懂矩阵的作用,更不明白特征向量和特征值有什么用,也是通过《线性代数应该这样学》这本书的启发,对矩阵的一点自己的理解。
参考:
阿克斯勒杜现昆, 马晶. 线性代数应该这样学 : Linear algebra done right[M]. 人民邮电出版社, 2009.