矩阵分析之 实矩阵分解(2)LU分解

  • 前言
  • LU分解(Doolittle杜立特解法)
  • 分解条件
  • 分解方法
  • 分解的唯一性
  • 复杂度
  • PLU分解


前言

之前提到了特征分解和奇异值分解两种矩阵分解的方法,其中特征分解要求n阶方阵且具有n个线性无关的特征向量;SVD分解对矩阵没有要求,但是分解的速度很慢。为了提升分解的效率,可以使用LU分解法。

LU分解(Doolittle杜立特解法)

分解条件

对于可逆方阵LUA解锁器 wow_矩阵分解,可以将其分解为下三角矩阵LUA解锁器 wow_矩阵_02和上三角矩阵LUA解锁器 wow_LUA解锁器 wow_03的乘积
LUA解锁器 wow_线性代数_04
上下三角矩阵对于方程组求解有良好的求解性质,例如:
LUA解锁器 wow_LUA解锁器 wow_05
三角矩阵求解的时间复杂度为LUA解锁器 wow_线性代数_06

分解方法

由于矩阵LUA解锁器 wow_线性代数_07可逆,可通过高斯消元法将LUA解锁器 wow_线性代数_07化为上三角矩阵,例如:
LUA解锁器 wow_LUA解锁器 wow_09
可以看出,LUA解锁器 wow_线性代数_07经过几次行变换后,就化为了上三角矩阵,可记为:
LUA解锁器 wow_LUA解锁器 wow_11
于是,LUA解锁器 wow_线性代数_07就可以写成行变换矩阵乘积的逆与上三角矩阵的乘积了。行变换矩阵的逆还是行变换矩阵,因此行变换矩阵乘积的逆仍然是行变换矩阵,并且是下三角矩阵。

因此,LU分解实际上就是通过初等行变换将矩阵变为上三角矩阵,并将行变换的乘积取逆的过程。

分解的唯一性

如果矩阵LUA解锁器 wow_线性代数_07可以进行LU分解,则可能分解出多种LUA解锁器 wow_矩阵_14矩阵组合;但是如果LUA解锁器 wow_矩阵_15是单位下三角矩阵,或LUA解锁器 wow_矩阵_16是单位上三角矩阵,则LU分解的结果是唯一的。

唯一性的证明可以这么考虑:在高斯消元时,依次将每列在对角线上的元素考虑为主元,那么行变换就是固定的,则矩阵LUA解锁器 wow_矩阵_15就是唯一的。

此外,LUA解锁器 wow_矩阵_14矩阵的对角线元素必然不为零,证明方法也很简单:LUA解锁器 wow_线性代数_07可逆,LUA解锁器 wow_矩阵_20,则LUA解锁器 wow_线性代数_21,则对角线必没有零元素。

复杂度

可以看出,将第一列化为主元列时,需要对每行(n)的每个元素(n)进行操作,n列都要化为主元列,则时间复杂度为LUA解锁器 wow_线性代数_22

PLU分解

上面的示例中,矩阵LUA解锁器 wow_线性代数_07通过行变换进行分解,采用的是高斯消元的思想。然而,如果有这么一个可逆矩阵:
LUA解锁器 wow_算法_24
按照上面所说,LUA解锁器 wow_线性代数_07可逆则可LU分解,然而在高斯消元时,默认第一列的主元值为0,这样就没法通过行增减变换消元了。这时候,需要使用行置换的方法,将第一列的主元换为-2。这就是PLU分解:
LUA解锁器 wow_矩阵_26
其中,P是一个行置换矩阵(也是初等行变换),L是下三角矩阵,U是上三角矩阵。

具体的分解方法与LU分解非常类似,在此就不重复记录了。

PLU分解的稳定性明显优于LU分解,因此在实际中使用LU方法时,往往默认采用PLU矩阵分解