5

特征值(eigenvalue)特征向量(eigenvector)特征值分解(eigenvalue decomposition...

 2 years ago
source link: https://zhuanlan.zhihu.com/p/379206764
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

特征值(eigenvalue)特征向量(eigenvector)特征值分解(eigenvalue decomposition)

已认证的官方帐号

特征值与特征向量

我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。
实际上,上述的一段话既讲了矩阵变换特征值及特征向量的几何意义(图形变换)也讲了其物理含义。物理的含义就是运动的图景:特征向量在一个矩阵的作用下作伸缩运动,伸缩的幅度由特征值确定。特征值大于1,所有属于此特征值的特征向量身形暴长;特征值大于0小于1,特征向量身形猛缩;特征值小于0,特征向量缩过了界,反方向到0点那边去了。
关于特征值和特征向量,这里请注意两个亮点。这两个亮点一个是线性不变量的含义,二个是振动的谱含义。 ——《线性代数的几何意义》

如果存在某个或某些向量在 A 作用之后,它只是伸长或者缩短,其位置仍停留在其原来张成的直线上,那么称之为 A 的特征向量,伸长或者缩短的倍数称为对应特征向量的特征值。公式表达为:

[公式] 式(1)

[公式]

特殊地,来看看对角矩阵

[公式]

[公式]特征方程,这是一个很简单的二项式)很容易看出[公式]

带入式(1)求 [公式]

[公式] 此式在 [公式]时对任何 [公式] 成立,结论是 x 轴上的所有向量都是特征向量且 A 作用后拉伸 2 倍

同理所有y轴上的向量都是特征向量,特征值为 3

对角矩阵的线性变换的几何意义

这里不加证明地给出一个结论,对角矩阵是对基向量进行拉升,也就是我们常说的坐标轴单位向量进行拉伸(收缩),从几何直观上来讲,只有坐标轴上的向量还在原来的方向上。

特征向量空间

特征向量所在直线上的向量都是特征向量。 这样的直线可能不止一条。 我们称矩阵A所有特征向量对应的直线的集合为特征空间

特征向量是线性不变量

所谓特征向量概念的亮点之一是不变量,这里叫线性不变量。因为我们常讲,线性变换啊线性变换,不就是把一根线(向量)变成另一根线(向量),线的变化的地方大多是方向和长度一块变。而一种名叫“特征向量”的向量特殊,在矩阵作用下不变方向只变长度。不变方向的特性就被称为线性不变量。
(补正:有网友说不变量实际是特征空间的不变性,特征值再怎么变也不会离开特征空间,这个说法应是正解,因为这同时解释了复数矩阵,大赞。2016.12.25) ——《线性代数的几何意义》

特征值是振动的谱

除了线性不变量,另外一个亮点是关于振动方面的。(省略一万字)
比如,一个物理系统,其特性可以被一个矩阵所描述,那么这个系统的物理特性就可以被这个矩阵的特征值所决定,各种不同的信号(向量)进入这个系统中后,系统输出的信号(向量)就会发生相位滞后、放大、缩小等各种纷乱的变化。但只有特征信号(特征向量)被稳定的发生放大(或缩小)的变化。如果把系统的输出端口接入输入端口,那么只有特征信号(特征向量)第二次被放大(或缩小)了,其他的信号如滞后的可能滞后也可能超前同时缩小,放大的可能被继续放大也可能被缩小同时滞后,缩小的可能被继续缩小也可能被放大同时滞后等。经过N次的循环后,显然,乱七八糟的大量的向量群众们终不能成气候,只有特征向量们,心往一处想,劲往一处使,要么成功出人头地,要么失败杀身成仁。因此我们就可以因此在时间域上观察输出,就会得到一个或几个超级明显的特征信号出来(特征向量)。 ——《线性代数的几何意义》

特征向量之所以被称为“特征”,因为它具有不变的特性

特征值、特征向量的性质

  • 只有方阵才有特征值和特征向量
  • 方阵总有特征值,因为总有特征多项式(特征方程),但不是所有方阵都有实数特征解
  • 实方阵一定有实数特征解
  • 不同特征值对应的特征向量是线性无关的
  • 对于实对称矩阵或埃尔米特矩阵来说,不同特征值对应的特征向量必定正交(相互垂直)

相似变换与特征值

设 A,B 都是 n 阶矩阵,若有可逆矩阵 P ,使 [公式], 则称 B 是 A 的相似矩阵,或说 A 和 B 相似。----《线性代数》同济版 记为 [公式]

相似矩阵的几何意义是同一个线性变换在不同的基下的表达形式

如果 [公式] 是一个线性变换(没有基,变换没有意义), 那么对于 V 的两组基 α 与 [公式] (另一组基由αP而来),线性变换 T 在基 α 的矩阵表示为 [公式],在基 [公式]下表示为 [公式]

所以它们是不同基下观测到的同一个线性变换。

  • 相似矩阵有相同的行列式
  • 有相同的秩、相同的迹( [公式] ) 、相同的特征方程、特征值、相同的Jondan标准型、相同的特征多项式、相同的最小多项式

这些统称为相似不变量,所以记住“相似矩阵有若干相似不变量”,特征值是最重要的相似不变量,利用这个相似不变量可以方便的得出上面所有的不变量 推导一个:

[公式]

所以 [公式]

所以 [公式]

这些不变量的几何意义:

  • 相同行列式:相似矩阵的线性映射,膨胀系数不变
  • 相同的秩:相似矩阵的线性映射,对空间的维数的影响一致
  • 相同的特征方程:相似矩阵的线性映射,对向量的主变化方向和变化速度影响一致

相似矩阵用于简化问题:可以找到更简单的坐标系

如果在当前坐标系研究太过于复杂,我们就期望找到简单的坐标系,在简单的坐标系下观察一些变换。

[公式]

是在当前坐标系下的变换, 可以这样分解:

[公式]

[公式]

B 是更简单的形式(对角矩阵),更为简单,那么 P 表达的就是当前坐标系通过这个变换能到达 B 所在的坐标系。

对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为 0 的矩阵,常写为 diag(a1,a2,...,an) 。对角矩阵可以认为是矩阵中最简单的一种,值得一提的是:对角线上的元素可以为 0 或其他值,对角线上元素相等的对角矩阵称为数量矩阵;对角线上元素全为1的对角矩阵称为单位矩阵。对角矩阵的运算包括和、差运算、数乘运算、同阶对角阵的乘积运算,且结果仍为对角阵。

对角化

矩阵对角化:对 n 阶矩阵 A,如果可以找到可逆矩阵 P,使得 [公式] ,就称为把方阵 A 对角化。

矩阵对角化的充要条件n 阶矩阵有 n 个线性无关的特征向量。 推论:若 n 阶方阵 A 有 n 个互不相同的特征值,则 A 可对角化。而且:

  1. 对角阵的主对角元素为 A 的特征值
  2. 可逆矩阵 P 由 A 的 n 个线性无关的特征向量作列向量构成。

坏消息是:可对角化,是有条件的,这里又用到了特征向量。你只有找到 A 的 n 个线性无关的特征向量,才能将A顺利地对角化。

好消息是:n 阶实对称矩阵一定有 n 个线性无关的特征向量,所以实对称矩阵一定可以对角化。不仅如此还一定能找到正交矩阵 C[公式] 。 ( [公式] 为矩阵 C 的转置, [公式] 为矩阵 C 的逆矩阵)

这真是一个好消息!!!

再来看这段

矩阵:
[公式]是在当前坐标系下的变换, 可以这样分解:
[公式]
其中 [公式]

可知:3 和 1 是 A 的特征值, [公式] 是特征值3对应的特征向量, [公式] 的特征值 1对应的特征向量。

验算一下 [公式] 求解,根为 3 和 1,带入后求解特征向量即可。

对角矩阵是最简单的矩阵

因此特征值与特征向量,用于找矩阵的相似对角阵,非常有意义。

关于简化还有这些结论

这些结论暂不明白:

  • 任何一个方阵总存在约当标准型(线性变换的相关问题总是 存在一组好基)
  • 如果问题具有相似不变性,可以假定矩阵是约当标准型从而 简化问题
  • 如果问题具有相似不变性以及连续性,可以假定矩阵是可复 对角化的约当标准型,从而进一步简化问题

呼之欲出的特征值分解

特征究竟特征在何处,它描述了原矩阵的哪些属性

为什么那些值被命名为特征值,为什么那些向量被命名为特征向量?

  1. 在相似变换中,这些东西不变,而且其他不变性质可以通过特征值不变来推导;所以特征值是相似的这些矩阵的集合(这一类矩阵)的公共属性,它当然可以作为特征
  2. 重要:从几何意义上讲,特征向量描述了矩阵对应的线性变换的主要变换方向。线性变换对向量的作用是伸缩(新的长度)和旋转(新的方向),旋转会消减拉伸的作用,特征向量只有伸缩没有旋转,它就代表了这个线性变换的主要方向;那么特征值就是描述该方向上的变换速度(倍数),所以把特征值排序,从大到小的特征值及其特征向量能近似地描述原矩阵的主变换方向和变换速度。

特征值分解是找最相似的矩阵

特征值分解是将一个矩阵分解为如下形式: [公式],其中,Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角矩阵,每一个对角线元素就是一个特征值,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。也就是说矩阵A的信息可以由其特征值和特征向量表示。
对于矩阵为高维的情况下,那么这个矩阵就是高维空间下的一个线性变换。可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。
总结一下,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。 ——机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用 - LeftNotEasy - 博客园

具体应用

比如说,有这么一副 [公式] 的图片(方阵才有特征值): 这个图片可以放到一个矩阵里面去,就是把每个像素的颜色值填入到一个 [公式] 的 A 矩阵中。

根据之前描述的有:

[公式]

其中, [公式] 是对角阵,对角线上是从大到小排列的特征值。

我们在 [公式] 中只保留前面50个的特征值(也就是最大的50个,其实也只占了所有特征值的百分之十),其它的都填0,重新计算矩阵后,恢复图像。

效果仍然可以。

这段见如何理解矩阵特征值? - 知乎

python求解特征值和特征向量

>>> import numpy as np
>>> a=np.array([[2,-1],[-1,2]])
>>> a
array([[ 2, -1],
       [-1,  2]])
>>> e,q=np.linalg.eig(a)
>>> e # 特征值
array([ 3.,  1.])
>>> q # 特征向量作为列向量
array([[ 0.70710678,  0.70710678],
       [-0.70710678,  0.70710678]])
>>> 
​

大家也可以试试别的。

>>> a=np.array([[1,2,3],[3,2,5],[1,10,8]])
>>> e,q=np.linalg.eig(a)
>>> e
array([ 13.50864036,  -0.42667365,  -2.0819667 ])
>>> q
array([[-0.27543318, -0.6534998 , -0.23748816],
       [-0.44255955, -0.44847532, -0.67779488],
       [-0.85339183,  0.60976053,  0.69584012]])
>>> 
>>> E=np.diag(e) # 对角阵
>>> E
array([[ 13.50864036,   0.        ,   0.        ],
       [  0.        ,  -0.42667365,   0.        ],
       [  0.        ,   0.        ,  -2.0819667 ]])
​

好使,完!

作者:蓝桥杯特邀专家郑未

更多算法课程:

精选项目课程_IT热门课程​www.lanqiao.cn


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK