杜立特尔算法:LU分解

2025年3月17日 | 阅读 3 分钟

在本节中,我们将借助杜利特尔算法学习矩阵的 LU 分解。这里 LU 也可以被称为“LU 因式分解”,其中 LU 代表“下三角-上三角”。1938 年,著名数学家 Tadeusz Banachiewicz 提出了 LU 分解。在杜利特尔算法中,我们将在数值分析和线性分析中将矩阵分解为下三角矩阵和上三角矩阵的乘积形式。借助 LU 分解,计算机可以求解线性方程组的方阵。在计算矩阵行列式或求逆矩阵时,这将是关键一步。

假设有一个方阵 A。LU 因式分解可以描述为 A 的因式分解,带有适当的列和/或行的置换或顺序,它将分为两个因子,即由 L 表示的下三角矩阵和由 U 表示的上三角矩阵。因此 A = LU。

Doolittle Algorithm: LU Decomposition

杜利特尔算法

方阵可以很容易地分解为下三角矩阵和上三角矩阵,描述如下:

[A] = [L] [U]

我们还有一种方法可以将 A 分解为 LU 分解,即杜利特尔方法。这种方法允许我们进行分解,而无需进行高斯消元法的麻烦。

假设有一个 n * n 矩阵 A。这里我们将假设这个矩阵也包含 LU 分解,我们将明确地写出 L 和 U 的形式。之后,我们将使用系统的方法,借助 A = LU 所需乘法产生的方程来求解 L 和 U 中的元素。

用于 U 矩阵的项描述如下:

Doolittle Algorithm: LU Decomposition

而用于 L 矩阵的项描述如下:

Doolittle Algorithm: LU Decomposition

LU 分解的例子

示例 1

输入

Doolittle Algorithm: LU Decomposition

输出

Doolittle Algorithm: LU Decomposition

例 2: 在此示例中,我们将借助杜利特尔方法求给定矩阵的 LU 分解。

Doolittle Algorithm: LU Decomposition

解: 根据杜利特尔算法,

A = LU

所以

Doolittle Algorithm: LU Decomposition

以上矩阵意味着

u11 = 8

u12 = -6

u13 = 2

I21u11 = -6 ⇒ I21 * 8 = -6 ⇒ I21 = -3/4

I21u12 + u22 = 7 ⇒ (-3/4) * (-6) + u22 = 7 ⇒ u22 = 5/2

I21u13 + u23 = -4 ⇒ (-3/4) × 2 + u23 = -4 ⇒ u23 = -5/2

l31u11 = 2 ⇒ l31 × 8 = 2 ⇒ l31 = 1 / 4

l31u12 + l32u22 = -4 ⇒ 1/4 × (-6) + l32 × 5/2 = -4 ⇒ l32 = -1

l31u13 + l32u23 + u33 = 3 ⇒ 1/4 × 2 + (-1) × (-5/2) + u33 = 3 ⇒ u33 = 0

A = L * U = LU

Doolittle Algorithm: LU Decomposition

杜利特尔方法

这里我们将描述杜利特尔方法 LU 分解 A 的步骤,当下三角矩阵 L 的对角线元素为单位值时。

步骤:

  1. 首先,我们将创建矩阵 A、B 和 X。其中 A 用于表示增广矩阵,B 用于表示常数,X 用于构成变量向量。
  2. 假设 A = LU,其中 U 用于表示上三角矩阵,L 用于表示下三角矩阵。假设 L 的对角线元素等于 1。
  3. 假设 Ly = B。现在我们将求解 y。
  4. 假设 Ux = y。现在我们将求解变量向量 x。

示例

X1 + X2 + X3= 5

X1 + 2X2 + 2X3 = 6

X1 + 2X2+ 3X3 = 8

解决方案

Doolittle Algorithm: LU Decomposition

假设 A = LU。所以,

Doolittle Algorithm: LU Decomposition

假设 Ly = B

Doolittle Algorithm: LU Decomposition

Y1 = 5

Y1 + Y2 = 6; Y2 = 1

Y1 + Y2 + Y3 = 8; Y3 = 2

Y1 = 5 Y2 = 1 Y3 = 2

假设 Ux = Y

Doolittle Algorithm: LU Decomposition