数值线性代数1
今天晚上突然被人提到一下,然后就想起来了。原来我还可以翻译姐姐的博客来着。这一篇来自这里,是介绍的LU分解。
同样也是捣鼓MathJax也花费了大量的时间呢。
线性系统
线性方程的一般形式可以写成:
这等价于矩阵方程 $ Ax = b $, 其中:
LU分解
我们常用把一个矩阵分解为简单形式来解矩阵。例如:上三角矩阵,对角矩阵和酉矩阵。我将要在这里介绍臭名昭著的LU分解。LU分解是高斯消元的另一种说法,它通过在矩阵左侧应用线性变换(初等行变换)把一个完整的矩阵转换为一个上三角矩阵。
假设$A \in \Bbb{C}^{m,m}$是一个复数方阵1,这表示这个系统有相同数量的方程和未知数。LU分解的想法是通过引入对角线元素以下的0将$A$转换为$m\times m$的上三角矩阵$U$。这可以通过减去每一行和他们相应的倍数做到。这个消元过程就是高斯消元,它等价于在左边给$A$乘上一系列的下三角矩阵 $L_{k}$ 。
另$L = L_{1}^{-1}L_{2}^{-1} \cdots L_{m-1}^{-1}$,我们有:
其中L是下三角矩阵,U是上三角矩阵。我们常常把L做成一个单位下三角矩阵,这样就是一次单独的LU分解。
例子:
代码可以在这里找到。
译注:这里的代码要求在Julia项目的master下才能运行,如果在Julia0.6版本,可以把其中这一行的
uninitialized,
删除,则可以正常运行。
1 | ------------------- A ------------------- |
现在为了取得完整的LU分解$A = LU$,我们需要计算$L = L_{1}^{-1} L_{2}^{-1}\cdots L_{m-1}^{-1}$。$L_{i}$的逆矩阵就是对角线元素下所有元素取负的它自己。而且$\prod_{k=1}^{k=m-1}L_{k}^{-1}$是具有非零子对角线元素的单位下三角矩阵。
因此我们有:
最终我们得到了:
证明
$L_{i}$的逆矩阵就是对角线元素下所有元素取负的它自己。而且$\prod_{k=1}^{k=m-1}L_{k}^{-1}$是具有非零子对角线元素的单位下三角矩阵。
证明1:
我们可以将$L_{k}$重写为
很明显$e_{k}^{\dagger}l_{k} = 0$,因此:
也就是说$L_{k}^{-1} = I+l_{k}e_{k}^{\dagger}$. $\blacksquare$
证明2
从$l_{k+1}$的稀疏排列中,我们可以知道$e_{k}^{\dagger}l_{k+1} = 0$。因此
因此$L_{k}^{-1}L_{k-1}^{-1}$是一个带有$L_{k}^{-1}$和$L_{k-1}^{-1}$的非零元素的单位下三角矩阵。$\blacksquare$