矩阵的 L U LU LU分解
参考资料:线代启示录 - https://ccjou.wordpress.com/2010/09/01/lu-%e5%88%86%e8%a7%a3/
1. 性质
对于 n n n阶可逆矩阵 A A A,若存在一个 n n n阶下三角矩阵 L L L和一个 n n n阶上三角矩阵 U U U,使得 A = L U A=LU A=LU,则称 A A A具有 L U LU LU分解性质如下:
- l i i = 1 , u i i ≠ 0 l_{ii}=1, u_{ii}\neq 0 lii=1,uii=0, i = 1 , 2 , ⋯ , n i=1,2,\cdots,n i=1,2,⋯,n;
- U U U是对 A A A进行高斯消去法后的结果;
- L L L的主对角线下方的元素 l i j l_{ij} lij记录了消元系数.
[例子]
A = [ 3 − 1 2 6 − 1 5 − 9 7 3 ] A=\begin{bmatrix} 3 & -1 & 2 \\ 6 & -1 & 5 \\ -9 & 7 & 3 \end{bmatrix} A= 36−9−1−17253
使用高斯消去法,得到
A
→
r
2
+
(
−
2
)
r
1
[
3
−
1
2
0
1
1
−
9
7
3
]
→
r
3
+
3
r
1
[
3
−
1
2
0
1
1
0
4
9
]
→
r
3
+
(
−
4
)
r
2
[
3
−
1
2
0
1
1
0
0
5
]
A\xrightarrow{r_2+\red{(-2)}r_1} \begin{bmatrix} 3 & -1 & 2 \\ 0 & 1 & 1 \\ -9 & 7 & 3 \end{bmatrix} \xrightarrow{r_3+\red{3}r_1} \begin{bmatrix} 3 & -1 & 2 \\ 0 & 1 & 1 \\ 0 & 4 & 9 \end{bmatrix} \xrightarrow{r_3+\red{(-4)}r_2} \begin{bmatrix} 3 & -1 & 2 \\ 0 & 1 & 1 \\ 0 & 0 & 5 \end{bmatrix}
Ar2+(−2)r1
30−9−117213
r3+3r1
300−114219
r3+(−4)r2
300−110215
根据上述性质2:
U
U
U是对
A
A
A进行高斯消去法后的结果,所以
U
=
[
3
−
1
2
0
1
1
0
0
5
]
.
U=\begin{bmatrix} 3 & -1 & 2 \\ 0 & 1 & 1 \\ 0 & 0 & 5 \end{bmatrix}.
U=
300−110215
.
根据性质3:
L
L
L的主对角线下方的元素
l
i
j
l_{ij}
lij记录了消元系数,所以
L
=
[
1
0
0
2
1
0
−
3
4
1
]
.
L=\begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ -3 & 4 & 1 \end{bmatrix}.
L=
12−3014001
. 具体来说,有
l
i
j
=
a
i
j
(
k
)
a
k
k
(
k
)
,
i
=
k
+
1
,
k
+
2
,
⋯
,
n
,
j
=
k
,
k
+
1
,
⋯
,
n
.
l_{ij}=\frac{a_{ij}^{(k)}}{a_{kk}^{(k)}}, \quad i=k+1,k+2,\cdots,n, \quad j=k,k+1,\cdots,n.
lij=akk(k)aij(k),i=k+1,k+2,⋯,n,j=k,k+1,⋯,n. 其中
a
i
j
(
k
)
a_{ij}^{(k)}
aij(k)是第
k
k
k步消元后的第
i
i
i行第
j
j
j列元素,
a
k
k
(
k
)
a_{kk}^{(k)}
akk(k)是第
k
k
k步消元后的第
k
k
k行第
k
k
k列元素.
根据上述给出的 L L L和 U U U,可以验证 A = L U A=LU A=LU
2. 存在性
不一定所有可逆矩阵
A
A
A都存在
L
U
LU
LU分解. 若
A
A
A的主元有
0
0
0,则不存在
L
U
LU
LU分解. 一个例子是
A
=
[
0
2
1
3
]
.
A=\begin{bmatrix} 0 & 2 \\ 1 & 3 \end{bmatrix}.
A=[0123].
这样的情况,可以通过行交换来解决. 行交换通过排列矩阵 P P P实现. 这样得到的即为 P A = L U PA=LU PA=LU分解.
3. 可逆矩阵 L U LU LU分解存在的条件
若 A A A可逆,则存在 A = L U A = LU A=LU分解的充分条件是 A A A的所有顺序主子式都不为 0 0 0.
[证明]
用数学归纳法证明.
- n = 1 n=1 n=1时, A 1 = [ a 11 ] A_1=[a_{11}] A1=[a11], A 1 A_1 A1可逆, a 11 ≠ 0 a_{11}\neq 0 a11=0, A 1 = L U A_1=LU A1=LU,其中 L = 1 L=1 L=1, U = [ a 11 ] U=[a_{11}] U=[a11].
- 假设 n = k n=k n=k时, A k A_k Ak可逆, A k = L k U k A_k=L_kU_k Ak=LkUk,其中 L k L_k Lk是单位下三角矩阵(主对角线为 1 1 1), U k U_k Uk是上三角矩阵.
-
n
=
k
+
1
n=k+1
n=k+1时,有$A_{k+1}=\begin{bmatrix}
A_k & b \
c^T & d
\end{bmatrix}
. 将其写成 . 将其写成 .将其写成LU$分解的形式,即
[ A k b c T d ] = [ L k 0 x T 1 ] [ U k y 0 z ] = [ L k U k L k y x T U k x T y + z ] \begin{bmatrix} A_k & b \\ c^T & d \end{bmatrix}=\begin{bmatrix} L_k & 0 \\ x^T & 1 \end{bmatrix}\begin{bmatrix} U_k & y \\ 0 & z \end{bmatrix} =\begin{bmatrix} L_kU_k & L_ky \\ x^TU_k & x^Ty+z \end{bmatrix} [AkcTbd]=[LkxT01][Uk0yz]=[LkUkxTUkLkyxTy+z] 比较元素,有
{ A k = L k U k b = L k y c T = x T U k d = x T y + z ⇒ { y = L k − 1 b x T = c T U k − 1 z = d − c T U k − 1 L k − 1 b = d − c T A k − 1 b . \begin{cases} A_k=L_kU_k \\ b=L_ky \\ c^T=x^TU_k \\ d=x^Ty+z \end{cases} \Rightarrow \begin{cases} y=L_k^{-1}b \\ x^T=c^TU_k^{-1} \\ z=d-c^TU_k^{-1}L_k^{-1}b = d-c^TA_k^{-1}b \end{cases}. ⎩ ⎨ ⎧Ak=LkUkb=LkycT=xTUkd=xTy+z⇒⎩ ⎨ ⎧y=Lk−1bxT=cTUk−1z=d−cTUk−1Lk−1b=d−cTAk−1b. 显然 L k + 1 L_{k+1} Lk+1是单位下三角矩阵,是可逆的. 由于 A k + 1 = L k + 1 U k + 1 A_{k+1}=L_{k+1}U_{k+1} Ak+1=Lk+1Uk+1中, A k + 1 A_{k+1} Ak+1和 L k + 1 L_{k+1} Lk+1都是可逆的,所以 U k + 1 U_{k+1} Uk+1也是可逆的.
4. L U LU LU分解的唯一性
若
A
A
A可逆,且其所有顺序主子式都不为
0
0
0,则
A
A
A的
L
U
LU
LU分解是唯一的.
可将
U
U
U分解为对角阵
D
D
D与上三角矩阵
U
′
U'
U′,即
U
=
D
U
′
U=DU'
U=DU′(其中
D
D
D的对角线元素为
U
U
U的对角线元素),证明其唯一性. (即
L
D
U
LDU
LDU分解).
5. L U LU LU分解的应用
5.1 解线性方程组/计算逆矩阵
对于线性方程组 A x = b Ax=b Ax=b,可以通过 L U LU LU分解来求解.
- A x = b Ax=b Ax=b, A = L U A=LU A=LU,则 L U x = b LUx=b LUx=b,令 U x = y Ux=y Ux=y,则有 L y ⏟ = U x = b L\underbrace{y}_{=Ux}=b L=Ux y=b,即 L y = b Ly=b Ly=b,解得 y y y (前代);
- 解得 y y y后,再解 U x = y Ux=y Ux=y (回代).
对于矩阵
A
A
A,可以通过
L
U
LU
LU分解来求逆矩阵.
求逆矩阵可以转化为求解线性方程组
A
X
=
I
AX=I
AX=I,其中
I
I
I是单位矩阵.
其中
X
=
[
x
1
x
2
⋯
x
n
]
X = \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix}
X=[x1x2⋯xn],
x
i
x_i
xi是
A
A
A的第
i
i
i列. 即求解
n
n
n个线性方程组
A
x
i
=
e
i
Ax_i=e_i
Axi=ei,其中
e
i
e_i
ei是单位向量.
5.2 计算行列式
对于上三角或下三角矩阵,其行列式等于对角线元素的乘积.
所以,对于可逆矩阵
A
A
A,有
det
(
A
)
=
det
(
L
U
)
=
det
(
L
)
det
(
U
)
=
∏
i
=
1
n
l
i
i
∏
i
=
1
n
u
i
i
=
∏
i
=
1
n
u
i
i
(
因为
l
i
i
=
1
)
.
\begin{aligned} \det(A) &= \det(LU) \\ &= \det(L)\det(U) \\ &= \prod_{i=1}^n l_{ii} \prod_{i=1}^n u_{ii} \\ &= \prod_{i=1}^n u_{ii} \quad (\text{因为}l_{ii}=1) \\ \end{aligned}.
det(A)=det(LU)=det(L)det(U)=i=1∏nliii=1∏nuii=i=1∏nuii(因为lii=1).