矩阵的 LU 分解

每个方阵 \( A \) 都满足平凡恒等式 \( A = I\,A \),其中 \( I \) 是单位矩阵。我们的目标是将 \( A \) 分解为单位下三角矩阵 \( L \) 和上三角矩阵 \( U \) 的乘积:

\( A = L\,U \)。

我们通过对右因子 \( A \) 应用高斯消元法来获得此分解。每个行运算 \( R_m \leftarrow R_m + k\,R_j \) 对应于左乘一个初等矩阵 \( E_k \)。应用完整的消元序列 \( E_1, E_2, \dots, E_p \) 得到

\( E_p \cdots E_2 E_1 \, A = U \),

其中 \( U \) 是所得的上三角矩阵。解出 \( A \):

\( A = \bigl( E_p \cdots E_2 E_1 \bigr)^{-1} U = E_1^{-1} E_2^{-1} \cdots E_p^{-1} \, U \)。

初等矩阵的逆的乘积正好是下三角矩阵 \( L \):

\( L = E_1^{-1} E_2^{-1} \cdots E_p^{-1}. \)

因为每个 \( E_k^{-1} \) 本身也是初等矩阵——通过相反的行运算从单位矩阵获得——所以矩阵 \( L \) 自动是单位下三角矩阵,消元的乘数(符号取反)记录在非对角元素中。因此,经典规则“使元素 \( (m,j) \) 变为零的乘数在 \( L_{mj} \) 中变为 \( -k \)”只是初等矩阵恒等式 \( E_k^{-1} = I - k\,e_m e_j^{T} \) 的重新表述。

这就是 LU 分解有效的原因:它不过是初等矩阵的乘积,经过重新排列,使所有“逆”运算收集到一个因子 \( L \) 中,所有“正向”消元收集到另一个因子 \( U \) 中。

更多关于行运算与初等矩阵的内容。

引言

上面的介绍使用初等矩阵来构建 LU 分解。这里我们从行运算和对 \( I \) 的相应列运算的角度描述同一过程——两种观点是等价的。

每个方阵 \( A \) 都满足平凡恒等式 \( A = I\,A \)。

我们的目标是通过行运算 \( R_m \leftarrow R_m + k\,R_j \)(\( m > j \))将右因子 \( A \) 变换为上三角矩阵 \( U \)。每个这样的行运算对应于左乘一个初等矩阵 \( E \),因此右因子演变为 \( A \to E\,A \)。

为了保持乘积 \( L \cdot U \) 等于 \( A \),我们必须同时对左因子应用逆运算。行运算 \( R_m \leftarrow R_m + k\,R_j \) 的逆是行运算 \( R_m \leftarrow R_m - k\,R_j \),将其从右侧应用于左因子 \( I \) 等价于列运算 \( C_j \leftarrow C_j - k\,C_m \)。

为什么“右边行运算,左边列运算”?

用初等矩阵 \( E^{-1} \) 左乘矩阵执行行运算 \( R_m \leftarrow R_m - kR_j \)。同一个矩阵 \( E^{-1} \) 右乘执行的是列上的转置运算:\( C_j \leftarrow C_j - kC_m \)。索引交换是因为右乘是左乘的(矩阵意义下的)转置: \[ (M E^{-1})^T = (E^{-1})^T M^T \] 因此,右因子上的行运算自然地与左因子上的转置列运算配对——而且因为左因子从 \( I \) 开始,该列运算只是在位置 \( (m, j) \) 插入 \( -k \),从而构建 \( L \)。

换句话说,右因子上的行运算和左因子上的列运算是互逆的,即 \( E^{-1} E = I \)。因为它们是互逆的,每一步的乘积都保持不变。

由于我们从左因子等于 \( I \) 开始,列运算只是在位置 \( (m, j) \) 插入值 \( -k \)——构建下三角矩阵 \( L \)。当右因子变为上三角时,我们有 \( A = L\,U \)。您可以使用在线 LU 矩阵分解计算器验证任何结果。

矩阵的 LU 分解

方阵 \( A \) 的 LU 分解是因子分解 \( A = L\,U \),其中

解释:用于将 \( A \) 的某个元素变为零的每个乘数(符号取反)成为 \( L \) 的元素,而化简后的矩阵是 \( U \)。

高斯消元法:对 \(U\) 的行运算,对 \(L\) 的列运算

要将当前右因子的元素 \( (m, j) \) 变为零,我们应用行运算

\( R_m \leftarrow R_m + k\,R_j \qquad (m > j) \)

为保持乘积不变,我们同时对左因子应用逆列运算:

\( C_j \leftarrow C_j - k\,C_m \)

右因子 — 行运算

\( U \leftarrow E\,U \)

效果:元素 \( (m,j) \) 变为 \( 0 \)。

左因子 — 列运算

\( L \leftarrow L\,E^{-1} \)

效果:元素 \( (m,j) \) 变为 \( -k \)。

为什么这两种运算配对:
对 \( U \) 的行运算(右因子) 对 \( L \) 的列运算(左因子)
\( R_m \leftarrow R_m + k R_j \) \( C_j \leftarrow C_j - k C_m \)
左乘 \( E \) 右乘 \( E^{-1} \)
效果:\( U \) 的元素 \( (m, j) \) 变为 \( 0 \) 效果:\( L \) 的元素 \( (m, j) \) 变为 \( -k \)
两种运算互逆:\( E^{-1} E = I \),因此乘积 \( L\,U = A \) 保持不变。

因为 \( E \cdot E^{-1} = I \),每一步的乘积 \( L \cdot U = A \) 都保持不变。由于我们从 \( L = I \) 开始,每个列运算只是填充 \( L \) 的一个非对角元素,而 \( L \) 的对角元素保持为 \( 1 \)。

实用方法:要将 \( U \) 的元素 \( (m, j) \) 变为零,令 \( L_{mj} = -k \),其中 \( k \) 是行运算中使用的乘数。\( L \) 中的其他元素不变。
捷径。 实际上,您根本不需要通过列运算来计算 \(L\)——您可以直接读出:元素 \( L_{mj} \) 就是 \( -k \),其中 \( k \) 是用于将 \( U_{mj} \) 变为零的乘数。

为什么乘积保持不变

设 \( E \) 是执行 \( R_m \leftarrow R_m + kR_j \) 的初等矩阵。其逆 \( E^{-1} \) 执行 \( R_m \leftarrow R_m - kR_j \)。从 \( A = I \cdot A \) 出发,插入 \( E^{-1}E = I \):

\( A = I \cdot A = (I\,E^{-1})(E\,A) \)

将右因子左乘 \( E \) 执行行运算 \( R_m \leftarrow R_m + kR_j \)。将左因子右乘 \( E^{-1} \) 对 \( L \) 执行逆行运算,由于 \( L \) 是右乘,这等价于列运算 \( C_j \leftarrow C_j - kC_m \)。

因此这两种运算互逆:

\( E \cdot E^{-1} = I \)

所以它们的联合效果使乘积保持不变。这正是每个阶段都保持 \( L^{(k)} U^{(k)} = A \) 的原因。

对每个阶段重复,得到不变链:

\( A = L^{(0)}U^{(0)} = L^{(1)}U^{(1)} = L^{(2)}U^{(2)} = \cdots = L\,U \)

下面每一步都展示对 \( U \) 的行运算和对 \( L \) 的逆列运算,以及更新后的矩阵。

存在条件

可逆矩阵 \( A \) 具有 LU 分解(无行交换)当且仅当其所有顺序主子式均非零。

\( k \) 阶顺序主子式 \( M_k \) 是保留 \( A \) 的前 \( k \) 行和前 \( k \) 列所得子矩阵的行列式。

示例。 对于

\[ A = \begin{bmatrix} 1 & 0 & -2 & 5 \\ 0 & -2 & 1 & 4 \\ 3 & 3 & 1 & -3 \\ 4 & 0 & 1 & 2 \end{bmatrix}, \]

四个顺序主子式为:

\[ M_1 = \det[1] = 1, \]

\[ M_2 = \det\begin{bmatrix} 1 & 0 \\ 0 & -2 \end{bmatrix} = -2, \]

\[ M_3 = \det\begin{bmatrix} 1 & 0 & -2 \\ 0 & -2 & 1 \\ 3 & 3 & 1 \end{bmatrix} = -17, \]

\[ M_4 = \det\begin{bmatrix} 1 & 0 & -2 & 5 \\ 0 & -2 & 1 & 4 \\ 3 & 3 & 1 & -3 \\ 4 & 0 & 1 & 2 \end{bmatrix} = 90. \]

由于所有顺序主子式均非零,\( A \) 具有 LU 分解。(这里不显式计算——本示例的目的是说明存在性检验。)

推广: 对于任何可逆矩阵,存在更一般的分解 \( PA = LU \)(其中 \( P \) 是置换矩阵)。本页关注 \( P = I \)。

示例与解答

例 1 — 2 乘 2 矩阵的 LU 分解

求 \( A = \begin{bmatrix} 1 & -1 \\ 2 & -1 \end{bmatrix} \) 的 LU 分解。

解答

从 \( L^{(0)} = I \)、\( U^{(0)} = A \) 开始:

\[ A = \underbrace{\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}}_{L^{(0)}} \cdot \underbrace{\begin{bmatrix} 1 & -1 \\ 2 & -1 \end{bmatrix}}_{U^{(0)}} \]

步骤 0 的乘积

\[ L^{(0)} U^{(0)} = \begin{bmatrix} 1 & -1 \\ 2 & -1 \end{bmatrix} = A \quad \checkmark \]

阶段 1 — 用乘数 \( k = -2 \) 将 \( U_{21} \) 变为零。

对 \( U^{(0)} \) 的行运算

\( R_2 \leftarrow R_2 + (-2)R_1 \)

对 \( L^{(0)} \) 的逆列运算

\( C_1 \leftarrow C_1 - (-2)C_2 \Rightarrow L_{21} = 2 \)

\(U\) 的更新

\[ \begin{bmatrix} 1 & -1 \\ 2 & -1 \end{bmatrix} \xrightarrow{\;R_2 - 2R_1\;} \begin{bmatrix} 1 & -1 \\ 0 & 1 \end{bmatrix} \]

\(L\) 的更新

\[ \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \xrightarrow{\;C_1 \leftarrow C_1 + 2C_2\;} \begin{bmatrix} 1 & 0 \\ 2 & 1 \end{bmatrix} \]

最终因子:

\[ L = \begin{bmatrix} 1 & 0 \\ 2 & 1 \end{bmatrix}, \qquad U = \begin{bmatrix} 1 & -1 \\ 0 & 1 \end{bmatrix} \]

步骤 1 的乘积(最终)

\[ L\,U = \begin{bmatrix} 1 & 0 \\ 2 & 1 \end{bmatrix} \begin{bmatrix} 1 & -1 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 1 & -1 \\ 2 & -1 \end{bmatrix} = A \quad \checkmark \]

例 2 — 3 乘 3 矩阵的 LU 分解

求 \( A = \begin{bmatrix} -1 & -1 & 2 \\ 2 & 0 & 3 \\ -3 & 2 & -1 \end{bmatrix} \) 的 LU 分解。

解答

从 \( L^{(0)} = I \)、\( U^{(0)} = A \) 开始:

\[ A = \underbrace{\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}}_{L^{(0)}} \cdot \underbrace{\begin{bmatrix} -1 & -1 & 2 \\ 2 & 0 & 3 \\ -3 & 2 & -1 \end{bmatrix}}_{U^{(0)}} \]

步骤 0 的乘积

\[ L^{(0)} U^{(0)} = \begin{bmatrix} -1 & -1 & 2 \\ 2 & 0 & 3 \\ -3 & 2 & -1 \end{bmatrix} = A \quad \checkmark \]

阶段 1 — 将主元下方第 1 列变为零。乘数 \( k = 2 \)(第 2 行)和 \( k = -3 \)(第 3 行)。

对 \( U^{(0)} \) 的行运算

\( R_2 \leftarrow R_2 + 2R_1 \)

\( R_3 \leftarrow R_3 - 3R_1 \)

对 \( L^{(0)} \) 的逆列运算

\( C_1 \leftarrow C_1 - 2C_2 \Rightarrow L_{21} = -2 \)

\( C_1 \leftarrow C_1 - (-3)C_3 \Rightarrow L_{31} = 3 \)

\(U\) 的更新

\[ \begin{bmatrix} -1 & -1 & 2 \\ 2 & 0 & 3 \\ -3 & 2 & -1 \end{bmatrix} \xrightarrow{\;R_2 + 2R_1,\; R_3 - 3R_1\;} \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 5 & -7 \end{bmatrix} \]

\(L\) 的更新

\[ \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \xrightarrow{\;C_1 \leftarrow C_1 - 2C_2,\; C_1 \leftarrow C_1 + 3C_3\;} \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & 0 & 1 \end{bmatrix} \]

阶段 1 后:

\[ L^{(1)} = \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & 0 & 1 \end{bmatrix}, \qquad U^{(1)} = \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 5 & -7 \end{bmatrix} \]

步骤 1 的乘积

\[ L^{(1)} U^{(1)} = \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & 0 & 1 \end{bmatrix} \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 5 & -7 \end{bmatrix} = \begin{bmatrix} -1 & -1 & 2 \\ 2 & 0 & 3 \\ -3 & 2 & -1 \end{bmatrix} = A \quad \checkmark \]

阶段 2 — 用乘数 \( k = \tfrac{5}{2} \) 将 \( U_{32} \) 变为零。

对 \( U^{(1)} \) 的行运算

\( R_3 \leftarrow R_3 + \tfrac{5}{2}R_2 \)

对 \( L^{(1)} \) 的逆列运算

\( C_2 \leftarrow C_2 - \tfrac{5}{2}C_3 \Rightarrow L_{32} = -\tfrac{5}{2} \)

\(U\) 的更新

\[ \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 5 & -7 \end{bmatrix} \xrightarrow{\;R_3 + \tfrac{5}{2}R_2\;} \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 0 & \tfrac{21}{2} \end{bmatrix} \]

\(L\) 的更新

\[ \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & 0 & 1 \end{bmatrix} \xrightarrow{\;C_2 \leftarrow C_2 + \tfrac{5}{2}C_3\;} \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & -\tfrac{5}{2} & 1 \end{bmatrix} \]

最终因子:

\[ L = \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & -\tfrac{5}{2} & 1 \end{bmatrix}, \qquad U = \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 0 & \tfrac{21}{2} \end{bmatrix} \]

步骤 2 的乘积(最终)

\[ L\,U = \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & -\tfrac{5}{2} & 1 \end{bmatrix} \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 0 & \tfrac{21}{2} \end{bmatrix} = \begin{bmatrix} -1 & -1 & 2 \\ 2 & 0 & 3 \\ -3 & 2 & -1 \end{bmatrix} = A \quad \checkmark \]

关键要点。行运算完成后,\( L \) 自动是单位下三角矩阵,每个 \( L_{mj} \) 等于使 \( U_{mj} \) 变为零的乘数的相反数。您不必单独计算 \( L \)——它直接由消元过程写出。

例 3 — 矩阵是否具有 LU 分解?

确定以下哪些可逆矩阵具有 LU 分解:

a) \( \begin{bmatrix} 0 & -1 \\ -1 & 2 \end{bmatrix} \)    b) \( \begin{bmatrix} -1 & -1 & -4 \\ -2 & 0 & -4 \\ 1 & -1 & 2 \end{bmatrix} \)    c) \( \begin{bmatrix} 2 & 2 & 8 & 2 \\ 0 & 2 & 4 & -2 \\ 1 & 0 & 2 & 0 \\ 0 & 4 & -1 & 0 \end{bmatrix} \)

解答

a) \( M_1 = 0 \),\( M_2 = -1 \)。由于 \( M_1 = 0 \),没有 LU 分解——高斯消元甚至无法开始(主元 \( a_{11}=0 \))。

b) \( M_1 = -1,\; M_2 = -2,\; M_3 = -4 \)。全部非零,因此存在 LU 分解:

\( \begin{bmatrix} -1 & -1 & -4 \\ -2 & 0 & -4 \\ 1 & -1 & 2 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ -1 & -1 & 1 \end{bmatrix} \begin{bmatrix} -1 & -1 & -4 \\ 0 & 2 & 4 \\ 0 & 0 & 2 \end{bmatrix} \)

c) \( M_1 = 2,\; M_2 = 4,\; M_3 = 0,\; M_4 = -72 \)。由于 \( M_3 = 0 \),没有 LU 分解。

示例总结

示例 矩阵 \( L \) \( U \)
1 \(2 \times 2\) \( \begin{bmatrix} 1 & 0 \\ 2 & 1 \end{bmatrix} \) \( \begin{bmatrix} 1 & -1 \\ 0 & 1 \end{bmatrix} \)
2 \(3 \times 3\) \( \begin{bmatrix} 1 & 0 & 0 \\ -2 & 1 & 0 \\ 3 & -\tfrac{5}{2} & 1 \end{bmatrix} \) \( \begin{bmatrix} -1 & -1 & 2 \\ 0 & -2 & 7 \\ 0 & 0 & \tfrac{21}{2} \end{bmatrix} \)

习题与答案

求以下矩阵的 LU 分解(如果存在):

  1. a) \( \begin{bmatrix} 3 & -1 \\ -1 & 2 \end{bmatrix} \)
    答案: \[ \begin{bmatrix} 3 & -1 \\ -1 & 2 \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ -\tfrac{1}{3} & 1 \end{bmatrix} \begin{bmatrix} 3 & -1 \\ 0 & \tfrac{5}{3} \end{bmatrix} \]
  2. b) \( \begin{bmatrix} 2 & -1 & -1 \\ 1 & 2 & 0 \\ 2 & -1 & 2 \end{bmatrix} \)
    答案: \[ \begin{bmatrix} 2 & -1 & -1 \\ 1 & 2 & 0 \\ 2 & -1 & 2 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 \\ \tfrac{1}{2} & 1 & 0 \\ 1 & 0 & 1 \end{bmatrix} \begin{bmatrix} 2 & -1 & -1 \\ 0 & \tfrac{5}{2} & \tfrac{1}{2} \\ 0 & 0 & 3 \end{bmatrix} \]
  3. c) \( \begin{bmatrix} -1 & 2 & 0 & 2 \\ 2 & 2 & 0 & -2 \\ 1 & 0 & -2 & 0 \\ 2 & 4 & -1 & 0 \end{bmatrix} \)
    答案: \[ \begin{bmatrix} -1 & 2 & 0 & 2 \\ 2 & 2 & 0 & -2 \\ 1 & 0 & -2 & 0 \\ 2 & 4 & -1 & 0 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ -2 & 1 & 0 & 0 \\ -1 & \tfrac{1}{3} & 1 & 0 \\ -2 & \tfrac{4}{3} & \tfrac{1}{2} & 1 \end{bmatrix} \begin{bmatrix} -1 & 2 & 0 & 2 \\ 0 & 6 & 0 & 2 \\ 0 & 0 & -2 & \tfrac{4}{3} \\ 0 & 0 & 0 & \tfrac{2}{3} \end{bmatrix} \]

更多参考与链接

  1. 增广矩阵的行运算
  2. 行运算与初等矩阵
  3. 在线 LU 矩阵分解计算器
  4. 三角矩阵
  5. 单位矩阵
  6. 方阵的行列式
  7. 逆矩阵问题与解答
  8. 线性代数中心
  9. David C. Lay, Steven R. Lay, Judi J. McDonald – Linear Algebra and its Applications – 5th Edition
  10. Howard Anton and Chris Rorres – Elementary Linear Algebra – 7th Edition