📜  数学 |线性方程组的LU分解

📅  最后修改于: 2021-09-27 06:23:13             🧑  作者: Mango

矩阵的LU分解是将给定的方阵分解为两个三角矩阵,一个上三角矩阵和一个下三角矩阵,使得这两个矩阵的乘积给出原始矩阵。它是由艾伦图灵于 1948 年引入的,他还创造了图灵机。

这种将矩阵分解为两个三角矩阵乘积的方法具有多种应用,例如方程组的求解,它本身是许多应用的组成部分,例如在电路中寻找电流和离散动态系统问题的求解;求矩阵的逆并求矩阵的行列式。
基本上,只要可以将要解决的问题建模为矩阵形式,LU 分解方法就会派上用场。转换为矩阵形式并用三角矩阵求解,可以很容易地在求解过程中进行计算。

方阵 A 可以分解为两个方阵 L 和 U,使得 A = LU 其中 U 是对 A 应用高斯消元法形成的上三角矩阵,L 是下三角矩阵,对角元素为等于 1。

对于 A = \begin{bmatrix}   a_{11} & a_{12} & a_{13} \\   a_{21} & a_{22} & a_{23} \\   a_{31} & a_{32} & a_{33}  \end{bmatrix} ,我们有 L = \begin{bmatrix}   1 & 0 & 0 \\   l_{21} & 1 & 0 \\   l_{31} & l_{32} & 1  \end{bmatrix}和 U = \begin{bmatrix}   u_{11} & u_{12} & u_{13} \\   0 & u_{22} & u_{23} \\   0 & 0 & u_{33}  \end{bmatrix} ;使得 A = L U。

\left[\begin{array}{lll} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{array}\right]=\left[\begin{array}{lll} 1 & 0 & 0 \\ l_{21} & 1 & 0 \\ l_{31} & l_{32} & 0 \end{array}\right] *\left[\begin{array}{ccc} u_{11} & u_{12} & u_{13} \\ 0 & u_{22} & u_{23} \\ 0 & 0 & u_{33} \end{array}\right]

这里可以比较和找到l 21 、u 11 等的值。

高斯消元法
根据高斯消元法:

  1. 任何零行都应位于矩阵的底部。
  2. 每行的第一个非零条目应位于前一行的第一个非零条目的右侧。该方法将矩阵缩减为行梯形。

LU分解步骤:

  • 给定一组线性方程,首先将它们转换为矩阵形式 AX = C 其中 A 是系数矩阵,X 是变量矩阵,C 是方程右侧的数字矩阵。
  • 现在,将系数矩阵 A,即从所有给定方程中的变量系数获得的矩阵,使得对于 ‘n’ 个变量,我们有一个 nXn 矩阵,使用高斯消元法将其简化为行梯形。这样得到的矩阵是 U。
  • 要找到 L,我们有两种方法。第一个是将剩余的元素假设为一些人工变量,使用 A = LU 制作方程并求解它们以找到那些人工变量。
    另一种方法是剩下的元素是乘数系数,因此在U矩阵中各自的位置变为零。 (这个方法用文字来理解有点棘手,但在下面的例子中会很清楚)
  • 现在,我们有 A(nXn 系数矩阵)、L(nXn 下三角矩阵)、U(nXn 上三角矩阵)、X(nX1 变量矩阵)和 C(右侧的 nX1 数字矩阵)方程的手边)。
  • 给定的方程组是 AX = C。我们代入 A = L U。因此,我们有 LUX = C。
    我们把 Z = UX,其中 Z 是一个矩阵或人工变量,首先求解 LZ = C,然后求解 UX = Z 以找到 X 或变量的值,这是必需的。

例子:
使用 LU 分解方法求解以下方程组:

     \begin{equation*} x_1 + x_2 + x_3 = 1 \end{equation*} \begin{equation*} 4x_1 + 3x_2 - x_3 = 6  \end{equation*} \begin{equation*} 3x_1 + 5x_2 + 3x_3 = 4 \end{equation*}

解决方案:这里,我们有

一 = \begin{bmatrix}   1 & 1 & 1 \\   4 & 3 & -1 \\   3 & 5 & 3  \end{bmatrix} , X = \begin{bmatrix}   x_1 \\   x_2 \\   x_3  \end{bmatrix}  C = \begin{bmatrix}   1 \\   6 \\   4  \end{bmatrix}使得 AX = C。

现在,我们首先考虑\begin{bmatrix}   1 & 1 & 1 \\   4 & 3 & -1 \\   3 & 5 & 3  \end{bmatrix}并使用高斯消元法将其转换为行梯形形式。

所以,通过做

(1)    \begin{equation*} R_2 \to R_2 - 4R_1  \end{equation*}

(2)    \begin{equation*} R_3 \to R_3 - 3R_1   \end{equation*}

我们得到

\begin{bmatrix}   1 & 1 & 1 \\   4 & 3 & -1 \\   3 & 5 & 3  \end{bmatrix} \sim \begin{bmatrix}  1 & 1 & 1 \\   0 & -1 & -5 \\   0 & 2 & 0  \end{bmatrix}

现在,通过做

(3)    \begin{equation*} R_3 \to R_3 - (-2)R_2 \end{equation*}

我们得到

 \sim \begin{bmatrix}   1 & 1 & 1 \\   0 & -1 & -5 \\   0 & 0 & -10  \end{bmatrix}

(记住始终保持 ‘-‘ 符号之间,将 ‘+’ 符号替换为两个 ‘-‘ 符号)

因此,我们得到 L =  \begin{bmatrix}   1 & 0 & 0 \\   4 & 1 & 0 \\   3 & -2 & 1  \end{bmatrix}和 U =  \begin{bmatrix}   1 & 1 & 1 \\   0 & -1 & -5 \\   0 & 0 & -10  \end{bmatrix}

(注意在 L 矩阵中,  l_{21} = 4 来自(1),  l_{31} = 3 来自 (2) 和 l_{32} = -2 来自 (3))

现在,我们假设 Z  = \begin{bmatrix}   z_1 \\   z_2 \\   z_3   \end{bmatrix}并求解 LZ = C。

 \begin{bmatrix}   1 & 0 & 0 \\   4 & 1 & 0 \\   3 & -2 & 1  \end{bmatrix}  \begin{bmatrix}   z_1 \\   z_2 \\   z_3   \end{bmatrix} = \begin{bmatrix}   1 \\   6 \\   4  \end{bmatrix}

所以,我们有 z_1 = 1 ,  4z_1 + z_2 = 6 ,  3z_1 - 2z_2 + z_3 = 4  .

求解,我们得到 z_1 =  1 ,  z_2 = 2  z_3 = 5 .

现在,我们解决 UX = Z

 \begin{bmatrix}   1 & 1 & 1 \\   0 & -1 & -5 \\   0 & 0 & -10  \end{bmatrix} \begin{bmatrix}   x_1 \\   x_2 \\   x_3  \end{bmatrix} = \begin{bmatrix}   1 \\   2 \\   5  \end{bmatrix}

因此,我们得到 x_1 + x_2 + x_3 = 1  , -x_2 - 5x_3 = 2 , -10x_3 = 5 .

因此,给定线性方程组的解是 x_1 = 1  ,  x_2 = 0.5  ,  x_3 =  -0.5 因此矩阵 X = \begin{bmatrix}   1 \\   0.5 \\   -0.5  \end{bmatrix}

锻炼:
在矩阵的LU分解中

| 2  2 |
| 4  9 |

,如果 U 的对角线元素都是 1,那么 L 的下对角线项 l22 是 (GATE CS 2015)
(一) 4
(乙) 5
(三) 6
(四) 7
对于解决方案,请参阅 https://www.geeksforgeeks.org/gate-gate-cs-2015-set-1-question-28/