本文介绍了矩阵的三角分解,如LU分解,LDR分解,Cholesky分解等。
为博主在学习过程中,总结或者思考的记录,用于加深印象,不作为知识讲解和科普,如果理解有误还请指出。


文章目录

  • 前言
  • 一、LR(LU)分解,也称Doolittle分解
  • 1. 什么矩阵可以分解
  • 2. 什么情况分解唯一
  • 二、带行变换的LU分解
  • 三、LDR分解
  • 四、Cholesky分解


前言

  对矩阵进行分解能够清晰反应出原矩阵的某些数字特征,在矩阵运算中可以起到化简的作用,其次在一些特定的场合将矩阵分解为合适的形式能够减少运算误差,在数值计算中有很重要的地位。

一、LR(LU)分解,也称Doolittle分解

若矩阵A可以表示为:


A = L·R

其中,L为单位下三角矩阵,R为上三角矩阵,则称A可三角分解(LR分解)。例如:

cholesky分解的意义_线性代数
LR分解可以用于解线性方程组 cholesky分解的意义_矩阵_02,若方阵A有LR分解,即cholesky分解的意义_线性代数_03,令cholesky分解的意义_r语言_04,则方程组等价于:
cholesky分解的意义_矩阵_05
由于L和R的特殊形式,cholesky分解的意义_线性代数_06 很容易利用高斯消元迭代求出y,然后代入cholesky分解的意义_r语言_04,再次迭代求出x。

  • 那么提出两个问题,是否所有矩阵可分解?分解的形式是否唯一?

1. 什么矩阵可以分解

  • 很容易找到矩阵cholesky分解的意义_矩阵_08,此矩阵可逆但是没有三角分解。
    定理1:n阶方阵A具有唯一LR分解的充要条件是A的前 n - 1个顺序主子式不为零。
    其中, cholesky分解的意义_cholesky分解的意义_09 ,第k个顺序主子式cholesky分解的意义_矩阵_10
    易知cholesky分解的意义_cholesky分解的意义_11,那么对A进行行初等变换,把除了第一行以外的所有行的第一个元素全部消除,相当于在A的左边乘以下三角矩阵cholesky分解的意义_cholesky分解的意义_12,其中:cholesky分解的意义_线性代数_13
    此时有:cholesky分解的意义_迭代_14
    接着构造下一个下三角矩阵cholesky分解的意义_r语言_15,将第二列对角线以下的元素全部消除,注意此时的条件cholesky分解的意义_线性代数_16

cholesky分解的意义_cholesky分解的意义_17以此类推,最终可以化简得到:
cholesky分解的意义_r语言_18
cholesky分解的意义_r语言_19。(下三角矩阵的逆仍然为下三角矩阵)

  • 那什么情况下不能分解呢?
    我们看看上面的过程,是不是每一次乘以 cholesky分解的意义_迭代_20 矩阵时,都需要第 cholesky分解的意义_cholesky分解的意义_21 个主对角元素不为0,这样才能作为分母,把该列下面的元素全部通过初等行变换消掉,如果矩阵 cholesky分解的意义_cholesky分解的意义_22 的第 cholesky分解的意义_cholesky分解的意义_21 个主对角元素为0,那么久不能再乘以 cholesky分解的意义_线性代数_24 了,举个例子:
    cholesky分解的意义_cholesky分解的意义_25

2. 什么情况分解唯一

  • 上面也讲了,当顺序主子式不等于0时,具有唯一分解。那么什么情况下不唯一呢?当然是顺序主子式等于0的情况,但是同时要注意上面举例说过如果碰到主子式等于0很可能出现无法继续化简的情况,但是如果恰好碰到该列下面所有元素都为0时,那就不用乘这个cholesky分解的意义_线性代数_24了。我们举例说明:
    cholesky分解的意义_矩阵_27
    但是此时有一个问题就是,我可以当作看成第三行没有变,我也可以是将任意倍数的第二行加到第三行,那么此时的cholesky分解的意义_r语言_15既可以是单位阵,也可以是其他下三角矩阵,即cholesky分解的意义_r语言_15不唯一,那么所有cholesky分解的意义_线性代数_24的乘积自然不唯一。
    cholesky分解的意义_矩阵_31

二、带行变换的LU分解

之前说过,如果遇到某次变换后的主对角元素为0那么就不能继续进行变换,但是我们要是将下面的行移上来呢,那主对角元素不就非0了吗?
我们用增广矩阵的形式来描述上述过程:

cholesky分解的意义_迭代_32
整个过程的目的就是将A变成下三角矩阵,由于每次只会将右边的列换到左边,所以cholesky分解的意义_cholesky分解的意义_33一定是上三角阵,P为置换阵(多个初等行变换相乘)。
cholesky分解的意义_矩阵_34

三、LDR分解

若满秩方阵A有LR分解:
cholesky分解的意义_矩阵_35
cholesky分解的意义_线性代数_36也是满秩矩阵,且对焦元素不为0,有:
cholesky分解的意义_cholesky分解的意义_37
从而cholesky分解的意义_矩阵_38,其中L为单位下三角阵,D为对角阵,R为单位上三角阵。
与LR分解对比,我们只需要知道如何分解得到:
cholesky分解的意义_线性代数_39,举例说明:
cholesky分解的意义_r语言_40
实际上就是除以该行的主对角元素,因为对角矩阵只是会缩放当前行(左乘时),将D分解出去相当于提出了一个系数。

四、Cholesky分解

若矩阵A是对称正定矩阵,其顺序主子式cholesky分解的意义_矩阵_41,所以A具有唯一的LDR分解,即cholesky分解的意义_矩阵_38,其中D为对角阵:
cholesky分解的意义_矩阵_43
由于A是对称矩阵,则有cholesky分解的意义_迭代_44,同时LDR分解是唯一的,说明:cholesky分解的意义_线性代数_45,A也可以表示为:
cholesky分解的意义_迭代_46
这里需要说明,因为A是正定的,D作为对角阵所有元素都是大于零的 (理由我也讲不清楚,但是D的子行列式(cholesky分解的意义_迭代_47)是等于A对应的顺序主子式cholesky分解的意义_r语言_48的),所以 cholesky分解的意义_迭代_49 相当于所有元素cholesky分解的意义_cholesky分解的意义_50开方求得。
举例:cholesky分解的意义_迭代_51
解释一下,这里对A同时进行行和列的变换,因为A是对称矩阵,那么行怎么化简消除,列也应该怎么化简消除,所以两边是转置的关系,又因为总是消除下面的行,消除右边的列,所以P是下三角矩阵,最后的G也是下三角矩阵。