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 的行列式则等于这些主对角线元素的乘积。