参考:矩阵分析、维基百科、百度百科
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.
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)
<完>
@leatherwang