LU分解法解线性方程组
字数 2176 2025-10-26 10:28:42

LU分解法解线性方程组

题目描述
给定一个线性方程组 \(A\mathbf{x} = \mathbf{b}\),其中 \(A\) 是一个 \(n \times n\) 的可逆方阵,\(\mathbf{b}\) 是已知向量。要求使用LU分解法求解未知向量 \(\mathbf{x}\)。LU分解将矩阵 \(A\) 分解为一个下三角矩阵 \(L\) 和一个上三角矩阵 \(U\) 的乘积,即 \(A = LU\),然后通过前向替换和后向替换高效求解。

解题过程

  1. LU分解原理
    • 目标:将 \(A\) 分解为 \(L\)\(U\),其中 \(L\) 是主对角线为1的下三角矩阵,\(U\) 是上三角矩阵。
    • 分解依据:通过高斯消元法(不进行行交换)将 \(A\) 化为上三角矩阵 \(U\),消元过程中的乘数构成 \(L\) 的严格下三角部分。
    • 示例矩阵:

\[ A = \begin{pmatrix} 2 & 1 & -1 \\ -3 & -1 & 2 \\ -2 & 1 & 2 \end{pmatrix} \]

  1. 分解步骤
    • 步骤1:消去第一列
      消去 \(a_{21}\)\(a_{31}\)
      • 乘数 \(l_{21} = \frac{-3}{2} = -1.5\),将第一行乘以 \(-l_{21}\) 加到第二行:

\[ \text{新第二行} = [-3, -1, 2] - (-1.5) \times [2, 1, -1] = [0, 0.5, 0.5] \]

 - 乘数 $ l_{31} = \frac{-2}{2} = -1 $,将第一行乘以 $ -l_{31} $ 加到第三行:  

\[ \text{新第三行} = [-2, 1, 2] - (-1) \times [2, 1, -1] = [0, 2, 1] \]

 此时矩阵变为:  

\[ A^{(1)} = \begin{pmatrix} 2 & 1 & -1 \\ 0 & 0.5 & 0.5 \\ 0 & 2 & 1 \end{pmatrix} \]

  • 步骤2:消去第二列
    消去 \(a_{32}\)
    • 乘数 \(l_{32} = \frac{2}{0.5} = 4\),将第二行乘以 \(-l_{32}\) 加到第三行:

\[ \text{新第三行} = [0, 2, 1] - 4 \times [0, 0.5, 0.5] = [0, 0, -1] \]

 得到上三角矩阵 $ U $:  

\[ U = \begin{pmatrix} 2 & 1 & -1 \\ 0 & 0.5 & 0.5 \\ 0 & 0 & -1 \end{pmatrix} \]

 - 下三角矩阵 $ L $ 由乘数构成:  

\[ L = \begin{pmatrix} 1 & 0 & 0 \\ -1.5 & 1 & 0 \\ -1 & 4 & 1 \end{pmatrix} \]

 验证:$ LU = A $。
  1. 求解线性方程组
    原方程 \(A\mathbf{x} = \mathbf{b}\) 化为 \(LU\mathbf{x} = \mathbf{b}\)。令 \(U\mathbf{x} = \mathbf{y}\),分两步求解:
    • 前向替换(解 \(L\mathbf{y} = \mathbf{b}\)
      假设 \(\mathbf{b} = [8, -11, -3]^T\),解下三角系统:

\[ \begin{cases} y_1 = 8 \\ -1.5y_1 + y_2 = -11 \Rightarrow y_2 = -11 + 1.5 \times 8 = 1 \\ -y_1 + 4y_2 + y_3 = -3 \Rightarrow y_3 = -3 + 8 - 4 \times 1 = 1 \end{cases} \]

 得到 $ \mathbf{y} = [8, 1, 1]^T $。  
  • 后向替换(解 \(U\mathbf{x} = \mathbf{y}\)
    解上三角系统:

\[ \begin{cases} 2x_1 + x_2 - x_3 = 8 \\ 0.5x_2 + 0.5x_3 = 1 \\ -x_3 = 1 \Rightarrow x_3 = -1 \end{cases} \]

 代入第二式: $ 0.5x_2 + 0.5 \times (-1) = 1 \Rightarrow x_2 = 3 $  
 代入第一式: $ 2x_1 + 3 - (-1) = 8 \Rightarrow x_1 = 2 $  
 最终解: $ \mathbf{x} = [2, 3, -1]^T $。
  1. 算法总结
    • LU分解避免了高斯消元中重复处理 \(\mathbf{b}\) 的步骤,适用于多次求解同一系数矩阵 \(A\) 不同 \(\mathbf{b}\) 的问题。
    • 若分解过程中出现主元为0,需结合选主元(如PLU分解)保证稳定性。
LU分解法解线性方程组 题目描述 给定一个线性方程组 \( A\mathbf{x} = \mathbf{b} \),其中 \( A \) 是一个 \( n \times n \) 的可逆方阵,\( \mathbf{b} \) 是已知向量。要求使用LU分解法求解未知向量 \( \mathbf{x} \)。LU分解将矩阵 \( A \) 分解为一个下三角矩阵 \( L \) 和一个上三角矩阵 \( U \) 的乘积,即 \( A = LU \),然后通过前向替换和后向替换高效求解。 解题过程 LU分解原理 目标:将 \( A \) 分解为 \( L \) 和 \( U \),其中 \( L \) 是主对角线为1的下三角矩阵,\( U \) 是上三角矩阵。 分解依据:通过高斯消元法(不进行行交换)将 \( A \) 化为上三角矩阵 \( U \),消元过程中的乘数构成 \( L \) 的严格下三角部分。 示例矩阵: \[ A = \begin{pmatrix} 2 & 1 & -1 \\ -3 & -1 & 2 \\ -2 & 1 & 2 \end{pmatrix} \] 分解步骤 步骤1:消去第一列 消去 \( a_ {21} \) 和 \( a_ {31} \): 乘数 \( l_ {21} = \frac{-3}{2} = -1.5 \),将第一行乘以 \( -l_ {21} \) 加到第二行: \[ \text{新第二行} = [ -3, -1, 2] - (-1.5) \times [ 2, 1, -1] = [ 0, 0.5, 0.5 ] \] 乘数 \( l_ {31} = \frac{-2}{2} = -1 \),将第一行乘以 \( -l_ {31} \) 加到第三行: \[ \text{新第三行} = [ -2, 1, 2] - (-1) \times [ 2, 1, -1] = [ 0, 2, 1 ] \] 此时矩阵变为: \[ A^{(1)} = \begin{pmatrix} 2 & 1 & -1 \\ 0 & 0.5 & 0.5 \\ 0 & 2 & 1 \end{pmatrix} \] 步骤2:消去第二列 消去 \( a_ {32} \): 乘数 \( l_ {32} = \frac{2}{0.5} = 4 \),将第二行乘以 \( -l_ {32} \) 加到第三行: \[ \text{新第三行} = [ 0, 2, 1] - 4 \times [ 0, 0.5, 0.5] = [ 0, 0, -1 ] \] 得到上三角矩阵 \( U \): \[ U = \begin{pmatrix} 2 & 1 & -1 \\ 0 & 0.5 & 0.5 \\ 0 & 0 & -1 \end{pmatrix} \] 下三角矩阵 \( L \) 由乘数构成: \[ L = \begin{pmatrix} 1 & 0 & 0 \\ -1.5 & 1 & 0 \\ -1 & 4 & 1 \end{pmatrix} \] 验证:\( LU = A \)。 求解线性方程组 原方程 \( A\mathbf{x} = \mathbf{b} \) 化为 \( LU\mathbf{x} = \mathbf{b} \)。令 \( U\mathbf{x} = \mathbf{y} \),分两步求解: 前向替换(解 \( L\mathbf{y} = \mathbf{b} \)) 假设 \( \mathbf{b} = [ 8, -11, -3 ]^T \),解下三角系统: \[ \begin{cases} y_ 1 = 8 \\ -1.5y_ 1 + y_ 2 = -11 \Rightarrow y_ 2 = -11 + 1.5 \times 8 = 1 \\ -y_ 1 + 4y_ 2 + y_ 3 = -3 \Rightarrow y_ 3 = -3 + 8 - 4 \times 1 = 1 \end{cases} \] 得到 \( \mathbf{y} = [ 8, 1, 1 ]^T \)。 后向替换(解 \( U\mathbf{x} = \mathbf{y} \)) 解上三角系统: \[ \begin{cases} 2x_ 1 + x_ 2 - x_ 3 = 8 \\ 0.5x_ 2 + 0.5x_ 3 = 1 \\ -x_ 3 = 1 \Rightarrow x_ 3 = -1 \end{cases} \] 代入第二式: \( 0.5x_ 2 + 0.5 \times (-1) = 1 \Rightarrow x_ 2 = 3 \) 代入第一式: \( 2x_ 1 + 3 - (-1) = 8 \Rightarrow x_ 1 = 2 \) 最终解: \( \mathbf{x} = [ 2, 3, -1 ]^T \)。 算法总结 LU分解避免了高斯消元中重复处理 \( \mathbf{b} \) 的步骤,适用于多次求解同一系数矩阵 \( A \) 不同 \( \mathbf{b} \) 的问题。 若分解过程中出现主元为0,需结合选主元(如PLU分解)保证稳定性。