数学基础 -- 线性代数之LU分解
LU分解
LU分解(LU Decomposition)是线性代数中非常重要的一种矩阵分解方法。它将一个方阵分解为一个下三角矩阵(L矩阵)和一个上三角矩阵(U矩阵)的乘积。在数值线性代数中,LU分解广泛用于求解线性方程组、计算矩阵的行列式以及求逆矩阵等问题。
LU分解的基本概念
给定一个
n
×
n
n \times n
n×n 的方阵
A
A
A,LU分解将其表示为两个矩阵的乘积:
A
=
L
U
A = LU
A=LU
其中:
- L L L 是一个 n × n n \times n n×n 的下三角矩阵(Lower triangular matrix),即矩阵中的所有元素都位于主对角线及其下方。在标准LU分解中, L L L 的主对角线元素通常为1。
- U U U 是一个 n × n n \times n n×n 的上三角矩阵(Upper triangular matrix),即矩阵中的所有元素都位于主对角线及其上方。
下三角矩阵的行列式
对一个下三角矩阵 L L L,其行列式 det ( L ) \det(L) det(L) 等于主对角线上所有元素的乘积。这是因为在计算行列式时,非对角线上的元素乘积由于是下三角矩阵而为零,最终行列式只取决于主对角线元素的乘积。
假设
L
L
L 是一个
n
×
n
n \times n
n×n 的下三角矩阵,其形式为:
L
=
(
l
11
0
0
⋯
0
l
21
l
22
0
⋯
0
l
31
l
32
l
33
⋯
0
⋮
⋮
⋮
⋱
⋮
l
n
1
l
n
2
l
n
3
⋯
l
n
n
)
L = \begin{pmatrix} l_{11} & 0 & 0 & \cdots & 0 \\ l_{21} & l_{22} & 0 & \cdots & 0 \\ l_{31} & l_{32} & l_{33} & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ l_{n1} & l_{n2} & l_{n3} & \cdots & l_{nn} \end{pmatrix}
L=
l11l21l31⋮ln10l22l32⋮ln200l33⋮ln3⋯⋯⋯⋱⋯000⋮lnn
则
L
L
L 的行列式为:
det
(
L
)
=
l
11
×
l
22
×
⋯
×
l
n
n
\det(L) = l_{11} \times l_{22} \times \cdots \times l_{nn}
det(L)=l11×l22×⋯×lnn
标准LU分解中的 L L L 的行列式为1
在标准LU分解中,我们要求下三角矩阵
L
L
L 的主对角线元素全为1,即
l
11
=
l
22
=
⋯
=
l
n
n
=
1
l_{11} = l_{22} = \dots = l_{nn} = 1
l11=l22=⋯=lnn=1。因此,对于标准LU分解的
L
L
L 矩阵,其行列式为:
det
(
L
)
=
1
×
1
×
⋯
×
1
=
1
\det(L) = 1 \times 1 \times \cdots \times 1 = 1
det(L)=1×1×⋯×1=1
举例说明
假设我们有一个3阶矩阵
A
A
A,经过标准LU分解后得到:
L
=
(
1
0
0
l
21
1
0
l
31
l
32
1
)
L = \begin{pmatrix} 1 & 0 & 0 \\ l_{21} & 1 & 0 \\ l_{31} & l_{32} & 1 \end{pmatrix}
L=
1l21l3101l32001
则
L
L
L 的行列式为:
det
(
L
)
=
1
×
1
×
1
=
1
\det(L) = 1 \times 1 \times 1 = 1
det(L)=1×1×1=1
详细推导示例
为了更清晰地理解,我们可以通过高斯消元的方式来具体推导一个矩阵 A A A 的标准LU分解。
设
A
A
A 是一个
3
×
3
3 \times 3
3×3 的矩阵:
A
=
(
2
−
1
1
4
1
0
−
2
2
5
)
A = \begin{pmatrix} 2 & -1 & 1 \\ 4 & 1 & 0 \\ -2 & 2 & 5 \end{pmatrix}
A=
24−2−112105
我们需要通过一系列的初等行变换将 A A A 转化为上三角矩阵 U U U,并记录下消元过程中的乘数构造矩阵 L L L。
步骤1:消去第二行第一个元素
使用第一行的首元2来消去第二行第一个元素4。乘数为:
L
21
=
4
2
=
2
L_{21} = \frac{4}{2} = 2
L21=24=2
然后更新第二行:
第二行
=
第二行
−
2
×
第一行
\text{第二行} = \text{第二行} - 2 \times \text{第一行}
第二行=第二行−2×第一行
得到:
(
2
−
1
1
0
3
−
2
−
2
2
5
)
\begin{pmatrix} 2 & -1 & 1 \\ 0 & 3 & -2 \\ -2 & 2 & 5 \end{pmatrix}
20−2−1321−25
步骤2:消去第三行第一个元素
使用第一行的首元2来消去第三行第一个元素-2。乘数为:
L
31
=
−
2
2
=
−
1
L_{31} = \frac{-2}{2} = -1
L31=2−2=−1
然后更新第三行:
第三行
=
第三行
+
1
×
第一行
\text{第三行} = \text{第三行} + 1 \times \text{第一行}
第三行=第三行+1×第一行
得到:
(
2
−
1
1
0
3
−
2
0
1
6
)
\begin{pmatrix} 2 & -1 & 1 \\ 0 & 3 & -2 \\ 0 & 1 & 6 \end{pmatrix}
200−1311−26
步骤3:消去第三行第二个元素
使用第二行的次元3来消去第三行第二个元素1。乘数为:
L
32
=
1
3
≈
0.333
L_{32} = \frac{1}{3} \approx 0.333
L32=31≈0.333
然后更新第三行:
第三行
=
第三行
−
1
3
×
第二行
\text{第三行} = \text{第三行} - \frac{1}{3} \times \text{第二行}
第三行=第三行−31×第二行
得到:
(
2
−
1
1
0
3
−
2
0
0
5.333
)
\begin{pmatrix} 2 & -1 & 1 \\ 0 & 3 & -2 \\ 0 & 0 & 5.333 \end{pmatrix}
200−1301−25.333
此时,矩阵已经被转换为上三角矩阵
U
U
U,而消元过程中使用的乘数构成下三角矩阵
L
L
L:
L
=
(
1
0
0
2
1
0
−
1
0.333
1
)
L = \begin{pmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ -1 & 0.333 & 1 \end{pmatrix}
L=
12−1010.333001
U
=
(
2
−
1
1
0
3
−
2
0
0
5.333
)
U = \begin{pmatrix} 2 & -1 & 1 \\ 0 & 3 & -2 \\ 0 & 0 & 5.333 \end{pmatrix}
U=
200−1301−25.333
通过计算,矩阵
L
L
L 的行列式为:
det
(
L
)
=
1
×
1
×
1
=
1
\det(L) = 1 \times 1 \times 1 = 1
det(L)=1×1×1=1
总结
在标准LU分解中,要求下三角矩阵 L L L 的主对角线元素为1,因此其行列式为1。这是由行列式的性质和LU分解的定义直接得出的结论。如果我们不要求主对角线元素为1, L L L 的行列式则等于这些主对角线元素的乘积。