一、特征值和特征向量
设
A
A
A是
n
n
n阶方阵,如果存在常数及非零
n
n
n向量
x
x
x,使得
A
x
=
λ
x
Ax=\lambda x
Ax=λx,则
λ
\lambda
λ称是矩阵
A
A
A的特征值,
x
x
x是
A
A
A属于特征值
λ
\lambda
λ的特征向量。给定
n
n
n阶矩阵
A
A
A,行列式
的结果是关于
λ
\lambda
λ的一个多项式,成为矩阵
A
A
A的特征多项式,该特征多项式构成的方程
∣
λ
E
−
A
∣
=
0
|\lambda E-A|=0
∣λE−A∣=0称为矩阵
A
A
A的特征方程。
定理: n n n阶矩阵 A A A的 n n n个特征值就是其特征方程 ∣ λ E − A ∣ = 0 |\lambda E-A|=0 ∣λE−A∣=0的 n n n个跟 λ 1 , λ 2 , λ 3 , . . . , λ n \lambda_1,\lambda_2,\lambda_3,...,\lambda_n λ1,λ2,λ3,...,λn;而 A A A的属于特征值 λ i \lambda_i λi的特征向量就是其次线性方程 ( λ i E − A ) x = 0 (\lambda_i E-A)x=0 (λiE−A)x=0的非零解。
例: 求 A = ∣ 1 − 2 1 4 ∣ A=\begin{vmatrix} 1&-2 \\ 1&4 \end{vmatrix} A=∣∣∣∣11−24∣∣∣∣的特征根和特征向量。
解: ∣ λ E − A ∣ = ∣ λ − 1 − 2 1 λ − 4 ∣ = ( λ − 1 ) ( λ − 4 ) + 2 = 0 |\lambda E-A|=\begin{vmatrix} \lambda-1&-2 \\ 1&\lambda-4 \end{vmatrix}=(\lambda-1)(\lambda-4)+2=0 ∣λE−A∣=∣∣∣∣λ−11−2λ−4∣∣∣∣=(λ−1)(λ−4)+2=0,解一元二次方程可得 λ i = 2 , λ 2 = 3 \lambda_i=2,\lambda_2=3 λi=2,λ2=3;
λ
1
\lambda_1
λ1对应的特征向量为
x
x
x满足
(
λ
i
E
−
A
)
x
=
0
(\lambda_i E-A)x=0
(λiE−A)x=0,求得
x
=
k
1
(
2
,
−
1
)
T
,
k
1
≠
0
x=k_1(2,-1)^T,k_1\neq0
x=k1(2,−1)T,k1̸=0
λ
2
\lambda_2
λ2对应的特征向量为
x
x
x满足
(
λ
i
E
−
A
)
x
=
0
(\lambda_i E-A)x=0
(λiE−A)x=0,求得
x
=
k
2
(
1
,
−
1
)
T
,
k
2
≠
0
x=k_2(1,-1)^T,k_2\neq0
x=k2(1,−1)T,k2̸=0
二、特征分解
特征值分解是将一个矩阵分解成下面的形式:
A
=
Q
Σ
Q
−
1
A=QΣ Q^{-1}
A=QΣQ−1
其中
Q
Q
Q是这个矩阵
A
A
A的特征向量组成的矩阵,正交矩阵是可逆的。
Σ
=
d
i
a
g
(
λ
1
,
λ
2
,
.
.
.
,
λ
n
)
Σ = diag(λ_1, λ_2, ..., λ_n)
Σ = diag(λ1, λ2, ..., λn)是一个对角阵,每一个对角线上的元素就是一个特征值。
将
Q
Q
Q的这
n
n
n个特征向量标准化,即满足
∣
∣
q
i
∣
∣
2
=
1
||qi||_2=1
∣∣qi∣∣2=1, 或者说
q
i
T
w
i
=
1
q^T_iw_i=1
qiTwi=1,此时
Q
Q
Q的
n
n
n个特征向量为标准正交基,满足
Q
T
Q
=
I
Q^TQ=I
QTQ=I,即
Q
T
=
Q
−
1
Q^T=Q−1
QT=Q−1, 也就是说
Q
Q
Q为酉矩阵。
这样我们的特征分解表达式可以写成
A
=
Q
Σ
Q
T
A=QΣ Q^{T}
A=QΣQT
三、奇异值分解
SVD也是对矩阵进行分解,但是和特征分解不同,SVD并不要求要分解的矩阵为方阵。假设我们的矩阵
A
A
A是一个
m
×
n
m×n
m×n的矩阵,那么我们定义矩阵
A
A
A的SVD为:
A
=
U
Σ
V
T
A=UΣV^T
A=UΣVT
其中
U
U
U是一个
m
×
m
m×m
m×m的矩阵,
Σ
Σ
Σ是一个
m
×
n
m×n
m×n的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值,
V
V
V是一个
n
×
n
n×n
n×n的矩阵。
U
U
U和
V
V
V都是酉矩阵,即满足
U
T
U
=
I
,
V
T
V
=
I
UTU=I,VTV=I
UTU=I,VTV=I。
如何求 U , Σ , V U,Σ,V U,Σ,V
将
A
A
A的转置和
A
A
A做矩阵乘法,那么会得到
n
×
n
n×n
n×n的一个方阵
A
T
A
A^TA
ATA。既然
A
T
A
A^TA
ATA是方阵,那么就可以进行特征分解,得到的特征值和特征向量满足下式:
(
A
T
A
)
v
i
=
λ
i
v
i
(A^TA)v_i=λ_iv_i
(ATA)vi=λivi
这样就得到矩阵
A
T
A
A^TA
ATA的
n
n
n个特征值和对应的
n
n
n个特征向量
v
v
v了。将
A
T
A
A^TA
ATA的所有特征向量组成一个
n
×
n
n×n
n×n的矩阵
V
V
V,就是我们
S
V
D
SVD
SVD公式里面的
V
V
V矩阵了。
将A和A的转置做矩阵乘法,那么会得到
m
×
m
m×m
m×m的一个方阵
A
A
T
AA^T
AAT。既然
A
A
T
AA^T
AAT是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:
(
A
A
T
)
u
i
=
λ
i
u
i
(AA^T)u_i=λ_iu_i
(AAT)ui=λiui
这样就可以得到矩阵
A
A
T
AA^T
AAT的
m
m
m个特征值和对应的
m
m
m个特征向量
u
u
u了。将
A
A
T
AA^T
AAT的所有特征向量张成一个
m
×
m
m×m
m×m的矩阵
U
U
U,就是我们
S
V
D
SVD
SVD公式里面的
U
U
U矩阵了。
U
U
U和
V
V
V都求出来了,现在就剩下奇异值矩阵
Σ
Σ
Σ。由于
Σ
Σ
Σ除了对角线上是奇异值其他位置都是0,那我们只需要求出每个奇异值
σ
σ
σ就可以了。
A
=
U
Σ
V
T
⇒
A
V
=
U
Σ
V
T
V
⇒
A
V
=
U
Σ
⇒
A
v
i
=
σ
i
u
i
⇒
σ
i
=
A
v
i
/
u
i
A=UΣV^T⇒AV=UΣV^TV⇒AV=UΣ⇒Av_i=σ_iu_i⇒σ_i=Av_i/u_i
A=UΣVT⇒AV=UΣVTV⇒AV=UΣ⇒Avi=σiui⇒σi=Avi/ui
这样可以求出我们的每个奇异值,进而求出奇异值矩阵
Σ
Σ
Σ。