矩阵分解----Cholesky分解
矩阵分解是将矩阵拆解成多个矩阵的乘积,常见的分解方法有 三角分解法、QR分解法、奇异值分解法。三角分解法是将原方阵分解成一个上三角矩阵和一个下三角矩阵,这种分解方法叫做LU分解法。进一步,如果待分解的矩阵A是正定的,则A可以唯一的分解为
\[{\bf{A = L}}{{\bf{L}}^{\bf{T}}}\]
其中L是下三角矩阵。下面以三维矩阵进行简单说明:
\[\begin{array}{ccccc}
{\bf{A = L}}{{\bf{L}}^{\bf{T}}}{\rm{ = }} & \left[ {\begin{array}{*{20}{c}}
{{L_{11}}}&0&0\\
{{L_{21}}}&{{L_{22}}}&0\\
{{L_{31}}}&{{L_{32}}}&{{L_{33}}}
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{L_{11}}}&{{L_{21}}}&{{L_{31}}}\\
0&{{L_{22}}}&{{L_{32}}}\\
0&0&{{L_{33}}}
\end{array}} \right]\\
= & \left[ {\begin{array}{*{20}{c}}
{L_{11}^2}&{}&{\left( {symmetric} \right)}\\
{{L_{21}}{L_{11}}}&{L_{21}^2 + L_{22}^2}&{}\\
{{L_{31}}{L_{11}}}&{{L_{31}}{L_{21}} + {L_{32}}{L_{22}}}&{L_{31}^2 + L_{32}^2 + L_{33}^2}
\end{array}} \right]\\
= & \left[ {\begin{array}{*{20}{c}}
{{A_{11}}}&{{A_{12}}}&{{A_{13}}}\\
{{A_{21}}}&{{A_{22}}}&{{A_{23}}}\\
{{A_{31}}}&{{A_{32}}}&{{A_{33}}}
\end{array}} \right]
\end{array}\]
由上式可以得到
\[{\bf{L}} = \left[ {\begin{array}{*{20}{c}}
{\sqrt {{A_{11}}} }&0&0\\
{\frac{{{A_{21}}}}{{{L_{11}}}}}&{\sqrt {{A_{22}} - L_{21}^2} }&0\\
{\frac{{{A_{31}}}}{{{L_{11}}}}}&{\frac{{{A_{32}} - {L_{31}}{L_{21}}}}{{{L_{22}}}}}&{\sqrt {{A_{33}} - L_{31}^2 - L_{32}^2} }
\end{array}} \right]\]
进一步进行多维扩展得到实数矩阵分解的表达式为
\[\begin{array}{l}
{L_{j,j}} = \sqrt {{A_{j,j}} - \sum\limits_{k = 1}^{j - 1} {L_{j,k}^2} } \\
{L_{i,j}} = \frac{{\left( {{A_{i,j}} - \sum\limits_{k = 1}^{j - 1} {{L_{i,k}}{L_{j,k}}} } \right)}}{{{L_{j,j}}}}for,i > j
\end{array}\]
对于复数矩阵可以得到类似的公式
\[\begin{array}{l}
{L_{j,j}} = \sqrt {{A_{j,j}} - \sum\limits_{k = 1}^{j - 1} {{L_{j,k}}L_{j,k}^ * } } \\
{L_{i,j}} = \frac{{\left( {{A_{i,j}} - \sum\limits_{k = 1}^{j - 1} {{L_{i,k}}L_{j,k}^ * } } \right)}}{{{L_{j,j}}}}for,i > j
\end{array}\]
上式过程叫做Cholesky分解,由公式可知,该方法存在开根号的操作,在硬件实现中复杂度较高。一般采用LDL分解法来规避这个问题。
矩阵分解----Cholesky分解的更多相关文章
- cholesky分解
接着LU分解继续往下,就会发展出很多相关但是并不完全一样的矩阵分解,最后对于对称正定矩阵,我们则可以给出非常有用的cholesky分解.这些分解的来源就在于矩阵本身存在的特殊的 结构.对于矩阵 ...
- 矩阵分解-----LDL分解
若一个矩阵A是正定的,那么该矩阵也可以唯一分解为\[{\bf{A = LD}}{{\bf{L}}^{\bf{T}}}\] 其中L是对角元素都为1的下三角矩阵,D是对角元素都为正数的对角矩阵.还是以三维 ...
- Cholesky分解 平方根法
一种矩阵运算方法,又叫Cholesky分解.所谓平方根法,就是利用对称正定矩阵的三角分解得到的求解对称正定方程组的一种有效方法.它是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解.它要 ...
- MATLAB矩阵的LU分解及在解线性方程组中的应用
作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...
- 矩阵的SVD分解
转自 http://blog.csdn.net/zhongkejingwang/article/details/43053513(实在受不了CSDN的广告) 在网上看到有很多文章介绍SVD的,讲的也都 ...
- Cholesky分解(Cholesky decomposition / Cholesky )
Cholesky decomposition In linear algebra, the Cholesky decomposition or Cholesky is a decomposition ...
- 矩阵的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],我 ...
随机推荐
- MySQL 8.0.2: Introducing Window Functions
July 18, 2017MySQL, SQLDag Wanvik MySQL 8.0.2 introduces SQL window functions, or analytic functions ...
- jquery 比较全面的API中文版地址
jquery中文API地址 里面有对各个版本的jquery的属性.方法等都有全面的介绍加例子,值得拥有!
- 再谈全局网HBase八大应用场景
摘要: HBase可以说是一个数据库,也可以说是一个存储.拥有双重属性的HBase天生就具备广阔的应用场景.在2.0中,引入了OffHeap降低了延迟,可以满足在线的需求.引入MOB,可以存储10M左 ...
- win7X64位安装mysql-5.7.16
今天尝试在win7系统中安装mysql,发现过程有点复杂,不过还好已经成功安装,写个博客纪念一下,顺便可以帮助大家. 1.在官网上面下载mysql, 注意:一定要下载对应的版本,第一次下载的是最下面一 ...
- spark-机器学习实践-K近邻应用实践一
K近邻应用-异常检测应用 原理: 根据数据样本进行KMeans机器学习模型的建立,获取簇心点,以簇为单位,离簇心最远的第五个点的距离为阈值,大于这个值的为异常点,即获得数据异常. 如图:
- String、StringBuffer与StringBuilder的区别-陈远波
String Stringbuffer StringBuilder的区别: 1.string是字符串常量,且长度是不可改变的,Stringbuffer.stringBuilder是字符串变量 2.S ...
- Vue.js实现前段评论展示
本来想着给这个博客弄个回复系统(类似知乎的回复),最初的实现思路是这样的:主评论后台渲染,前台新增的评论,回复用jquery操作dom放到页面上.实现的时候感觉好复杂,大量的dom操作,目前前段框架不 ...
- swift的类型推断
类型推断的前提是有待定类型和上下文. 1.由定义推断实现的类型: 2.由赋值推断声明的类型: 3.由实现推断泛型的类型: Type inference refers to the automatic ...
- 分享一个excel根据文件超链接获取链接文档的最后更新时间
#获取制定单元格内超链接对应的链接地址Sub geturi() For Each cell In Range("E3:E43") If cell.Hyperlinks.Count ...
- 爬虫代理squid
yum -y install squid 配置文件一般是在/etc/squid3/下的squid.conf文件 pyspider使用的时候只需要设置代理服务器为你配置好的服务器的IP就可以了 clas ...