我们知道,矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度都大多不同的新向量。在这个变换的过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某一个向量或某些向量只发生伸缩变换,不对这些向量产生旋转的效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。
实际上,上述的一段话既讲了矩阵变换特征值及特征向量的几何意义(图形变换)也讲了其物理含义。物理的含义就是运动的图景:特征向量在一个矩阵的作用下作伸缩运动,伸缩的幅度由特征值确定。特征值大于1,所有属于此特征值的特征向量身形暴长;特征值大于0小于1,特征向量身形猛缩;特征值小于0,特征向量缩过了界,反方向到0点那边去了。
关于特征值和特征向量,这里请注意两个亮点。这两个亮点一个是线性不变量的含义,二个是振动的谱含义。
——《线性代数的几何意义》
如果存在某个或某些向量在A作用之后,它只是伸长或者缩短,其位置仍停留在其原来张成的直线上,那么称之为A的特征向量,伸长或者缩短的倍数称为对应特征向量的特征值。公式表达为:
Av⎯⎯=λv⎯⎯ 式(1)
即 ∣∣A−λI∣∣=0
特殊地,来看看对角矩阵
(20 03)[vivj]=[2vi3vj]=2⋅[vivj] 此式在 vj=0 时对任何 vi 成立,结论是x轴上的所有向量都是特征向量且A作用后拉伸2倍
同理所有y轴上的向量都是特征向量,特征值为3
这里不加证明地给出一个结论,对角矩阵是对基向量进行拉升,也就是我们常说的坐标轴单位向量进行拉伸(收缩),从几何直观上来讲,只有坐标轴上的向量还在原来的方向上。
特征向量所在直线上的向量都是特征向量。
这样的直线可能不止一条。
我们称矩阵A所有特征向量对应的直线的集合为特征空间
所谓特征向量概念的亮点之一是不变量,这里叫线性不变量。因为我们常讲,线性变换啊线性变换,不就是把一根线(向量)变成另一根线(向量),线的变化的地方大多是方向和长度一块变。而一种名叫“特征向量”的向量特殊,在矩阵作用下不变方向只变长度。不变方向的特性就被称为线性不变量。
(补正:有网友说不变量实际是特征空间的不变性,特征值再怎么变也不会离开特征空间,这个说法应是正解,因为这同时解释了复数矩阵,大赞。2016.12.25)
——《线性代数的几何意义》
除了线性不变量,另外一个亮点是关于振动方面的。(省略一万字)
比如,一个物理系统,其特性可以被一个矩阵所描述,那么这个系统的物理特性就可以被这个矩阵的特征值所决定,各种不同的信号(向量)进入这个系统中后,系统输出的信号(向量)就会发生相位滞后、放大、缩小等各种纷乱的变化。但只有特征信号(特征向量)被稳定的发生放大(或缩小)的变化。如果把系统的输出端口接入输入端口,那么只有特征信号(特征向量)第二次被放大(或缩小)了,其他的信号如滞后的可能滞后也可能超前同时缩小,放大的可能被继续放大也可能被缩小同时滞后,缩小的可能被继续缩小也可能被放大同时滞后等。经过N次的循环后,显然,乱七八糟的大量的向量群众们终不能成气候,只有特征向量们,心往一处想,劲往一处使,要么成功出人头地,要么失败杀身成仁。因此我们就可以因此在时间域上观察输出,就会得到一个或几个超级明显的特征信号出来(特征向量)。
——《线性代数的几何意义》
特征向量之所以被称为“特征”,因为它具有不变的特性
设 A,B 都是 n 阶矩阵,若有可逆矩阵 P ,使 P−1AP=B , 则称 B 是 A 的相似矩阵,或说 A 和 B 相似。—-《线性代数》同济版
记为 A∼B
相似矩阵的几何意义是同一个线性变换在不同的基下的表达形式
如果 T:V→V 是一个线性变换(没有基,变换没有意义), 那么对于 V 的两组基 α 与
a˜ (另一组基由αP而来),线性变换 T 在基 α 的矩阵表示为
Aa(T) ,在基 a˜ 下表示为 Aa˜(T)=P−1·Aa(T)·P
所以它们是不同基下观测到的同一个线性变换。
有相同的秩、相同的迹( trace(A)=∑n1aii ) 、相同的特征方程、特征值、相同的Jondan标准型、相同的特征多项式、相同的最小多项式
这些统称为相似不变量,所以记住“相似矩阵有若干相似不变量”,特征值是最重要的相似不变量,利用这个相似不变量可以方便的得出上面所有的不变量
推导一个:
det(A−λI)=0
所以 det(P−1(A−λI)P)=0
所以 det(P−1AP−λI)=0
这些不变量的几何意义:
如果在当前坐标系研究太过于复杂,我们就期望找到简单的坐标系,在简单的坐标系下观察一些变换。
矩阵:
A=(2−1−12) 是在当前坐标系下的变换,
可以这样分解:
B=P−1AP=(3001)
其中 P=P−1=⎛⎝⎜⎜−2√22√22√22√2⎞⎠⎟⎟
B是更简单的形式(对角矩阵),更为简单,那么P表达的就是当前坐标系通过这个变换能到达B所在的坐标系。
对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为0的矩阵,常写为diag(a1,a2,…,an) 。对角矩阵可以认为是矩阵中最简单的一种,值得一提的是:对角线上的元素可以为 0 或其他值,对角线上元素相等的对角矩阵称为数量矩阵;对角线上元素全为1的对角矩阵称为单位矩阵。对角矩阵的运算包括和、差运算、数乘运算、同阶对角阵的乘积运算,且结果仍为对角阵。
矩阵对角化:对n阶矩阵A,如果可以找到可逆矩阵P,使得 P−1AP=对角阵 ,就称为把方阵A对角化。
矩阵对角化的充要条件:n阶矩阵有n个线性无关的特征向量。
推论:若n阶方阵A有n个互不相同的特征值,则A可对角化。而且:
坏消息是:可对角化,是有条件的,这里又用到了特征向量。你只有找到A的n个线性无关的特征向量,才能将A顺利地对角化。
好消息是:n阶实对称矩阵一定有n个线性无关的特征向量,所以实对称矩阵一定可以对角化。不仅如此还一定能找到正交矩阵C, C−1AC=CTAC=对角矩阵 。
( CT 为矩阵C的转置, C−1 为矩阵C的逆矩阵)
这真是一个好消息!!!
再来看这段
矩阵:
A=(2−1−12) 是在当前坐标系下的变换,
可以这样分解:B=P−1AP=(3001)
其中 P=P−1=⎛⎝⎜⎜−2√22√22√22√2⎞⎠⎟⎟
可知:3和1是A的特征值, ⎡⎣⎢⎢−2√22√2⎤⎦⎥⎥ 是特征值3对应的特征向量,
⎡⎣⎢⎢2√22√2⎤⎦⎥⎥ 的特征值1对应的特征向量。
验算一下 det(A−λI)=(2−λ)2−1=0 求解,根为3和1,带入后求解特征向量即可。
因此特征值与特征向量,用于找矩阵的相似对角阵,非常有意义。
这些结论暂不明白:
为什么那些值被命名为特征值,为什么那些向量被命名为特征向量?
因为
特征值分解是将一个矩阵分解为如下形式: A=Q∑Q−1 ,
其中,Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角矩阵,每一个对角线元素就是一个特征值,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。也就是说矩阵A的信息可以由其特征值和特征向量表示。对于矩阵为高维的情况下,那么这个矩阵就是高维空间下的一个线性变换。可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。
总结一下,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。
——机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用 - LeftNotEasy - 博客园
比如说,有这么一副 512×512 的图片(方阵才有特征值):
这个图片可以放到一个矩阵里面去,就是把每个像素的颜色值填入到一个 512×512 的 A 矩阵中。
根据之前描述的有:
A=PΛP−1
其中, Λ 是对角阵,对角线上是从大到小排列的特征值。
我们在 A=PΛP−1 中只保留前面50个的特征值(也就是最大的50个,其实也只占了所有特征值的百分之十),其它的都填0,重新计算矩阵后,恢复图像.
效果仍然可以。
这段见如何理解矩阵特征值? - 知乎
>>> 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 ]])
好使,完!