线性方程组求解:LU, QR, SVD and LDLT

线性方程组一般有如下形式,已知矩阵 \(\boldsymbol{A}\)\(\boldsymbol{b}\),求解 \(\boldsymbol{x}\) 的值:

\[\boldsymbol{A} \cdot \boldsymbol{x} = \boldsymbol{b} \]

求解线性方程组,常用的方法包括 直接解法(一般是对 \(\boldsymbol{A}\) 进行矩阵分解)和 迭代法。下面介绍几种线性方程组的 直接解法 求解方法,包括 LU,QR,SVD,以及 LDLT 等。


1. LU 分解法

简单来讲,假定能够把矩阵 \(\boldsymbol{A}\) 写成上三角矩阵和下三角矩阵相乘的形式

\[\boldsymbol{A} = \boldsymbol{L} \cdot \boldsymbol{U} \]

其中,\(\boldsymbol{L}\) 为下三角矩阵(Lower triangular matrice),\(\boldsymbol{U}\) 为上三角矩阵(Upper triangular matrice)。

则可以用上述分解来求解线性方程组,即

\[\boldsymbol{A} \cdot \boldsymbol{x} = (\boldsymbol{L} \cdot \boldsymbol{U}) \cdot \boldsymbol{x} = \boldsymbol{L} \cdot (\boldsymbol{U} \cdot \boldsymbol{x}) = \boldsymbol{b} \]

那么,首先求解向量 \(\boldsymbol{y}\),使得

\[\boldsymbol{L} \cdot \boldsymbol{y} = \boldsymbol{b} \]

然后再来求解

\[\boldsymbol{U} \cdot \boldsymbol{x} = \boldsymbol{y} \]

  • 优点:求解一个三角形方程组相当容易。在 LU 分解法求解线性方程组中,分别求解了 \(\boldsymbol{L} \cdot \boldsymbol{y} = \boldsymbol{b}\)\(\boldsymbol{U} \cdot \boldsymbol{x} = \boldsymbol{y}\) 两组三角形方程组,极易求解。
  • 缺点:需要对矩阵 \(\boldsymbol{A}\) 进行 LU 分解,这十分困难。此外,经典的 LU 分解算法中,当方阵 \(\boldsymbol{A}\) 中主元(主对角线上的元素)出现 0 时,上述经典 LU 分解算法将失效。不过可以稍加改动,从而适应上述情况。

2. QR 分解法

\(\boldsymbol{A}\) 分解为正交矩阵和上三角矩阵的乘积,即

\[\boldsymbol{A} = \boldsymbol{Q} \cdot \boldsymbol{R} \]

其中,\(\boldsymbol{Q}\) 为正交矩阵;\(\boldsymbol{R}\) 为上三角矩阵。正交矩阵 \(\boldsymbol{Q}\) 具有以下特征,即 \(\boldsymbol{Q}^{T} \cdot \boldsymbol{Q} = \boldsymbol{I}\),因此,上述线性方程组可转化为

\[\boldsymbol{Q}^{T} \cdot \boldsymbol{A} \cdot \boldsymbol{x} = \boldsymbol{Q}^{T} \cdot \boldsymbol{Q} \cdot \boldsymbol{R} \cdot \boldsymbol{x} = \boldsymbol{R} \cdot \boldsymbol{x} = \boldsymbol{Q}^{T} \cdot \boldsymbol{b} \]

最终,通过求解下述方程组,即可得到 \(\boldsymbol{x}\) 的值,即求解

\[\boldsymbol{R} \cdot \boldsymbol{x} = \boldsymbol{Q}^{T} \cdot \boldsymbol{b} \]

  • 优点:
  • 缺点:
  • 与 LU 分解法的异同:

3. SVD 分解法

首先,只有非方阵才能进行奇异值分解(SVD)。

4. LDLT 分解法

首先,将矩阵 \(\boldsymbol{A}\) 进行 \(\text{LDL}^{T}\) 分解。若对称矩阵 \(\boldsymbol{A}\) 的各阶顺序主子式不为零,则 \(\boldsymbol{A}\) 可以唯一分解为

\[\boldsymbol{A} = \boldsymbol{L} \cdot \boldsymbol{D} \cdot \boldsymbol{L}^{T} \]

其中,\(\boldsymbol{L}\) 为下三角矩阵,\(\boldsymbol{D}\) 为度角矩阵。\(\boldsymbol{L}\)\(\boldsymbol{D}\) 的形式如下:

\[\boldsymbol{L} = \begin{vmatrix}1 & \\ l_{21} &1 \\ l_{31} &l_{32} &1 \\ \cdots &\cdots &\cdots &\ddots \\ l_{n1} &l_{n2} &\cdots &l_{nn-1} &1 \end{vmatrix}\]

以及

\[\boldsymbol{D} = \begin{vmatrix}d_{1}\\ &d_{2} \\ & &d_{3} \\ & & &\ddots \\ & & & &d_{n} \end{vmatrix}\]

当进行对称线性方程组 \(\boldsymbol{A} \boldsymbol{x} = \boldsymbol{b}\) 的求解时,由 \(\boldsymbol{A} = \boldsymbol{L}\boldsymbol{D}\boldsymbol{L}^{T}\) 可得 \((\boldsymbol{L}\boldsymbol{D}\boldsymbol{L}^{T}) \cdot \boldsymbol{x} = \boldsymbol{b}\),即 \(\boldsymbol{L}\boldsymbol{D}\boldsymbol{L}^{T} \boldsymbol{x} = \boldsymbol{b}\) 。我们分别令

\[\boldsymbol{z} = \boldsymbol{L}^{T} \boldsymbol{x} \]

以及

\[\boldsymbol{y} = \boldsymbol{D} \boldsymbol{z} \]

则有

\[\boldsymbol{L} \boldsymbol{y} = \boldsymbol{b} \]

  • 优点:
  • 缺点:
  • 与之相关:
posted @ 2023-04-14 21:30  wghou09  阅读(305)  评论(0编辑  收藏  举报