线性方程组求解:LU, QR, SVD and LDLT
线性方程组一般有如下形式,已知矩阵 \(\boldsymbol{A}\) 和 \(\boldsymbol{b}\),求解 \(\boldsymbol{x}\) 的值:
求解线性方程组,常用的方法包括 直接解法(一般是对 \(\boldsymbol{A}\) 进行矩阵分解)和 迭代法。下面介绍几种线性方程组的 直接解法 求解方法,包括 LU,QR,SVD,以及 LDLT 等。
1. LU 分解法
简单来讲,假定能够把矩阵 \(\boldsymbol{A}\) 写成上三角矩阵和下三角矩阵相乘的形式
其中,\(\boldsymbol{L}\) 为下三角矩阵(Lower triangular matrice),\(\boldsymbol{U}\) 为上三角矩阵(Upper triangular matrice)。
则可以用上述分解来求解线性方程组,即
那么,首先求解向量 \(\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{Q}\) 为正交矩阵;\(\boldsymbol{R}\) 为上三角矩阵。正交矩阵 \(\boldsymbol{Q}\) 具有以下特征,即 \(\boldsymbol{Q}^{T} \cdot \boldsymbol{Q} = \boldsymbol{I}\),因此,上述线性方程组可转化为
最终,通过求解下述方程组,即可得到 \(\boldsymbol{x}\) 的值,即求解
- 优点:
- 缺点:
- 与 LU 分解法的异同:
3. SVD 分解法
首先,只有非方阵才能进行奇异值分解(SVD)。
4. LDLT 分解法
首先,将矩阵 \(\boldsymbol{A}\) 进行 \(\text{LDL}^{T}\) 分解。若对称矩阵 \(\boldsymbol{A}\) 的各阶顺序主子式不为零,则 \(\boldsymbol{A}\) 可以唯一分解为
其中,\(\boldsymbol{L}\) 为下三角矩阵,\(\boldsymbol{D}\) 为度角矩阵。\(\boldsymbol{L}\) 和 \(\boldsymbol{D}\) 的形式如下:
以及
当进行对称线性方程组 \(\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}\) 。我们分别令
以及
则有
- 优点:
- 缺点:
- 与之相关: