对角化公式
假设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 ,问题就解决了