L4-矩阵的 A=LU 分解
参考
以矩阵形式(通过消元法)求解方程组过程中,使用一系列初等矩阵 将矩阵 变换为上三角矩阵 ,即 。可以将消元矩阵整合为一个整体 ,即
当消元矩阵与目标矩阵 相乘时,实现消元,得到各行的主元形式 ;反过来,如果将消元矩阵所对应的逆矩阵与上三角矩阵 相乘时,则是执行相反的操作,可以将上三角矩阵一步步「还原」为目标矩阵
即 ,如果将(逆序的)消元矩阵的逆矩阵的乘积整合为一个整体 ,即
说明
将一系列消元矩阵的逆矩阵(逆序)相乘整合的矩阵,由于它的形式是下三角矩阵 lower triangular matrix,因此记作 ,它的对角线上的元素都是 1
所以可以将矩阵 分解为 形式,其中:
- 是上三角矩阵 upper triangular matrix
- 是(整合的)消元矩阵的逆矩阵
例如已知目标矩阵
则消元矩阵 与目标矩阵相乘得到上三角矩阵
提示
根据消元矩阵的作用和可逆矩阵的作用(将变换「还原」),可以 直接根据消元矩阵 一步写出其逆矩阵 。
基于消元矩阵 直接写出其逆矩阵
逆矩阵 与上三角矩阵 相乘可以还原回目标矩阵 ,所以它也是下三角矩阵
前提
矩阵 要分解为 形式需要满足一个前提条件,就是消元过程中没有 主元出现
如果在主元位置出现了 则需要使用置换矩阵实现行交换处理,则分解形式就变成
参考以下文章
有时候为了统一(与下三角矩阵 形式对应),会将上三角矩阵 对角线上的主元「提出」来,称作对角矩阵 diagonal matrice,简写为 ,即分解为 形式,这样就可以使得上三角矩阵 的对角线元素都为
对于以上示例中的上三角矩阵 可以分解为 形式
提示
对角矩阵就像是一个「公因式」,因为它对角线上的元素都是由原来上三角矩阵的各主元构成的,有点像「提取公因式」的存在,而其余元素都是
因此矩阵分解也可以写为 ,其中各矩阵的含义:
- 是下三角矩阵
- 是由主元构成的对角矩阵
- 是上三角矩阵(对角线上的元素都为 )
以矩阵形式通过消元法求解方程组过程中,可以得到一些列的初等矩阵,它们的整合(乘积)矩阵 更复杂;而相反,消元矩阵的逆矩阵的整合(逆序乘积)矩阵 形式更简洁,可以由各个 直接写出。
说明
假设对于一个矩阵 的消元矩阵分别如下
相应地,消元矩阵的逆矩阵分别如下
整合得到
比较 和 ,可以看出整合的矩阵 元素的值更复杂,特别是左下角的元素 ;而矩阵 更简单,它的元素都是直接将各消元矩阵(的逆矩阵)的元素写入而得到的,可以清晰地描述了如何从一个简单的矩阵 ,(矩阵 描述了)各行通过哪些变换,可以「还原」为目标矩阵
提示
由于消元过程是从上往下(从第二行开始,到最后一行)进行的,在变换得到每一个主元时,越是位于目标矩阵下方的行,所需要「消去」的元素的数量就越多(让元素的值为 ,以便该列上方的某个元素为主元),进行的变换操作次数就越多
因此将消元矩阵整合后, 越往下的行的数值就越复杂,而第一行是最简单的 ,由于第一行不需要消元即可得到第一个主元。
相反地,由于矩阵 是消元矩阵的逆矩阵的逆序相乘:第一个逆矩阵的操作目的是从最后一行开始「还原」,最后将矩阵 还原为目标矩阵 。
将各消元矩阵的逆矩阵的逆序相乘整合得到的矩阵 形式是相对更简单的,可以看作是「不失真」地整合/反映了消元步骤中各乘数/倍数,更直观地了解到各行如何进行变换。
这就是为何需要将矩阵 分解为 形式,这种形式可以清晰地描述了从一个简单的矩阵 ,各行通过哪些变换 而「还原」为目标矩阵 。
在以矩阵形式通过消元法求解方程组中,如果一次操作是指乘法+减法,即一行中的某个元素乘以一个倍数,然后与另一行相应元素做减法,这个过程算作「一次操作」。
则对于系数矩阵 变换为 所需的步骤(假设原始的目标矩阵 中每个元素都不为 ):
- 从原始的目标矩阵 变换得到具有第一个主元的形式的矩阵,需要 次操作
说明
实际第一步需要 次操作,即 次操作,因为第一行的元素不需要进行操作
- 基于第一步的结果矩阵,再变换得到具有第二个主元的形式的矩阵,需要 次操作
说明
实际这一步需要 次操作,即 次操作,因为第一、二行元素和第一列的元素不需要进行操作
- 依次类推,共需要的操作次数
如果考虑增广矩阵 ,则向量 需要操作次数是
说明
下面求和公式中,各相加的数依此表示目标矩阵从最后一行到第一行获得主元时,该行对应的向量 的元素需要操作的(乘法+减法表示一次)次数
由于 比 高阶,因此消元算法的时间复杂度是 O(n3)
置换矩阵 permutaion matrix,记为 ,该矩阵与目标矩阵相乘,实现对矩阵两行互换的功能。
矩阵 的所有置换矩阵(包括单位矩阵 )共有 6 种,即 阶乘
规律定理
对于 方阵共有 种置换矩阵(包括单位矩阵 ),即 阶乘
- 单位矩阵 不对行互换
- 进行一次行互换
- 交换第一、第二行
- 交换第一、第三行
- 交换第二、第三行
提示
这些置换矩阵的逆矩阵都是其自身
因为根据逆矩阵的作用来考虑(它们的作用是「还原」变换),还原变换需要进行行交换,即另一种置换矩阵,仔细观察即可发现要「恢复」矩阵变换,其实就是乘上它们自身
- 进行两次行交换
由所有置换矩阵构成的矩阵群组具有的特点:
- 它们之间相乘的结果矩阵依然在这个群组中(由于置换矩阵的作用是换行,相乘就是执行了行交互,最后得到的矩阵依然是置换矩阵,只不过是另一种置换矩阵,不一定是自身)
- 它们的逆矩阵依然在这个群组中(由于逆矩阵作用是「还原」变换,还原变换需要进行行交换,即需要另一种置换矩阵,当然也可能是自身), 实际上,置换矩阵的逆矩阵是其转置