上一篇:常见的特殊矩阵及分解(一)
参考:矩阵分析、维基百科、百度百科
文章目录
1、特征分解
(Eigen decomposition
),又叫谱分解(Spectral decomposition
),是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法.
注意,只有对可对角化矩阵才可以施以特征分解.
A 是一个
N
×
N
N×N
N×N 的方阵,且有
N
N
N 个线性无关的特征向量
q
i
(
i
=
1
,
…
,
N
)
q_{i} (i = 1, \dots, N)
qi(i=1,…,N) 。这样,
A
A
A 可以被分解为
A
=
Q
Λ
Q
−
1
\mathbf { A } = \mathbf { Q } \mathbf { \Lambda } \mathbf { Q } ^ { - 1 }
A=QΛQ−1
其中
Q
Q
Q 是
N
×
N
N×N
N×N 方阵,且其第
i
i
i 列为
A
A
A 的特征向量
q
i
q_i
qi。
Λ
Λ
Λ 是对角矩阵,其对角线上的元素为对应的特征值,也即
Λ
i
i
=
λ
i
\Lambda _{ii}=\lambda _{i}
Λii=λi.
特征向量
q
i
(
i
=
1
,
…
,
N
)
q_{i}\,\,(i=1,\dots ,N)
qi(i=1,…,N)一般被单位化(但这不是必须的),未被单位化的特征向量组
v
i
(
i
=
1
,
…
,
N
)
v_i \,\, (i = 1, \dots, N)
vi(i=1,…,N), 也可以作为
Q
Q
Q 的列向量。这一事实可以这样理解:
Q
Q
Q 中向量的长度都被
Q
−
1
Q^{−1}
Q−1 抵消了.
注意,一般特征值分解时,我们会将
Q
Q
Q 单位化,即
Q
Q
Q 会变成正交矩阵(这个过程也叫做正交变换
,相似变换一种特殊情况).
1.2 使用特征分解求矩阵的逆
若矩阵
A
A
A 可被特征分解并特征值中不含零,则矩阵
A
A
A 为非奇异矩阵,且其逆矩阵可以由下式给出
A
−
1
=
Q
Λ
−
1
Q
−
1
\mathbf { A } ^ { - 1 } = \mathbf { Q } \mathbf { \Lambda } ^ { - 1 } \mathbf { Q } ^ { - 1 }
A−1=QΛ−1Q−1
如果,
Q
Q
Q 单位化过,那么
Q
−
1
=
Q
T
Q^{-1}=Q^T
Q−1=QT.
1.3 实对称矩阵一定可以对角化
任意的
N
×
N
N×N
N×N 实对称矩阵都有
N
N
N 个线性无关的特征向量,并且这些特征向量都可以正交单位化而得到一组正交且模为 1 的向量。故实对称矩阵
A
A
A 可被分解成
A
=
Q
Λ
Q
−
1
=
Q
Λ
Q
T
\mathbf { A } = \mathbf { Q } \mathbf { \Lambda } \mathbf { Q } ^ { - 1 } = \mathbf { Q } \mathbf { \Lambda } \mathbf { Q } ^ {T}
A=QΛQ−1=QΛQT
2、对角分解
任何一个矩阵
一定和约当矩阵相似,即存在可逆矩阵
P
P
P 使得
P
−
1
A
P
=
J
P^{-1}AP=J
P−1AP=J,对于一个实对称矩阵
,一定存在可逆矩阵
P
P
P 使得
P
−
1
A
P
=
Λ
P^{-1}AP=\Lambda
P−1AP=Λ,对这个结论进行推广,正规矩阵
一定可以对角化,即存在酉矩阵
U
U
U 使得
U
H
A
U
=
Λ
U^HAU= {\Lambda}
UHAU=Λ
其中,
Λ
\Lambda
Λ 的对角线为
A
A
A 的特征值.
设
A
A
A 是
n
n
n 阶正规矩阵,其特征值为
λ
1
,
λ
2
,
.
.
.
,
λ
n
\lambda_1, \lambda_2, ..., \lambda_n
λ1,λ2,...,λn,则
- A A A 是厄米特矩阵的充要条件是: A A A 的特征值全是实数
- A A A 是反厄米特矩阵的充要条件是: A A A 的特征值为零或纯虚数
- A A A 是酉矩阵的充要条件是: A A A 的每个特征值 λ i \lambda_i λi 的模 ∣ λ i ∣ = 1 | \lambda_i |=1 ∣λi∣=1
3、三角分解
当一个矩阵呈三角形时,求逆、求行列式、求解线性方程组等都很方便.
设矩阵
A
∈
C
n
×
n
A \in C^{n \times n}
A∈Cn×n,如果存在下三角矩阵
L
∈
C
n
×
n
L \in C^{n \times n}
L∈Cn×n 和上三角矩阵
R
∈
C
n
×
n
R \in C^{n \times n}
R∈Cn×n,(有时也使用
U
U
U 表示
R
R
R),使得
A
=
L
R
A=LR
A=LR
则称
A
A
A 可以作三角分解.
1)对于可逆矩阵
A
∈
C
n
×
n
A \in C^{n \times n}
A∈Cn×n,
A
A
A 可以做三角分解的充要条件是
A
A
A 的所有顺序主子式
不为0.
因为矩阵
A
A
A 是可逆矩阵,所以分解得到下三角矩阵
L
L
L 和 上三角矩阵
R
R
R 都是可逆的.
2)对于不可逆矩阵
A
∈
C
n
×
n
A \in C^{n \times n}
A∈Cn×n,即如果
A
A
A 的前
r
r
r 个顺序主子式
不为0,即
A
A
A 的秩
为
r
r
r,则
A
A
A 可以做三角分解.
对
A
r
A_r
Ar 进行三角分解,得
A
r
=
L
r
R
r
A_r=L_rR_r
Ar=LrRr,可以推出
A
=
[
A
r
A
12
A
21
A
22
]
=
[
L
r
0
B
L
r
E
n
−
r
]
[
R
r
L
r
−
1
A
12
0
0
]
A=\begin{bmatrix} A_r& A_{12}\\ A_{21} & A_{22} \end{bmatrix}=\begin{bmatrix} L_r& 0\\ BL_r& E_{n-r} \end{bmatrix}\begin{bmatrix} R_r& L_r^{-1}A12\\ 0& 0 \end{bmatrix}
A=[ArA21A12A22]=[LrBLr0En−r][Rr0Lr−1A120]
显然,左三角矩阵是非奇异矩阵(由分块矩阵行列式得),而右三角矩阵是奇异矩阵.
唯一的三角分解
令
D
D
D 为对角线都不是0的对角矩阵,则
A
=
L
R
=
(
L
D
)
(
D
−
1
R
)
A=LR=(LD)(D^{-1}R)
A=LR=(LD)(D−1R)
而
D
D
D 有无穷多个,所以就有无穷多个分解. 为了得到唯一的三角分解,需要对三角矩阵进行一些限制:
1)Doolittle分解:
L
L
L 是对角线元素为1的下三角矩阵(单位上三角矩阵
),
R
R
R 为上三角矩阵
2)Crout分解:
L
L
L 为上三角矩阵,
R
R
R 是对角线元素为1的下三角矩阵(单位上三角矩阵
)
3)LDR分解:
L
,
D
,
R
L,D,R
L,D,R 分别为单位下三角矩阵、对角矩阵、单位上三角矩阵
3.1 LU分解
对于方矩
A
A
A,
A
A
A 的 LU 分解是将它分解成一个下三角矩阵
L
L
L 与上三角矩阵
U
U
U 的乘积,也就是
A
=
L
U
A=LU
A=LU
并不是每个可逆方阵
都有 LU 分解。例如,从下式可知
a
11
=
l
11
u
11
a_{11}=l_{11}u_{11}
a11=l11u11,若
a
11
=
0
a_{11}=0
a11=0,则
l
11
l_{11}
l11 或
u
11
u_{11}
u11 等于 0,故
L
L
L 或
U
U
U 是不可逆矩阵,
A
A
A 必须也是不可逆矩阵。然而,存在着可逆矩阵
A
A
A 满足
a
11
=
0
a_{11}=0
a11=0,这些
A
A
A 就是没有 LU 分解的例子
A
=
[
a
11
a
12
a
13
a
21
a
22
a
23
a
31
a
32
a
33
]
=
[
l
11
0
0
l
21
l
22
0
l
31
l
32
l
33
]
[
u
11
u
12
u
13
0
u
22
u
23
0
0
u
33
]
A = \left[ \begin{array} { l l l } { a _ { 11 } } & { a _ { 12 } } & { a _ { 13 } } \\ { a _ { 21 } } & { a _ { 22 } } & { a _ { 23 } } \\ { a _ { 31 } } & { a _ { 32 } } & { a _ { 33 } } \end{array} \right] = \left[ \begin{array} { c c c } { l _ { 11 } } & { 0 } & { 0 } \\ { l _ { 21 } } & { l _ { 22 } } & { 0 } \\ { l _ { 31 } } & { l _ { 32 } } & { l _ { 33 } } \end{array} \right] \left[ \begin{array} { c c c } { u _ { 11 } } & { u _ { 12 } } & { u _ { 13 } } \\ { 0 } & { u _ { 22 } } & { u _ { 23 } } \\ { 0 } & { 0 } & { u _ { 33 } } \end{array} \right]
A=
a11a21a31a12a22a32a13a23a33
=
l11l21l310l22l3200l33
u1100u12u220u13u23u33
该问题可借由排列
A
A
A 的各列顺序来解决,最终会得到一个
A
A
A 的 PLU 分解.
PLU 分解
方阵 A 的 PLU 分解是将它分解成一个置换矩阵
P
P
P、一个下三角矩阵
L
L
L 与上三角矩阵
U
U
U 的乘积,也就是
A
=
P
L
U
A=PLU
A=PLU
所有的方阵都可以写成 PLU 分解的形式,由于左乘排列矩阵
P
−
1
P^{-1}
P−1是在交换列的顺序,所以由
P
−
1
A
=
L
U
P^{-1}A=LU
P−1A=LU 推得适当的交换
A
A
A 的行的顺序,即可将
A
A
A 做 LU 分解
LU分解的应用
- 用于计算行列式,|A|=|L||R|
- 求解线性方程组,使用替代法求解
- 求逆矩阵
3.2 Cholesky分解
如果
A
∈
C
n
×
n
A \in C^{n \times n}
A∈Cn×n 是正定
的厄米特矩阵
,则存在下三角矩阵
G
G
G 使得
A
=
G
G
H
A=GG^H
A=GGH
此时的
G
G
G 矩阵是一个下三角矩阵且所有对角元素均为正实数
当矩阵
A
A
A 是一个半正定的Hermite矩阵
,若允许
L
L
L 的对角线元素为零,则
A
{A}
A 也存在上述形式的分解
3.2.1 LDL分解
经典Cholesky分解的一个变形是LDL分解,即
A
=
L
D
L
∗
\mathbf { A } = \mathbf { L D L } ^ { * }
A=LDL∗
其中,
L
\mathbf {L}
L 是一个单位下三角矩阵
,
D
\mathbf {D}
D 是一个对角矩阵,LDL分解与经典Cholesky分解的关系如下:
A
=
L
D
L
∗
=
L
D
1
2
(
D
1
2
)
∗
L
∗
=
L
D
1
2
(
L
D
1
2
)
∗
\mathbf { A } = \mathbf { L D L } ^ { * } = \mathbf { L D } ^ { \frac { 1 } { 2 } } \left( \mathbf { D } ^ { \frac { 1 } { 2 } } \right) ^ { * } \mathbf { L } ^ { * } = \mathbf { L D } ^ { \frac { 1 } { 2 } } \left( \mathbf { L } \mathbf { D } ^ { \frac { 1 } { 2 } } \right) ^ { * }
A=LDL∗=LD21(D21)∗L∗=LD21(LD21)∗
LDL变形如果得以有效运行,构造及使用时所需求的空间及计算的复杂性与经典Cholesky分解是相同的,但是可避免提取平方根.
某些不存在Cholesky分解的不定矩阵
,也可以运行LDL分解,此时矩阵
D
\mathbf {D}
D 中会出现负数元素
。因此人们更倾向于使用LDL分解。对于实数矩阵,该种分解的形式可被改写成
A
=
L
D
L
T
\mathbf { A } = \mathbf { L D L } ^ { \mathrm { T } }
A=LDLT
此形式通常称为LDLT分解
。注意,它与实对称矩阵的特征分解密切相关,因为对于实对称矩阵,存在特征分解
A
=
Q
Λ
Q
T
\mathbf {A} =\mathbf {Q\Lambda Q} ^{\mathbf {T} }
A=QΛQT. 区别是
L
\mathbf {L}
L 是下三角矩阵,而
Q
\mathbf {Q}
Q 是正交矩阵.
3.2.2 应用
1)线性方程求解
在求解最小二乘
A
x
=
b
Ax=b
Ax=b 时,因为
A
A
A 是超定矩阵,所以先要转换成正定的厄米特矩阵才能使用Cholesky分解,即
A
T
A
x
=
A
T
b
A^TAx=A^Tb
ATAx=ATb. 然后对
A
T
A
A^TA
ATA 进行经典的Cholesky分解或者LDLT分解(可避免开根运算),最后使用回代的方式求解.
Cholesky分解在求解线性方程组中的效率约两倍于LU分解
2)矩阵求逆
若欲对Hermite矩阵直接求逆,可以通过Cholesky分解,类似求解线性方程组一般求出逆矩阵,这需要
n
3
n^{3}
n3次运算(
1
2
n
3
\frac{1}{2}n^{3}
21n3次乘法运算).
注意,非Hermite矩阵
B
\mathbf {B}
B 也可以通过下例性质求逆,因为其中
B
B
∗
\mathbf {BB} ^{*}
BB∗ 总是Hermite矩阵︰
B
−
1
=
B
∗
(
B
B
∗
)
−
1
\mathbf { B } ^ { - 1 } = \mathbf { B } ^ { * } \left( \mathbf { B B } ^ { * } \right) ^ { - 1 }
B−1=B∗(BB∗)−1
4、QR分解
分解成酉矩阵 Q Q Q 和一个上三角矩阵 R R R
5、SVD分解
任何一个矩阵(不限方阵)都可以实现SVD分解
参考《矩阵分析》,为什么A=UDV^T
中的V每一列对应一个特征值的特征向量(P74)