本文学习过程来源是《矩阵分析与应用-张贤达》一书. 可以通过 z-lib 下载.
矩阵分解顾名思义就是通过线性变换把某个已知矩阵分解成多个矩阵, 这多个矩阵之间的关系是怎样的呢?
一般情况下分解为两个或者三个标准型矩阵的乘积. 个别情况是两个标准型矩阵之和.
这里提到的标准型矩阵就是若尔当标准型矩阵.
虽然在 《Introduction to Linear Algebra》 附录中记载着十五种矩阵分解的方法, 但是我们通过矩阵分解后得到的标准型据以及是对单个矩阵还是两个矩阵组成的矩阵束或矩阵对进行分解来划分矩阵的分解类别.
根据矩阵 A A A 分解后的标准型矩阵, 可以分为以下四大类
对角化分解
通过正交变换, 将矩阵 A A A 对角化的
奇异值分解 (SVD) : A = U Σ V H A = U \Sigma V^{\mathrm{H}} A=UΣVH 或 U A V H = Σ U A V^{\mathrm{H}} = \Sigma UAVH=Σ. 式中 U U U 和 V V V 二者为酉矩阵, Σ \Sigma Σ 为对角矩阵. 这也就是针对一般矩阵的对角化分解.
特征值分解 (EVD) : (考研数学线代部分的必备内容) A H A = V Σ V H A^{\mathrm{H}}A=V\Sigma V^{\mathrm{H}} AHA=VΣVH 或 A A H = U Σ U H AA^{\mathrm{H}} = U \Sigma U^{\mathrm{H}} AAH=UΣUH. 针对对称矩阵的对角化分解.
C S \mathrm{CS} CS 分解 : 可以看作正交矩阵分块的同时对角化分解.
三角化分解
将矩阵 A A A 分解成正交矩阵与三角矩阵之积, 或分解为一个上三角矩阵与一个下三角矩阵之积, 主要有三种形式.
C h o l c s k y \mathrm{Cholcsky} Cholcsky 分解 : A = G G T A = GG^{\mathrm{T}} A=GGT, 其中, G G G 为下三角矩阵 (针对对称正定矩阵的三角化分解)
Q R \mathrm{QR} QR 分解 : A = Q R A = QR A=QR 或 Q T A = R Q^{\mathrm{T}}A = R QTA=R, 其中, Q Q Q 是正交矩阵, 而 R R R 是上三角矩阵 (针对一般矩阵的三角化分解)
L U \mathrm{LU} LU 分解 : A = L U A=LU A=LU, 其中, L L L 是单位下三角矩阵, 而 U U U 是上三角矩阵 (针对非奇异矩阵的三角化分解)
三角 - 对角化分解
把矩阵分解为三个标准型矩阵 (两个三角矩阵和一个对角矩阵) 之积, 或分解为两个标准型矩阵 (对角矩阵和上三角矩阵) 之和.
L D M T \mathrm{LDM}^{\mathrm{T}} LDMT 分解 : A = L D M T A = LDM^{\mathrm{T}} A=LDMT, 其中, L L L 和 M M M 为单位下三角矩阵, 而 D D D 为对角矩阵 (针对非对称矩阵的三角 - 对角化分解)
L D L T \mathrm{LDL}^{\mathrm{T}} LDLT 分解 : A = L D L T A = LDL^{\mathrm{T}} A=LDLT (针对对称矩阵的三角 - 对角化分解).
S c h u r \mathrm{Schur} Schur 分解 : Q H A Q = D + N Q^{\mathrm{H}}AQ=D+N QHAQ=D+N, 其中, Q Q Q 是酉矩阵, D D D 是对角矩阵, 而 N N N 是严格上三角矩阵 (针对复矩阵的三角 - 对角化分解).
三对角化分解
H o u s e h o l d e r \mathrm{Householder} Householder 三对角化分解 : H T A H = T H^{\mathrm{T}}AH=T HTAH=T, 其中, H = H 1 H 2 … H n − 2 H = H_1H_2 \dots H_{n-2} H=H1H2…Hn−2 为 H o u s e h o l d e r \mathrm{Householder} Householder 变换之积, 且 T T T 是三对角矩阵.
总之就是有很多种方法来分解矩阵, 所得到的结果也可以有一定的规范性.
矩阵束的分解主要用于求解矩阵束的广义特征值分解 ( G E V D \mathrm{GEVD} GEVD) 问题 A x = λ B x ( x ≠ 0 ) Ax = \lambda Bx (x \neq 0) Ax=λBx(x=0) 的 Q Z \mathrm{QZ} QZ 方法中, 它涉及两个矩阵的同时分解. 这类分解的主要形式是广义 S c h u r \mathrm{Schur} Schur 分解.
S c h u r \mathrm{Schur} Schur 分解 : Q H A Z = T Q^{\mathrm{H}}AZ=T QHAZ=T 和 Q H B Z = S Q^{\mathrm{H}}BZ=S QHBZ=S, 其中, Q Q Q 和 Z Z Z 为酉矩阵, 而 T T T 和 S S S 为上三角矩阵.
实现广义 S c h u r \mathrm{Schur} Schur 分解需要先使用 H e s s e n b e r g \mathrm{Hessenberg} Hessenberg 三对角化分解: Q T A Z = H Q^{\mathrm{T}}AZ=H QTAZ=H 和 Q T B Z = T Q^{\mathrm{T}}BZ=T QTBZ=T, 其中, Q Q Q 和 Z Z Z 为正交矩阵, H H H 为上 H e s s e n b e r g \mathrm{Hessenberg} Hessenberg 矩阵, 而 T T T 是上三角矩阵.
只能说是非常有趣了.
定理 1 : ( C S \mathrm{CS} CS 分解) 若 ( k + j ) × ( k + j ) (k + j) \times (k + j) (k+j)×(k+j) 矩阵
Q = [ Q 11 Q 12 Q 21 Q 22 ] Q = \begin{bmatrix} Q_{11}& Q_{12}\\ Q_{21}& Q_{22} \end{bmatrix} Q=[Q11Q21Q12Q22]
是正交的, 其中, Q 11 Q_{11} Q11 是 k × k k \times k k×k 矩阵, 并且 k ≥ j k \ge j k≥j; 则存在正交矩阵 U 1 , V 1 ∈ R k × k U_1,V_1 \in R^{k \times k} U1,V1∈Rk×k 和正交矩阵 U 2 , V 2 ∈ R j × j U_2,V_2 \in R^{j \times j} U2,V2∈Rj×j 使得
[ U 1 O O U 2 ] [ Q 11 Q 12 Q 21 Q 22 ] [ V 1 O O V 2 ] = [ I k − j O O O C S O − S C ] (1) \begin{bmatrix} U_1& O\\ O& U_2 \end{bmatrix}\begin{bmatrix} Q_{11}& Q_{12}\\ Q_{21}& Q_{22} \end{bmatrix}\begin{bmatrix} V_1& O\\ O& V_2 \end{bmatrix}=\begin{bmatrix} I_{k-j}& O & O\\ O& C & S\\ O& -S& C \end{bmatrix} \tag{1} [U1OOU2][Q11Q21Q12Q22][V1OOV2]=⎣⎡Ik−jOOOC−SOSC⎦⎤(1)
其中
C = d i a g ( c 1 , c 2 , … , c j ) , c i = cos θ i (2) C = \mathrm{diag}(c_1,c_2,\dots,c_j), \quad c_i = \cos \theta_i \tag{2} C=diag(c1,c2,…,cj),ci=cosθi(2)
S = d i a g ( s 1 , s 2 , … , s j ) , s i = sin θ i (3) S = \mathrm{diag}(s_1,s_2,\dots,s_j), \quad s_i = \sin \theta_i \tag{3} S=diag(s1,s2,…,sj),si=sinθi(3)
且 0 ≤ θ 1 ≤ θ 2 ≤ ⋯ ≤ θ j ≤ π / 2 0 \le \theta_1 \le \theta_2 \le \cdots \le \theta_j \le \pi / 2 0≤θ1≤θ2≤⋯≤θj≤π/2.
简而言之就是将一个正交矩阵的各个分块同时对角化.
三角化分解的两种形式
定理 2 : ( C h o l e s k y \mathrm{Cholesky} Cholesky 分解) 如果 A ∈ R n × n A \in R^{n \times n} A∈Rn×n 是对称正定矩阵, 则 C h o l e s k y \mathrm{Cholesky} Cholesky 分解 A = G G T A = GG^{\mathrm{T}} A=GGT 是唯一的, 其中, 下三角矩阵 G ∈ R n × n G \in R^{n \times n} G∈Rn×n 的非零元素由式 g i j = v ( i ) / g j j = v ( i ) / v ( j ) g_{ij} = v(i)/g_{jj} = v(i)/\sqrt{v(j)} gij=v(i)/gjj=v(i)/v(j) 决定.
下三角矩阵 G G G 称为 C h o l e s k y \mathrm{Cholesky} Cholesky 三角. 另外, C h o l e s k y \mathrm{Cholesky} Cholesky 分解也谓之平方根方法, 因为下三角矩阵 G G G 可以视为矩阵 A A A 的 “平方根”.
一个非奇异矩阵 A A A 的逆矩阵 A − 1 A^{-1} A−1 可以通过 C h o l e s k y \mathrm{Cholesky} Cholesky 分解求得, 即有
A − 1 = G − T G − 1 (4) A^{-1} = G^{\mathrm{-T}}G^{-1} \tag{4} A−1=G−TG−1(4)
其中 G − T = ( G − T ) − 1 G^{\mathrm{-T}}= (G^{\mathrm{-T}})^{-1} G−T=(G−T)−1.
在线性代数中这应该是学到的第一个矩阵分解算法了. 该矩阵分解算法的本质就是消元, 需要分解的矩阵 A A A 通过左乘一系列消元矩阵 E 1 , E 2 , ⋯ , E n E_1,E_2,\cdots,E_n E1,E2,⋯,En (统称为 E E E) 得到上三角矩阵 U U U, 式子两边同时左乘 E − 1 E^{-1} E−1 就得到 A = E − 1 U A = E^{-1}U A=E−1U. 这里的 E − 1 E^{-1} E−1 被写作 L L L, 同时它也是下三角矩阵. 那么 L U \mathrm{LU} LU 分解就是如此.
求解线性方程组 L U x = b LUx=b LUx=b, 令 y = U x y = Ux y=Ux.
具体算法如下:
Step 1 : 计算 A = L U A = LU A=LU
Step 2 : 用前向回代法求解下三角矩阵方程 L y = b Ly=b Ly=b
Step 3 : 用后向回代法求解下三角矩阵方程 U x = y Ux=y Ux=y
这个算法推广到线性矩阵方程 A X = B AX=B AX=B 的求解, 其中, A ∈ R n × n A \in R^{n \times n} A∈Rn×n 非奇异, B , X ∈ R n × p B,X \in R^{n \times p} B,X∈Rn×p.
就是拆开一列一列地计算.
L U \mathrm{LU} LU 分解在这里单纯没有意义, 主要目的还是为了求解线性方程组.
定理 3 ( L U \mathrm{LU} LU): 如果 A ∈ R n × n A \in R^{n \times n} A∈Rn×n 非奇异, 并且其 L U \mathrm{LU} LU 分解存在的话, 则 A A A 的 L U \mathrm{LU} LU 分解是唯一的, 且 d e t ( A ) = u 11 u 22 ⋯ u n n \mathrm{det}(A)=u_{11} u_{22} \cdots u_{nn} det(A)=u11u22⋯unn
算法很简单, 就是高斯消元法用消元矩阵表示, 然后再将一系列消元矩阵求它的逆矩阵. 在这一小段的开头已经简单提到.