如何理解矩阵特征值

转载 2018年04月17日 14:39:35

(下面的回答只涉及实数范围)。

关于特征值、特征向量可以讲的确实很多,我这里希望可以给大家建立一个直观的印象。

先给一个简短的回答,如果把矩阵看作是运动,对于运动而言,最重要的当然就是运动的速度和方向,那么(我后面会说明一下限制条件):

  • 特征值就是运动的速度
  • 特征向量就是运动的方向

既然运动最重要的两方面都被描述了,特征值、特征向量自然可以称为运动(即矩阵)的特征。

注意,由于矩阵是数学概念,非常抽象,所以上面所谓的运动、运动的速度、运动的方向都是广义的,在现实不同的应用中有不同的指代。

下面是详细的回答,我会先从几何上简单讲解下特征值、特征向量的定义指的是什么,然后再来解释为什么特征值、特征向量会是运动的速度和方向。

1 几何意义

说明下,因为线性变换总是在各种基之间变来变去,所以我下面画图都会把作图所用的基和原点给画出来。

\vec{i_{}},\vec{j_{}} 下面有个 \vec{v_{}}

随便左乘一个矩阵A,图像看上去没有什么特殊的:

我调整下 \vec{v_{}} 的方向,图像看上去有点特殊了:

可以观察到,调整后的 \vec{v_{}}A\vec{v_{}} 在同一根直线上,只是 A\vec{v_{}} 的长度相对\vec{v_{}}的长度变长了。

此时,我们就称 \vec{v_{}}A 的特征向量,而 A\vec{v_{}} 的长度是 \vec{v_{}} 的长度的 \lambda 倍,\lambda 就是特征值。

从而,特征值与特征向量的定义式就是这样的:

其实之前的 A 不止一个特征向量,还有一个特征向量:

容易从 A\vec{v_{}} 相对于 \vec{v_{}} 是变长了还是缩短看出,这两个特征向量对应的特征\lambda值,一个大于1,一个小于1。

从特征向量和特征值的定义式还可以看出,特征向量所在直线上的向量都是特征向量:

你可以自己动手试试,可以改变 \vec{v_{}} 的位置,以及矩阵 A 的值(特征空间会随着矩阵改变而改变):

此处有互动内容,点击此处前往操作。

其中有些值构成的矩阵没有画出特征空间,可能是因为它的特征值、特征向量是复数,也可能是不存在。

下面就要说下,特征值、特征向量与运动的关系

2 运动的速度与方向

2.1 从调色谈起

我有一管不知道颜色的颜料,而且这管颜料有点特殊,我不能直接挤出来看颜色,只能通过调色来观察:

为了分辨出它是什么颜色(记得它只能通过调色来辨别):

因为反复混合之后,这管颜料的特征就凸显了出来,所以我们判断,这管颜料应该是蓝色。

说这个干什么?矩阵也有类似的情况。

2.2 矩阵的混合

一般来说,矩阵我们可以看作某种运动,而二维向量可以看作平面上的一个点(或者说一个箭头)。对于点我们是可以观察的,但是运动我们是不能直接观察的。

就好像,跑步这个动作,我们不附加到具体的某个事物上是观察不到的,我们只能观察到:人跑步、猪跑步、老虎跑步、......,然后从中总结出跑步的特点。

就好像之前举的不能直接观察的颜料一样,要观察矩阵所代表的运动,需要把它附加到向量上才观察的出来:

似乎还看不出什么。但是如果我反复运用矩阵乘法的话:

就像之前颜料混合一样,反复运用矩阵乘法,矩阵所代表的运动的最明显的特征,即速度最大的方向,就由最大特征值对应的特征向量展现了出来。

至于别的特征值对应的是什么速度,我后面会解释,这里先跳过。

可以自己动手试试,我把 \lambda 值也标注出来了,可以关注下最大 \lambda 值对于运动的影响:

此处有互动内容,点击此处前往操作。

顺便说下,对于复数的特征值、特征向量,在上面就没有画出特征空间,但可以观察到反复运用矩阵乘法的结果是围绕着原点在旋转。关于复数特征值和特征向量这里就不展开来说了。

2.3 烧一壶斐波那契的水

上面说的运动太抽象了,我来举一个具体点的例子:烧水。

比如说我想烧一壶水,水的温度按照斐波那契数列升高,即下一秒的温度 T_{t+1} 与当前温度T_{t} 以及上一秒的温度T_{t-1}的关系为:

T_{t+1}=T_{t}+T_{t-1}

要继续计算下去,我只需要 T_{t+1} 以及 T_{t} 就可以继续算下去。因此我可以写成下面的式子:

\begin{bmatrix}T_{t+1}\\T_{t}\end{bmatrix}=\begin{bmatrix}1&1\\1&0\end{bmatrix}\begin{bmatrix}T_{t}\\T_{t-1}\end{bmatrix}

因此烧水这个运动我们可以抽象为矩阵 A=\begin{bmatrix}1&1\\1&0\end{bmatrix} ,反复进行这个运动就可以烧开这壶水,根据斐波那契数列,让我们从 \begin{bmatrix}1\\1\end{bmatrix} 点开始(感兴趣的话,可以通过之前的互动调整下参数,可以得到下面的结果):

就可以看出,这壶水的温度会沿着A的特征值最大的特征向量方向飞快增长,我估计要不了多久,在理想的情况下,温度就会突破百万度、千万度、亿万度,然后地球说不定就爆炸了。我们就说这个矩阵不稳定。

所以说,不要烧斐波那契的水。

实际上历史也是这样,欧拉在研究刚体的运动时发现,有一个方向最为重要,后来拉格朗日发现,哦,原来就是特征向量的方向。

我们知道特征值、特征向量有什么特点之后,下一步就想知道,为什么会这样?

3 特征值分解

下面讲解要用到矩阵乘法和相似矩阵的知识,我就不啰嗦了,可以参看我的回答: 行列式的本质是什么? 以及 相似矩阵是什么?

我们知道,对于矩阵A可以对角化的话,可以通过相似矩阵进行下面这样的特征值分解:

A=P\Lambda P^{-1}

其中\Lambda为对角阵,P的列向量是单位化的特征向量。

说的有点抽象,我们拿个具体的例子来讲:

对于方阵而言,矩阵不会进行维度的升降,所以矩阵代表的运动实际上只有两种:

  • 旋转
  • 拉伸

最后的运动结果就是这两种的合成。

我们再回头看下刚才的特征值分解,实际上把运动给分解开了:

我们来看看在几何上的表现是什么,因此相似矩阵的讲解涉及到基的变换,所以大家注意观察基:

左乘 P=\begin{bmatrix}\frac{-\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\end{bmatrix}

如果旋转前的基不正交,旋转之后变为了标准基,那么实际会产生伸缩,所以之前说的正交很重要。

继续左乘对角矩阵 \Lambda=\begin{bmatrix}3&0\\0&1\end{bmatrix}

相当于,之前的旋转是指明了拉伸的方向,所以我们理解了:

  • 特征值就是拉伸的大小
  • 特征向量指明了拉伸的方向

回到我们之前说的运动上去,特征值就是运动的速度,特征向量就是运动的方向,而其余方向的运动就由特征向量方向的运动合成。所以最大的特征值对应的特征向量指明了运动速度的最大方向。

但是,重申一下,上面的推论有一个重要的条件,特征向量正交,这样变换后才能保证变换最大的方向在基方向。如果特征向量不正交就有可能不是变化最大的方向,比如:

所以我们在实际应用中,都要去找正交基。但是特征向量很可能不是正交的,那么我们就需要奇异值分解了,这里就不展开了。

大家可以再回头去操作一下之前的动图,看看不正交的情况下有什么不一样。

左乘 P^{-1}=\begin{bmatrix}-\frac{\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\end{bmatrix}

说明下,如果大家把这个文章和之前提到的我写的“相似矩阵”的文章参照来看的话,“相似矩阵”那篇文章里面我把图像的坐标系换了,所以看着图像没有变换(就好像直角坐标系到极坐标系下,图像是不会变换的)。而这里我把图像的坐标系给旋转、拉伸了,所以看着图像变换了(就好像换元,会导致图像变换)。这其实是看待矩阵乘法的两种视角,是等价的,但是显示到图像上就有所不同。

4 特征值、特征向量的应用

4.1 控制系统

之前的烧水系统是不稳定的。

\lambda = 1 的,系统最终会趋于稳定:

4.2 图片压缩

比如说,有下面这么一副512\times512的图片(方阵才有特征值,所以找了张正方形的图):

这个图片可以放到一个矩阵里面去,就是把每个像素的颜色值填入到一个512\times512A 矩阵中。

根据之前描述的有:

A=P\Lambda P^{-1}

其中,\Lambda 是对角阵,对角线上是从大到小排列的特征值。

我们在A=P\Lambda P^{-1}中只保留前面50个的特征值(也就是最大的50个,其实也只占了所有特征值的百分之十),其它的都填0,重新计算矩阵后,恢复为下面这样的图像:

效果还可以,其实一两百个特征值之和可能就占了所有特征值和的百分之九十了,其他的特征值都可以丢弃了。

机器学习之矩阵

购买课程后添加小助手为好友(微信ID:superaihelper)加入课程讨论群。本课程囊括了机器学习理论中所需要的和线性代数相关的所有知识。 主要有矩阵的定义、性质、运算、分解以及应用。另外,还会讲解线性空间、范数、生成子空间相关知识。
  • 2017年08月05日 13:31

如何理解矩阵特征值?

矩阵特征值
  • tony2278
  • tony2278
  • 2017-06-14 14:26:37
  • 865

矩阵特征值分解与奇异值分解含义解析及应用

此文有一半转载自他出,主要在这进行个整理,具体内容文中都有相关的转载链接。特征值与特征向量的几何意义矩阵的乘法是什么,别只告诉我只是“前一个矩阵的行乘以后一个矩阵的列”,还会一点的可能还会说“前一个矩...
  • xiahouzuoxin
  • xiahouzuoxin
  • 2014-11-14 14:28:10
  • 81400

第8章 矩阵特征值问题计算

第8章 矩阵特征值问题计算 8.1 引 言 物理、力学和工程技术中的很多问题在数学上都归结为求矩阵特征值问题。例如,振动问题(大型桥梁或建筑物的振动、机械的振动、电磁振荡...
  • whucv
  • whucv
  • 2012-06-05 21:59:08
  • 3241

Matlab 语法记录(I)——特征值排序问题

特征值排序问题矩阵的特征值分解矩阵的特征值分解是非常重要的数学工具。在matlab中一般使用eig()函数完成矩阵特征值和特征向量的提取,其用法如下A = magic(4); [V,D] = eig(...
  • qinminss
  • qinminss
  • 2017-05-05 23:06:54
  • 2229

数值分析—<em>矩阵特征值问题</em>的数值计算

<em>矩阵特征值问题</em>的数值解法在实际应用中,求矩阵的特征值和特征向量通常分为变换法和迭代法两种。变换法是从原矩阵从发,用有限个正交相似变换将其化为便于求出特征...
  • 2018年04月18日 00:00

矩阵分析与应用

第三讲依然是数学,因为数学是解决一切问题的基础。一个问深入到最后都是数理知识的支撑。所谓基础决定上层建筑,比如参加ACM比赛,高手之间的比赛已经不是编程技巧了,更多的是数学知识的比拼。若想走得远,数学...
  • JoyceWYJ
  • JoyceWYJ
  • 2016-05-31 17:34:02
  • 3742

关于广义特征值问题的求解[泛化特征值问题][扩展特征值问题]

最近接触到LDA(线性判别分析)、LFDA(局部性性判别分析)、FLDA(Fisher线性判别分析)、MMDA(多模式判别分析)等关于特征提取的方法,其中都涉及到了同一个问题——Fisher Crit...
  • LYS_SONG
  • LYS_SONG
  • 2016-09-22 10:42:42
  • 1345

利用python做矩阵的简单运算(行列式、特征值、特征向量等的求解)

利用python可以简单的处理矩阵问题。一下是对矩阵的一些简单运算,例如:求解矩阵的逆矩阵、行列式、特征值与特征向量以及方程组的求解。代码以及结果如下所示: #-*- coding:utf-8 ...
  • tanlangqie
  • tanlangqie
  • 2017-10-15 11:45:40
  • 1194

PCA(协方差矩阵和奇异值分解两种方法求特征值特征向量)

1.问题描述   在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采...
  • guoxinian
  • guoxinian
  • 2015-12-30 10:43:36
  • 7439
收藏助手
不良信息举报
您举报文章:如何理解矩阵特征值
举报原因:
原因补充:

(最多只允许输入30个字)