矩阵分解-----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}\]
矩阵分解-----LDL分解的更多相关文章
- MATLAB矩阵的LU分解及在解线性方程组中的应用
作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...
- 矩阵的SVD分解
转自 http://blog.csdn.net/zhongkejingwang/article/details/43053513(实在受不了CSDN的广告) 在网上看到有很多文章介绍SVD的,讲的也都 ...
- 矩阵分解----Cholesky分解
矩阵分解是将矩阵拆解成多个矩阵的乘积,常见的分解方法有 三角分解法.QR分解法.奇异值分解法.三角分解法是将原方阵分解成一个上三角矩阵和一个下三角矩阵,这种分解方法叫做LU分解法.进一步,如果待分解的 ...
- 矩阵的QR分解
#include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...
- 线性代数笔记10——矩阵的LU分解
在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU分解主要应用在数值分析 ...
- 矩阵的QR分解(三种方法)Python实现
1.Gram-Schmidt正交化 假设原来的矩阵为[a,b],a,b为线性无关的二维向量,下面我们通过Gram-Schmidt正交化使得矩阵A为标准正交矩阵: 假设正交化后的矩阵为Q=[A,B],我 ...
- 整数分解 && 质因数分解
输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...
- Doolitter分解 三对角矩阵分解 拟三对角分解
#include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...
- 机器学习中的矩阵方法04:SVD 分解
前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出 ...
随机推荐
- Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
在下面这篇博文里,我给各位博客们,分享了创建HBase表,但这远不止打好基础. HBase编程 API入门系列之create(管理端而言)(8) 在关系型数据库里,表的高表和宽表是不存在的.在如HBa ...
- 手动安装gradle
在学习andorid studio时发现编译超级无比的慢,网上有文说是因为gradle的原因,使用离线gradle可以大幅提高编译速度,准备尝试下看看如何.由于gradle的资料都是英文,而我又是英文 ...
- App案例分析——XBMC
本文分析app的是安卓本地视频播放器:XBMC. 第一部分: 调研,评测 1.下载软件并使用起来,描述最简单直观的个人第一次上手体验. 第一次使用这个播放器,就很喜欢这个主界面,其他类似软件的主界 ...
- 【原创】uwsgi中多进程+多线程原因以及串行化accept() - thunder_lock说明
如有不对,请详细指正. 最近再研究uwsgi如何部署python app,看uwsgi的文档,里面有太多的参数,但每个参数的解释太苍白,作为菜鸟的我实在是不懂.想搞清楚uwsgi的工作原因以及里面的一 ...
- 4514: [Sdoi2016]数字配对
Description 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数, 那么这两个数字可以配对 ...
- 使用Discuz!自带参数防御CC攻击以及原理
CC攻击确实是很蛋疼的一种攻击方式,Discuz!的配置文件中已经有了一个自带的减缓CC攻击的参数,在配置文件config.inc.php中: $attackevasive = 0; // 论坛防御 ...
- pandas数据结构:Series/DataFrame;python函数:range/arange
1. Series Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index). 1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会 ...
- java 输出流 outputstream
一:输入和输出概念 输入流(inputstream):对于java程序来说,从程序写入文件叫做输出. 输出流(outputstream):对于java程序来说,从文件读取数据,到java程序叫做输入. ...
- http协议cookie结构分析
Http协议中Cookie详细介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失 ...
- 带编译器的codeblocks下载地址
曾下载过一个没有编译器的codeblocks,弄了很久才发现自己下载的版本没有编译器,所以将带编译器的codeblocks放在腾讯微盘中,方便自己也方便他人,这样就不用去官网下载了,官网有时候真的是有 ...