上回我们说到解线性方程Ax=b,需要先对系数矩阵A不断乘初等变换矩阵直到出现上三角矩阵来达到消元的目的,我们以三阶矩阵为例,在不交换行的情况下,消元过程可表示为
然后通过回代的方式就可以解出x的所有值。来看一个具体的例子
先给系数阵消元
而如果我想将两次变换变为一次,只要将两个消元矩阵相乘即可
计算时我们可以发现,计算结果的[7 -5 1]是由
得到的,一般来说乘就乘了,反正只要能算出结果就行了,但是就是有那么一些聪明的脑子能想出一些更高级的做法,即
LU分解
这是我们之前做消元的过程
他们想出的方法是
这里你可能还看不出来这个方法有什么吊,不就是把逆矩阵挪到右边了吗,我们根据上面那个例子来整理一下LU分解的运算过程。
首先明确一点,求消元的初等变换阵的逆矩阵只要把对应的数变号就可以了
而如果想将两次变换变为一次,即可计算
计算结果就是两个矩阵的简单组合,根本不需要乘运算
所以解Ax=b变为LUx=b,所以先解Ly=b再解Ux=y
来看一个例子(设b为[1,2,3,4])
当然,消元过程中还可能出现交换行的情况,所以在LU分解前我们需要给原矩阵做一些交换行的处理,让我们的LU分解可以顺畅的做下去(在消元过程中不再交换)matlab 中有一些算法能做到这一点,在此我们不做讨论(主要是我也不知道:)),我们只给出LU分解的完全体形式
最后还想说的一点是关于转置,A_{ij}=A_{ji}^{T}T这样的概念不必多说,我想聊几个有很好特性的矩阵,比如交换行的矩阵P,它们满足
且阶数固定时这类矩阵的个数满足n!
比如三阶矩阵有6个这样的矩阵
还有一类矩阵满足AT=A,即对称阵,而任何矩阵乘自己的转置一定得到对称阵,反之亦然,用公式描述为