假设A有n个独立的eigenvector,将它们放入矩阵S中(也叫作eigenvectors matrix)
S被叫作eigenvectors matrix
Λ Λ 这个diagonal matrix被叫作eigenvalues matrix
公式如下:
AS=SΛ A S = S Λ
可以对它做如下转换:
S−1AS=Λ S − 1 A S = Λ (这就是对角化公式!!!)
A=SΛS−1 A = S Λ S − 1 ,注意,这是除 A=LU,A=QR A = L U , A = Q R 之外的新的矩阵分解
有两点需要注意:
1.对矩阵做幂运算,eigenvalue跟着变,eigenvector不变
2.eigenvalue和eigenvector提供了一种计算矩阵幂的方式
一个定理:
如果特征值的绝对值小于1,那么在k趋近于无穷大时, Ak−>0 A k − > 0
以上得到的公式和定理都是基于一个假设,也就是A有n个独立的eigenvectors,那么这个假设在什么情况下成立?
A is sure to have n indep eigenvectors(and can be diagonalizable) if all the λ′s λ ′ s are different(no repeated λ′s λ ′ s )
repeated eigenvalues may or may not have n indep evectors
这段话里面有一点需要注意:
当有重复的eigenvalues时,不代表一定不能得到n个独立的eigenvectors,典型的例子是单位矩阵,eigenvalue全部等于1,但是eigenvector独立(即为单位矩阵对应的列)
来看看没有eigenvector不独立的例子:
A=[2012] A = [ 2 1 0 2 ]
λ1=2,λ2=2 λ 1 = 2 , λ 2 = 2
A−2I=[0010] A − 2 I = [ 0 1 0 0 ]
无法找到两个独立的eigenvector
来看一看利用到矩阵对角化的例子:
Equation: uk+1=Auk u k + 1 = A u k
start with given vector u0 u 0
u1=Au0,u2=A2u0,uk=Aku0 u 1 = A u 0 , u 2 = A 2 u 0 , u k = A k u 0
我们看到,只需把向量 u0 u 0 初始化为eigenvectors的线性组合,就可以很容易得出迭代100次后的 u100 u 1 00
那么知道这些有什么用?我们来看看斐波拉契数列:
F的增长速度如何得知?
F100≈C1(1+5√2)100 F 100 ≈ C 1 ( 1 + 5 2 ) 100
为了更好的了解为什么F的增长速度由 1+5√2 1 + 5 2 决定,我们看看之前求出的u的递推式:
实际上,由于 λ2很小,所以在100次方之后接近消失,因此u由c1λ1001x1主导了 λ 2 很 小 , 所 以 在 100 次 方 之 后 接 近 消 失 , 因 此 u 由 c 1 λ 1 100 x 1 主 导 了
我们来求一下特征向量
A−λI=[1−λ11λ] A − λ I = [ 1 − λ 1 1 λ ]
也就是 c1x1+c2x2=u0 c 1 x 1 + c 2 x 2 = u 0 ,只要解出 c1 c 1 ,问题就解决了