若一个矩阵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分解的更多相关文章

  1. MATLAB矩阵的LU分解及在解线性方程组中的应用

    作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...

  2. 矩阵的SVD分解

    转自 http://blog.csdn.net/zhongkejingwang/article/details/43053513(实在受不了CSDN的广告) 在网上看到有很多文章介绍SVD的,讲的也都 ...

  3. 矩阵分解----Cholesky分解

    矩阵分解是将矩阵拆解成多个矩阵的乘积,常见的分解方法有 三角分解法.QR分解法.奇异值分解法.三角分解法是将原方阵分解成一个上三角矩阵和一个下三角矩阵,这种分解方法叫做LU分解法.进一步,如果待分解的 ...

  4. 矩阵的QR分解

    #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...

  5. 线性代数笔记10——矩阵的LU分解

    在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU分解主要应用在数值分析 ...

  6. 矩阵的QR分解(三种方法)Python实现

    1.Gram-Schmidt正交化 假设原来的矩阵为[a,b],a,b为线性无关的二维向量,下面我们通过Gram-Schmidt正交化使得矩阵A为标准正交矩阵: 假设正交化后的矩阵为Q=[A,B],我 ...

  7. 整数分解 && 质因数分解

    输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...

  8. Doolitter分解 三对角矩阵分解 拟三对角分解

    #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...

  9. 机器学习中的矩阵方法04:SVD 分解

    前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出 ...

随机推荐

  1. #002 Emmet完整API

    介绍 这里包含了,所有的Emmet API,非常的详细,但是有一点详细过头了,如果只想快速上手,那么推荐<#001 Emmet的API图片> Emmet (前身为 Zen Coding) ...

  2. Alpha 冲刺报告(6/10)

    Alpha 冲刺报告(6/10) 队名:洛基小队 峻雄(组长) 已完成:实现角色的移动. 明日计划:关于角色的属性设计. 剩余任务:角色的属性脚本 困难:角色的属性以及具体的编码 ---------- ...

  3. MDRT_<>$表

    数据库中有好多的MDRT打头的表,而这些表的字段都是一样的,那这些表是做什么用呢? MDRT_<>$: 用来存储与空间索引相关的信息.这些表与常规表不一样,不能做复制,删除,新建等.如果对 ...

  4. 4-1 R语言函数 lapply

    #lapply函数 #可以循环处理列表中的每一个元素 #lapply(参数):lapply(列表,函数/函数名,其他参数) #总是返回一个列表 #sapply:简化结果 #结果列表元素长度均为1,返回 ...

  5. 写了一个web使用向导的小插件

    运行效果: 引入插件: <link rel="stylesheet" href="ez-guide.css"> <script src=&qu ...

  6. 多启动引导工具——AIO Boot

    该软件功能十分强大 官网介绍的也十分详尽 这里仅仅简单标记一下用来以后查找 https://www.aioboot.com/en/ 效果图: 支持多语言: 简单运用:

  7. 多线程之ThreadLocal

    Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理.首先,本文先谈一下对ThreadLoc ...

  8. SQLserver中取众位数的写法

    取众位数:先按个数倒排序,再取第一条SELECT * FROM ( select a.billid,a.DemandVoltage,count(1) as RecordCount, Row_NUMBE ...

  9. JSONP - 从理论到实践

    同源策略 ajax之所以需要“跨域”,罪魁祸首就是浏览器的同源策略.即,一个页面的ajax只能获取这个页面相同源或者相同域的数据. 如何叫“同源”或者“同域”呢?——协议.域名.端口号都必须相同.例如 ...

  10. 串口调试助手vc源程序及其详细编写过程

    串口调试助手vc源程序及其详细编写过程   目次: 1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.在对话框中添加控件 5.添加串口事件 ...