矩阵分解是设计算法的主要技巧,通过分解可以将复杂问题转化为几个简单问题求解,通常完成这一转化任务的主要技巧就是矩阵分解。例如,我们知道上三角矩阵和下三角矩阵是容易求解的,或者对角矩阵是最理想的求解形式,我们通过矩阵的分解去将原本的复杂问题,转化为若干个易于求解的矩阵来运算。
大学本科期间学校讲授的线性代数课程,关于Ax=b这类矩阵求解方式采用的是高斯消去法的方式(与高中阶段的多元一次方程求解方式一样)。而为我们矩阵分解打头阵的分解形式就是LU分解,那么这两种分解有什么区别呢?首先我们从这两种方法的计算复杂度角度逐渐切入问题的核心。
我们这里默认你掌握线性代数的基本知识,那么高斯消去法的计算过程我们可以通过下面这个图片来进行概括。
高斯消去法如果有这样一个问题
我们通过高斯消元法,最后会得到一个这样的等价问题,
这个高斯消去的过程如果写成矩阵相乘的过程,那么就如下所示,
通过上图我们就得到了LU分解的基本形式,通过三个L矩阵对A进行行变换我们得到一个上三角矩阵,通过这个上三角矩阵U和三个行变换矩阵的乘积L,就得到了LU分解的定义。
LU分解定义
对于n阶方阵A,如果存在n阶单位下三角矩阵L和n阶上三角形矩阵U,使得A=LU,则称其为矩阵A的LU分解,也称为Doolittle分解。
对于Gauss消去法和LU分解法的乘法计算计算量都是在
详细推导过程不要求掌握,但是可以通过阅读教材或者参考资料的详细推导来了解这个过程。需要记住的是,分解过程始终是
那么一个Ax=b的问题,我们就可以转化为LU分解计算,主要分为三步
接下来我们通过一道题目来实战一下大家对其理解的如何:
问题欢迎大家在评论区发表你的看法。
以上我们基本明确了矩阵的LU分解过程。那么任意一个矩阵A的LU分解是否一定存在且唯一的呢?下面我们来分析LU分解的存在唯一性。
由高斯消去法的步骤我们知道,如果想要不断的消去,则要求A在消去过程中的主对角线元素也就是主元
答案是可以。
存在唯一性定理证明过程这样我们就把存在性和唯一性的问题转化为矩阵A的k阶主子式是否等于0的问题。如果A的主子式都不为零,那么矩阵A可以进行LU分解,且该分解唯一。
LDU分解其实很简单,只需要将LU分解简单变化即可。我们知道U是一个上三角矩阵,我们将其对角元元素提取出来形成一个对角矩阵D,则剩下的新的U和原来的L,其三者就组成了LDU分解。
LDU分解如果把LD的乘积作为一个矩阵,我们就得到了Crout分解。
Crout分解例题:通过LU分解求解矩阵的逆。
求解矩阵的逆我们知道LU分解,要求主元不为0,假设我们遇到了主元为0的情况,LU分解就没有办法进行下去了。还会涉及误差的问题。LU分解有这样两个问题:
为了解决这两个问题,想到了选主元策略。每次进行消去操作的时候,我们要挑选一下主元,然后在进行操作。详细来说:
①第k列主元及主元以下元素中挑选绝对值最大的数。
②通过初等变换,使得该数位于主对角线上。
我们取上述相同问题,前两步为例
高斯列主元消去法初等行变换矩阵我们称之为P。这个带选主元的消去法,可以概括成下面的式子。
进而我们得到矩阵列主元LU分解的定义。
定义:对于任意n阶矩阵A,均存在置换矩阵P、单位下三角矩阵L和上三角矩阵U,使得PA=LU(P、L可以不同,分解不唯一)
这里要说明几点:
正定矩阵的所有主子式都大于零,所以满足LU分解的条件,LU分解存在且唯一。假设
接着有
上面这个分解
上面的公式就是Cholesky分解的过程,直接套用公式可以得出分解矩阵,计算的数序以列序为主。
实际考察中,一般掌握三阶矩阵的计算即可,不必记忆公式的详细细节。
求解方程组时,可以将原问题转化为下面三个等式求解。
三对角矩阵是一类特殊的矩阵,这种特殊矩阵的解法也不同于LU分解,这里提供其独特的解法。
三对角矩阵LU分解分解成形如上图的两个矩阵LU,我们可以通过计算很容易得到l,u,d的值。
计算次序为
计算公式为:
上述这种方法被称为追赶法。我们想要使用这种方法求解方程组还需要满足以下条件。
对角占优LU分解是解决中小规模、稠密矩阵的最好方法。
病态和良态
如果线性方程组Ax=b中,A或b的元素的微小变化就会引起方程组的巨大变化,则称方程组为病态方程组,矩阵A称为病态矩阵。
我们非常不希望这样的矩阵存在,那么如何去衡量这种病态程度呢?从相对误差入手进行分析。
假设
基于上面的推导,我们得到了条件数的定义,
条件数条件数就可以看作是矩阵A作用下,将b的轻微扰动放大的倍数。因此通过条件数我们可以了解到矩阵A的病态程度。
特别的,二条件数是矩阵A的A^HA的最大特征值与最小特征值的比值开根号。
推导过程简单,这里略过。
条件数的性质:
接近奇异的矩阵一般是病态矩阵。
系数矩阵和有段项均扰动
即
解的余量与相对误差之间的关系
我们称
我们可以推导他们之间的关系:
于是,有下列结论,
条件数的几何意义,条件数用来刻画矩阵距离奇异的距离。
条件数几何意义矩阵的QR分解被评为20世纪十大算法,是所有与矩阵相关算法的底层算法。
QR分解解决的问题是普通分解会导致分解后的条件数增大,我们根据条件数的相容性知道,分解后的条件数要大于等于原矩阵的条件数,为了解决这个问题,我们就用到条件数的第六条性质,关于酉矩阵的性质,于是我们想到通过酉矩阵或许会解决这个问题。
QR分解和LU分解最大的区别就是使用了正交变换来实现矩阵分解。
我们定义QR分解如下,
QR分解为了实现QR分解,引入Householder矩阵,Householder矩阵作用到x向量上会将x向量变换到另一个正交的坐标系中,但是变换后的向量y的范数不变,此时x与y关于一个超平面对称,也称为镜面反射。
经过推导我们得到Householder矩阵的求解公式
Householder矩阵Householder矩阵的性质
Householder矩阵的性质其中第四条性质,是因为求解出来的Householder矩阵的特征值应该为
上述内容为矩阵三角分解相关的内容,这部分还是需要在题目中不断得到强化和锤炼。接下来将介绍特殊矩阵的特征系统,里面会介绍什么是Schur标准型,为Jordan分解和奇异值分解铺平道路。