矩阵分解-----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 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出 ...
随机推荐
- ZT Android4.2蓝牙基础架构学习
Android4.2蓝牙基础架构学习 分类: Jellybean Bluetooth Bluetooth 2013-10-13 23:58 863人阅读 评论(3) 收藏 举报 androidblue ...
- 【转载】uWSGI配置翻译
英文原版: http://uwsgi-docs.readthedocs.io/en/latest/Options.html 转载地址: http://www.cnblogs.com/zhouej/ar ...
- Linux系统 开通防火墙端口
Redhat 7内核 Linux系统 开通防火墙端口 使用systemctl 1.查看防火墙状态,root用户登录,执行命令systemctl status firewalld 2.开启防火墙:sy ...
- AdminLTE前端模板
AdminLTE是一个Bootstrap框架模板,其功能组件并不比我直接提到的Metronic差. 第一次接触过AdminLTE是在学习Jeesite这个开源项目的时候.离现在已经有半年了. Admi ...
- VC++中的__super::
在学习别人的代码时,发现了一个__super,第一感觉很像java中的super,或者C#中的base网上查了一下发现作用差不多,都是指父类.C++本身没有__super,这是visual c++的扩 ...
- IIS提示出现RPC服务器不可用的解决方法
如果你运行IIS时也遇到“RPC服务器不可用”的故障提示,不妨试试我们下面的办法 依次点击“管理工具→服务→Remote Procedure Call→属性”,其默认启动类别是“自动”,但选项是灰色的 ...
- (转)Jmeter http请求之content-type
原文传送门:http://www.cnblogs.com/dinghanhua/p/5646435.html 第一部分:目前工作中涉及到的content-type 有三种: content-type: ...
- 轻量级IOC容器:Ninject
Ninject是一个快如闪电.超轻量级的基于.Net平台的依赖注入框架.它能够帮助你把应用程序分离成一个个松耦合.高内聚的模块,然后用一种灵活的方式组装起来.通过使用Ninject配套你的软件架构,那 ...
- USB协议规范文档简介
USB协议规范文档简介 USB驱动开发必须对USB相关的协议规范有一定程度的了解,理解得越深,遇到的问题就会越少,解决问题的速度也就越快. 工欲善其行,必先利其器.USB协议规范就是USB ...
- iOS 基础函数解析 - Foundation Functions Reference
iOS 基础函数解析 - Foundation Functions Reference 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...