本文是对《机器学习数学基础》第2章2.3.3节矩阵LU分解的拓展。
判断是否可LU分解
并非所有矩阵都可以实现LU分解。
定理1: 若 n n n 阶可逆矩阵 A \pmb{A} A 可以进行LU分解,则 A \pmb{A} A 的 k k k 阶顺序主子阵(leading principal submatrix) A k \pmb{A}_k Ak 都是可逆的 [ 1 ] ^{[1]} [1]。
证明
将 A = L U \pmb{A}=\pmb{LU} A=LU 用分块矩阵表示:
A = L U = [ L 11 0 L 21 L 22 ] [ U 11 U 12 0 U 22 ] = [ L 11 U 11 L 11 U 12 L 21 U 11 L 21 U 12 + L 22 U 22 ] \pmb{A}=\pmb{LU}=\begin{bmatrix}\pmb{L}{11}&0\\\pmb{L}{21}&\pmb{L}{22}\end{bmatrix}\begin{bmatrix}\pmb{U}{11}&\pmb{U}{12}\\0&\pmb{U}{22}\end{bmatrix}=\begin{bmatrix}\pmb{L}{11}\pmb{U}{11}&\pmb{L}{11}\pmb{U}{12}\\\pmb{L}{21}\pmb{U}{11}&\pmb{L}{21}\pmb{U}{12}+\pmb{L}{22}\pmb{U}{22}\end{bmatrix} A=LU=[L11L210L22][U110U12U22]=[L11U11L21U11L11U12L21U12+L22U22]
其中 L 11 、 U 11 \pmb{L}{11}、\pmb{U}{11} L11、U11 是 k × k k\times k k×k 分块矩阵。
因为 L \pmb{L} L 是单位下三角矩阵,且主对角线元素都是 1 1 1 ,则其分块矩阵 L 11 \pmb{L}{11} L11 亦为三角矩阵,且主对角线元素非零。同理, U 11 \pmb{U}{11} U11 亦然。
所以 L 11 \pmb{L}{11} L11 和 U 11 \pmb{U}{11} U11 可逆,则 A k = L 11 U 11 \pmb{A}k=\pmb{L}{11}\pmb{U}_{11} Ak=L11U11 可以。
证毕。
例 : A = [ 3 − 1 2 6 − 1 5 − 9 7 3 ] \pmb{A}=\begin{bmatrix}3&-1&2\\6&-1&5\\-9&7&3\end{bmatrix} A= 36−9−1−17253 的顺序主子阵依次为:
A 1 = [ 3 ] = [ 1 ] [ 3 ] A 2 = [ 3 − 1 6 − 1 ] = [ 1 0 2 1 ] [ 3 − 1 0 1 ] A 3 = A = L U \begin{split}\pmb{A}_1&=[3]=[1][3]\\\pmb{A}_2&=\begin{bmatrix}3&-1\\6&-1\end{bmatrix}=\begin{bmatrix}1&0\\2&1\end{bmatrix}\begin{bmatrix}3&-1\\0&1\end{bmatrix}\\\pmb{A}_3&=\pmb{A}=\pmb{LU}\end{split} A1A2A3=[3]=[1][3]=[36−1−1]=[1201][30−11]=A=LU
定理2: (定理1的逆定理)若矩阵 A \pmb{A} A 的所有顺序主子阵 A k \pmb{A}_k Ak 都可逆,则该矩阵存在LU分解。
证明(用归纳法)
k = 1 k=1 k=1 , A 1 = [ a 11 ] \pmb{A}1=[a{11}] A1=[a11] 可逆,则 a 11 ≠ 0 a_{11}\ne 0 a11=0 ,所以有: A 1 = [ 1 ] [ a 11 ] \pmb{A}1=[1][a{11}] A1=[1][a11] ,即为LU分解。
设 k k k 阶顺序主子阵 A k \pmb{A}_k Ak 可逆,且可LU分解, A k = L k U k \pmb{A}_k=\pmb{L}_k\pmb{U}_k Ak=LkUk 。
k + 1 k+1 k+1 阶顺序主子阵 A k + 1 \pmb{A}_{k+1} Ak+1 可以表示为:
A k + 1 = [ A k b c T d ] \pmb{A}_{k+1}=\begin{bmatrix}\pmb{A}_k&\pmb{b}\\\pmb{c}^T&d\end{bmatrix} Ak+1=[AkcTbd]
其中 b 、 c \pmb{b}、\pmb{c} b、c 是 k k k 维向量, d d d 是标量。则上式可以进一步写成:
A k + 1 = [ A k b c T d ] = [ L k 0 x T 1 ] [ U k y 0 T z ] \pmb{A}_{k+1}=\begin{bmatrix}\pmb{A}_k&\pmb{b}\\\pmb{c}^T&d\end{bmatrix}=\begin{bmatrix}\pmb{L}_k&\pmb{0}\\\pmb{x}^T&1\end{bmatrix}\begin{bmatrix}\pmb{U}_k&\pmb{y}\\\pmb{0}^T&z\end{bmatrix} Ak+1=[AkcTbd]=[LkxT01][Uk0Tyz]
通过对应关系,可知:
b = L k y , c T = x T U k , d = x T y + z \pmb{b}=\pmb{L}_k\pmb{y},\pmb{c}^T=\pmb{x}^T\pmb{U}_k,d=\pmb{x}^T\pmb{y}+z b=Lky,cT=xTUk,d=xTy+z
解得:
y = L k − 1 b , x T = c T U k − 1 , z = d − x T y = d − c T ( U k − 1 L k − 1 ) b = d − c T A − 1 b \pmb{y}=\pmb{L}_k^{-1}\pmb{b},\pmb{x}^T=\pmb{c}^T\pmb{U}_k^{-1},z=d-\pmb{x}^T\pmb{y}=d-\pmb{c}^T(\pmb{U}_k^{-1}\pmb{L}_k^{-1})\pmb{b}=d-\pmb{c}^T\pmb{A}^{-1}\pmb{b} y=Lk−1b,xT=cTUk−1,z=d−xTy=d−cT(Uk−1Lk−1)b=d−cTA−1b
所以: A k + 1 = L k + 1 U k + 1 \pmb{A}{k+1}=\pmb{L}{k+1}\pmb{U}_{k+1} Ak+1=Lk+1Uk+1
其中 L k + 1 = [ L k 0 c T U k − 1 1 ] , U k + 1 = [ U k y 0 T d − c T A − 1 b ] \pmb{L}_{k+1}=\begin{bmatrix}\pmb{L}_k&\pmb{0}\\\pmb{c}^T\pmb{U}k^{-1}&1\end{bmatrix},\pmb{U}{k+1}=\begin{bmatrix}\pmb{U}_k&\pmb{y}\\\pmb{0}^T&d-\pmb{c}^T\pmb{A}^{-1}\pmb{b}\end{bmatrix} Lk+1=[LkcTUk−101],Uk+1=[Uk0Tyd−cTA−1b]
因为 A k + 1 \pmb{A}{k+1} Ak+1 和 L k + 1 \pmb{L}{k+1} Lk+1 可逆,所以 U k + 1 \pmb{U}{k+1} Uk+1 可逆,则 d − c T A − 1 b ≠ 0 d-\pmb{c}^T\pmb{A}^{-1}\pmb{b}\ne0 d−cTA−1b=0 。即 A k + 1 \pmb{A}{k+1} Ak+1 可以分解为 L k + 1 U k + 1 \pmb{L}{k+1}\pmb{U}{k+1} Lk+1Uk+1 。
综上,定理得证。
LU分解的唯一性
对于 A = L U \pmb{A}=\pmb{LU} A=LU 而言, L \pmb{L} L 是单位下三角矩阵,主对角线元素为 1 1 1 。对于 U \pmb{U} U ,以 3 × 3 3\times 3 3×3 为例,可以转化为:
U = [ u 11 u 12 u 13 0 u 22 u 23 0 0 u 33 ] = [ u 11 0 0 0 u 22 0 0 0 u 33 ] [ 1 u 12 u 11 u 13 u 11 0 1 u 23 u 22 0 0 1 ] = D U ′ \pmb{U}=\begin{bmatrix}u_{11}&u_{12}&u_{13}\\0&u_{22}&u_{23}\\0&0&u_{33}\end{bmatrix}=\begin{bmatrix}u_{11}&0&0\\0&u_{22}&0\\0&0&u_{33}\end{bmatrix}\begin{bmatrix}1&\frac{u_{12}}{u_{11}}&\frac{u_{13}}{u_{11}}\\0&1&\frac{u_{23}}{u_{22}}\\0&0&1\end{bmatrix}=\pmb{D}\pmb{U}' U= u1100u12u220u13u23u33 = u11000u22000u33 100u11u1210u11u13u22u231 =DU′
所以: A = L D U ′ \pmb{A}=\pmb{LDU}' A=LDU′
假设 A = L 1 D 1 U 1 ′ \pmb{A}=\pmb{L}_1\pmb{D}_1\pmb{U}_1' A=L1D1U1′ , A = L 2 D 2 U 2 ′ \pmb{A}=\pmb{L}_2\pmb{D}_2\pmb{U}_2' A=L2D2U2′ ,则:
L 1 D 1 U 1 ′ = L 2 D 2 U 2 ′ \pmb{L}_1\pmb{D}_1\pmb{U}_1'=\pmb{L}_2\pmb{D}_2\pmb{U}_2' L1D1U1′=L2D2U2′
由因为 L i \pmb{L}_i Li 和 U i ′ \pmb{U}'_i Ui′ 都可逆,所以:
L 1 − 1 L 1 D 1 U 1 ′ U 2 ′ − 1 = L 1 − 1 L 2 D 2 U 2 ′ U 2 ′ − 1 D 1 U 1 ′ U 2 ′ − 1 = L 1 − 1 L 2 D 2 \begin{split}\pmb{L}_1^{-1}\pmb{L}_1\pmb{D}_1\pmb{U}_1'\pmb{U}_2'^{-1}&=\pmb{L}_1^{-1}\pmb{L}_2\pmb{D}_2\pmb{U}_2'\pmb{U}_2'^{-1}\\\pmb{D}_1\pmb{U}'_1\pmb{U}_2'^{-1}&=\pmb{L}_1^{-1}\pmb{L}_2\pmb{D}_2\end{split} L1−1L1D1U1′U2′−1D1U1′U2′−1=L1−1L2D2U2′U2′−1=L1−1L2D2
继续以 3 3 3 阶方阵为例,将上式等号左右分别用矩阵方式展开,得:
[ ( D 1 ) 11 ∗ ∗ 0 ( D 1 ) 22 ∗ 0 0 ( D 1 ) 33 ] = [ ( D 2 ) 11 0 0 ∗ ( D 2 ) 22 0 ∗ ∗ ( D 2 ) 33 ] \begin{bmatrix}(\pmb{D}1){11}&*&*\\0&(\pmb{D}1){22}&*\\0&0&(\pmb{D}1){33}\end{bmatrix}=\begin{bmatrix}(\pmb{D}2){11}&0&0\\*&(\pmb{D}2){22}&0\\*&*&(\pmb{D}2){33}\end{bmatrix} (D1)1100∗(D1)220∗∗(D1)33 = (D2)11∗∗0(D2)22∗00(D2)33
所以: D 1 = D 2 \pmb{D}_1=\pmb{D}_2 D1=D2 ,非主元的值 ∗ = 0 * = 0 ∗=0 ,故 U 1 ′ U 2 ′ − 1 = I , L 1 − 1 L 2 = I \pmb{U}_1'\pmb{U}_2'^{-1}=\pmb{I}, \pmb{L}_1^{-1}\pmb{L}_2=\pmb{I} U1′U2′−1=I,L1−1L2=I
所以: U 1 ′ = U 2 ′ , L 1 = L 2 \pmb{U}_1'=\pmb{U}_2',\pmb{L}_1=\pmb{L}_2 U1′=U2′,L1=L2 ,即 LU 分解具有唯一性。
证毕。
LU分解的应用
求解线性方程组
此应用在《机器学习数学基础》第2章2.3.3节中有详细介绍,请参阅。
计算行列式
利用LU分解可以手工计算 n n n 阶行列式。
∣ A ∣ = ∣ L U ∣ = ∣ L ∣ ∣ U ∣ |\pmb{A}|=|\pmb{LU}|=|\pmb{L}||\pmb{U}| ∣A∣=∣LU∣=∣L∣∣U∣
三角矩阵的行列式等于主对角元乘积。
所以: ∣ L ∣ = 1 |\pmb{L}|=1 ∣L∣=1 ,则:
∣ A ∣ = ∣ U ∣ = ∏ i = 1 n u i i |\pmb{A}|=|\pmb{U}|=\prod_{i=1}^nu_{ii} ∣A∣=∣U∣=i=1∏nuii