矩阵分解-----LDL分解

若一个矩阵A是正定的,那么该矩阵也可以唯一分解为\[{\bf{A = LD}}{{\bf{L}}^{\bf{T}}}\]

其中L是对角元素都为1的下三角矩阵,D是对角元素都为正数的对角矩阵。还是以三维矩阵进行简单说明

\[{\bf{A = LD}}{{\bf{L}}^{\bf{T}}} = \left[ {\begin{array}{*{20}{c}}
1&0&0\\
{{L_{21}}}&1&0\\
{{L_{31}}}&{{L_{32}}}&1
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{D_1}}&0&0\\
0&{{D_2}}&0\\
0&0&{{D_3}}
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{{D_1}}&{}&{\left( {symmetric} \right)}\\
{{L_{21}}{D_1}}&{L_{21}^2{D_1} + {D_2}}&{}\\
{{L_{31}}{D_1}}&{{L_{31}}{L_{21}}{D_1} + {L_{32}}{D_2}}&{L_{31}^2{D_1} + L_{32}^2{D_2} + {D_3}}
\end{array}} \right]\]

 接着按照Cholesky分解推导的思路可以得到下面两个公式,如果待分解的矩阵A是实数,那么

\[\begin{array}{l}
{D_j} = {A_{j,j}} - \sum\limits_{k = 1}^{j - 1} {L_{j,k}^2{D_k}} \\
{L_{i,j}} = \frac{{\left( {{A_{i,j}} - \sum\limits_{k = 1}^{j - 1} {{L_{i,k}}{L_{j,k}}{D_k}} } \right)}}{{{D_j}}}for,i > j
\end{array}\]

如果待分解的矩阵A是复数,那么

\[\begin{array}{l}
{D_j} = {A_{j,j}} - \sum\limits_{k = 1}^{j - 1} {{L_{j,k}}L_{j,k}^ * {D_k}} \\
{L_{i,j}} = \frac{{\left( {{A_{i,j}} - \sum\limits_{k = 1}^{j - 1} {{L_{i,k}}L_{j,k}^ * {D_k}} } \right)}}{{{D_j}}}for,i > j
\end{array}\]

由上式可以观察到不存在开根号的操作,所以也叫做“改进的平方根分解法”。
为了方便硬件实现,对上面公式进行进一步优化,引入中间变量

\[{u_{i,j}} = {L_{i,j}}{D_j}\]

将上面公式改写为

\[\begin{array}{l}
{D_j} = {A_{j,j}} - \sum\limits_{m = 1}^{j - 1} {{u_{j,m}}L_{j,m}^ * ,1 \le j \le n} \\
{u_{i,j}} = {A_{i,j}} - \sum\limits_{m = 1}^{j - 1} {{u_{i,m}}L_{j,m}^ * } ,j + 1 \le i \le n\\
{L_{i,j}} = \frac{{{u_{i,j}}}}{{{D_j}}},j + 1 \le i \le n
\end{array}\]

猜你喜欢

转载自www.cnblogs.com/hurenkebi1/p/9976982.html
今日推荐