3阶Hermitian正定矩阵Cholesky分解通用表达式
pdf文件
算法原理
将一个nnn阶Hermitian正定矩阵AAA分解为一个下三角矩阵LLL及其转置LTL^TLT的乘积,即:
A=LLT(1)A=LL^T\tag{1} A=LLT(1)
推导过程
对于nnn阶Hermitian正定矩阵
A=[a11A21TA21A22](2)A= \begin{bmatrix} a_{11} & A_{21}^T\\ A_{21} & A_{22} \end{bmatrix}\tag{2} A=[a11A21A21TA22](2)
其中A21A_{21}A21为n−1n-1n−1维列向量,A22A_{22}A22为n−1n-1n−1阶矩阵。设nnn阶下三角矩阵LLL
L=[l110L21L22](3)L= \begin{bmatrix} l_{11} & 0 \\ L_{21} & L_{22} \end{bmatrix}\tag{3} L=[l11L210L22](3)
其转置矩阵LTL^TLT为
L=[l11L210L22](4)L= \begin{bmatrix} l_{11} & L_{21} \\ 0 & L_{22} \end{bmatrix}\tag{4} L=[l110L21L22](4)
设A=LLTA=LL^TA=LLT,即有
[a11A21TA21A22]=[l110L21L22][l11L21T0L22]=[l112l11L21Tl11L21L21L21T+L22L22T](5)\begin{aligned} \begin{bmatrix} a_{11} & A_{21}^T \\ A_{21} & A_{22} \end{bmatrix} &= \begin{bmatrix} l_{11} & 0 \\ L_{21} & L_{22} \end{bmatrix} \begin{bmatrix} l_{11} & L_{21}^T \\ 0 & L_{22} \end{bmatrix}\\ &= \begin{bmatrix} l_{11}^2 & l_{11}L_{21}^T \\ l_{11}L_{21} & L_{21}L_{21}^T+L_{22}L_{22}^T \end{bmatrix}\\ \end{aligned}\tag{5} [a11A21A21TA22]=[l11L210L22][l110L21TL22]=[l112l11L21l11L21TL21L21T+L22L22T](5)
未知量为l11,L21,L22l_{11},L_{21},L_{22}l11,L21,L22,这三个未知量的求解公式为
l11=a11L21=1l11A21L22L22T=A22−L21L21T(6)\begin{aligned} l_{11}&=\sqrt{a_{11}}\\ L_{21}&=\frac{1}{l_{11}}A_{21}\\ L_{22}L_{22}^T&=A_{22}-L_{21}L_{21}^T \end{aligned}\tag{6} l11L21L22L22T=a11=l111A21=A22−L21L21T(6)
l11,L21l_{11},L_{21}l11,L21易求解,令A′=A22−L21L21TA^{'}=A_{22}-L_{21}L_{21}^TA′=A22−L21L21T,因为L21L21TL_{21}L_{21}^TL21L21T是一个对角线矩阵,因此A′A^{'}A′为Hermitian正定矩阵,则需要求解的问题变为
A′=L22L22T(7)A^{'}=L_{22}L_{22}^T\tag{7} A′=L22L22T(7)
也可以采用Cholesky分解处理,该算法是一个递归算法。
例子
将333阶Hermitian正定矩阵
A=[2515−515180−5011](8)A=\begin{bmatrix} 25 & 15 & -5\\ 15 & 18 & 0\\ -5 & 0 & 11 \end{bmatrix}\tag{8} A=⎣⎡2515−515180−5011⎦⎤(8)
进行Cholesky分解。
进行第一次Cholesky分解
A=[l1100l21l220l31l32l33][l11l21l310l22l3200l33](9)A=\begin{bmatrix} l_{11} & 0 & 0\\ l_{21} & l_{22} & 0\\ l_{31} & l_{32} & l_{33} \end{bmatrix} \begin{bmatrix} l_{11} & l_{21} & l_{31}\\ 0 & l_{22} & l_{32}\\ 0 & 0 & l_{33} \end{bmatrix}\tag{9} A=⎣⎡l11l21l310l22l3200l33⎦⎤⎣⎡l1100l21l220l31l32l33⎦⎤(9)
根据(6)有
l11=a11=5L21=1l11A21=15[15−5]=[3−1]A22−L21L21T=L22L22T(10)\begin{aligned} l_{11}&=\sqrt{a_{11}}=5\\ L_{21}&=\frac{1}{l_{11}}A_{21}=\frac{1}{5}\begin{bmatrix}15\\-5 \end{bmatrix}=\begin{bmatrix}3\\ -1 \end{bmatrix}\\ A_{22}&-L_{21}L_{21}^T=L_{22}L_{22}^T \end{aligned}\tag{10} l11L21A22=a11=5=l111A21=51[15−5]=[3−1]−L21L21T=L22L22T(10)
则有
A′=A22−L21L21T=[180011]−[3−1][3−1]=[93310](11)\begin{aligned} A^{'}&=A_{22}-L_{21}L_{21}^T\\ &=\begin{bmatrix} 18 & 0\\ 0 & 11 \end{bmatrix}-\begin{bmatrix}3\\-1\end{bmatrix}\begin{bmatrix}3 -1\end{bmatrix}\\ &=\begin{bmatrix}9 & 3\\3 & 10\end{bmatrix} \end{aligned}\tag{11} A′=A22−L21L21T=[180011]−[3−1][3−1]=[93310](11)
进行第二次Cholesky分解
A′=[l220l32l33][l22l320l33](12)A^{'}=\begin{bmatrix}l_{22} & 0\\l_{32} & l_{33}\end{bmatrix}\begin{bmatrix}l_{22} & l_{32}\\0 & l_{33}\end{bmatrix}\tag{12} A′=[l22l320l33][l220l32l33](12)
根据(6)有
l22=9=3l32=133=110−l322=10−1=L332(13)\begin{aligned} l_{22}&=\sqrt{9}=3\\ l_{32}&=\frac{1}{3}3=1\\ 10-l_{32}^{2}&=10-1=L_{33}^{2} \end{aligned}\tag{13} l22l3210−l322=9=3=313=1=10−1=L332(13)
因此
l33=3l_{33}=3 l33=3
则有
A=[2515−515180−5011]=[500330−113]=[53−1031003](14)A=\begin{bmatrix}25 & 15 & -5\\15 & 18 & 0\\-5 & 0 & 11\end{bmatrix} =\begin{bmatrix}5 & 0 & 0\\3 & 3 & 0\\-1 & 1 & 3\end{bmatrix} =\begin{bmatrix}5 & 3 & -1\\0 & 3 & 1\\0 & 0 & 3\end{bmatrix}\tag{14} A=⎣⎡2515−515180−5011⎦⎤=⎣⎡53−1031003⎦⎤=⎣⎡500330−113⎦⎤(14)
程序求解Cholesky
Matlab
L=chol(A)
Mathematica
L=CholeskyDecomposition[A]
对333阶Hermitian正定矩阵的Cholesky分解
333阶正定矩阵
A=[a11a21a31a21a22a32a31a32a33](15)A=\begin{bmatrix}a_{11} & a_{21} & a_{31}\\a_{21} & a_{22} &a_{32}\\a_{31} & a_{32} &a_{33}\end{bmatrix}\tag{15} A=⎣⎡a11a21a31a21a22a32a31a32a33⎦⎤(15)
进行第一次Cholesky分解
A=[l1100l21l220l31l32l33][l11l21l310l22l3200l33](16)A=\begin{bmatrix} l_{11} & 0 & 0\\ l_{21} & l_{22} & 0\\ l_{31} & l_{32} & l_{33} \end{bmatrix} \begin{bmatrix} l_{11} & l_{21} & l_{31}\\ 0 & l_{22} & l_{32}\\ 0 & 0 & l_{33} \end{bmatrix}\tag{16} A=⎣⎡l11l21l310l22l3200l33⎦⎤⎣⎡l1100l21l220l31l32l33⎦⎤(16)
根据(6)有
l11=a11L21=1l11A21=1a11[a21a31]=[a21a11a31a11]A22−L21L21T=L22L22T(17)\begin{aligned} l_{11}&=\sqrt{a_{11}}\\ L_{21}&=\frac{1}{l_{11}}A_{21}=\frac{1}{\sqrt{a_{11}}}\begin{bmatrix}a_{21}\\a_{31} \end{bmatrix}=\begin{bmatrix}\frac{a_{21}}{\sqrt{a_{11}}}\\ \frac{a_{31}}{\sqrt{a_{11}}} \end{bmatrix}\\ A_{22}&-L_{21}L_{21}^T=L_{22}L_{22}^T \end{aligned}\tag{17} l11L21A22=a11=l111A21=a111[a21a31]=[a11a21a11a31]−L21L21T=L22L22T(17)
则有
A′=A22−L21L21T=[a22a32a32a33]−[a21a11a31a11][a21a11a31a11]=[a22−a212a11a32−a21a31a11a32−a31a21a11a33−a312a11](18)\begin{aligned} A^{'}&=A_{22}-L_{21}L_{21}^T\\ &=\begin{bmatrix} a_{22} & a_{32}\\ a_{32} & a_{33} \end{bmatrix}-\begin{bmatrix}\frac{a_{21}}{\sqrt{a_{11}}}\\ \frac{a_{31}}{\sqrt{a_{11}}} \end{bmatrix}\begin{bmatrix}\frac{a_{21}}{\sqrt{a_{11}}}&\frac{a_{31}}{\sqrt{a_{11}}} \end{bmatrix}\\ &=\begin{bmatrix}a_{22}-\frac{a_{21}^2}{a_{11}} & a_{32}-\frac{a_{21}a_{31}}{a_{11}}\\a_{32}-\frac{a_{31}a_{21}}{a_{11}} & a_{33}-\frac{a_{31}^2}{a_{11}}\end{bmatrix} \end{aligned}\tag{18} A′=A22−L21L21T=[a22a32a32a33]−[a11a21a11a31][a11a21a11a31]=[a22−a11a212a32−a11a31a21a32−a11a21a31a33−a11a312](18)
进行第二次Cholesky分解
A′=[l220l32l33][l22l320l33](19)A^{'}=\begin{bmatrix}l_{22} & 0\\l_{32} & l_{33}\end{bmatrix}\begin{bmatrix}l_{22} & l_{32}\\0 & l_{33}\end{bmatrix}\tag{19} A′=[l22l320l33][l220l32l33](19)
根据(6)有
l22=a22−a212a11l32=1l22A21′=a32−a31a21a11a22−a212a11a33−a312a11−l322=a33−a312a11−(a32−a31a21a11)2a22−a212a11=a11a22a33−a212a33−a312a22−a322a11+2a21a31a32a11a22−a212=L332(20)\begin{aligned} l_{22}&=\sqrt{a_{22}-\frac{a_{21}^2}{a_{11}}}\\ l_{32}&=\frac{1}{l_{22}}A_{21}^{'}=\frac{a_{32}-\frac{a_{31}a_{21}}{a_{11}}}{\sqrt{a_{22}-\frac{a_{21}^2}{a_{11}}}}\\ a_{33}-\frac{a_{31}^2}{a_{11}}-l_{32}^{2}&=a_{33}-\frac{a_{31}^2}{a_{11}}-\frac{(a_{32}-\frac{a_{31}a_{21}}{a_{11}})^2}{a_{22}-\frac{a_{21}^2}{a_{11}}}\\&=\frac{a_{11}a_{22}a_{33}-a_{21}^2a_{33}-a_{31}^2a_{22}-a_{32}^2a_{11}+2a_{21}a_{31}a_{32}}{a_{11}a_{22}-a_{21}^2}=L_{33}^{2} \end{aligned}\tag{20} l22l32a33−a11a312−l322=a22−a11a212=l221A21′=a22−a11a212a32−a11a31a21=a33−a11a312−a22−a11a212(a32−a11a31a21)2=a11a22−a212a11a22a33−a212a33−a312a22−a322a11+2a21a31a32=L332(20)
因此
l33=a11a22a33−a212a33−a312a22−a322a11+2a21a31a32a11a22−a212(21)l_{33}=\sqrt{\frac{a_{11}a_{22}a_{33}-a_{21}^2a_{33}-a_{31}^2a_{22}-a_{32}^2a_{11}+2a_{21}a_{31}a_{32}}{a_{11}a_{22}-a_{21}^2}}\tag{21} l33=a11a22−a212a11a22a33−a212a33−a312a22−a322a11+2a21a31a32(21)
对下三角矩阵LLL有
l11=a11L21=[l21l31]=[a21a11a31a11]l22=a22−a212a11l32=a32−a31a21a11a22−a212a11l33=a11a22a33−a212a33−a312a22−a322a11+2a21a31a32a11a22−a212(22)\begin{aligned} l_{11}&=\sqrt{a_{11}}\\ L_{21}&=\begin{bmatrix}l_{21}\\l_{31} \end{bmatrix}=\begin{bmatrix}\frac{a_{21}}{\sqrt{a_{11}}}\\ \frac{a_{31}}{\sqrt{a_{11}}} \end{bmatrix}\\ l_{22}&=\sqrt{a_{22}-\frac{a_{21}^2}{a_{11}}}\\ l_{32}&=\frac{a_{32}-\frac{a_{31}a_{21}}{a_{11}}}{\sqrt{a_{22}-\frac{a_{21}^2}{a_{11}}}}\\ l_{33}&=\sqrt{\frac{a_{11}a_{22}a_{33}-a_{21}^2a_{33}-a_{31}^2a_{22}-a_{32}^2a_{11}+2a_{21}a_{31}a_{32}}{a_{11}a_{22}-a_{21}^2}} \end{aligned}\tag{22} l11L21l22l32l33=a11=[l21l31]=[a11a21a11a31]=a22−a11a212=a22−a11a212a32−a11a31a21=a11a22−a212a11a22a33−a212a33−a312a22−a322a11+2a21a31a32(22)
如果写成递归的形式有
l11=a11l21=a21l11l22=a22−l212l31=a31l11l32=a32−l21l31l22l33=a33−l312−l322(23)\begin{aligned} l_{11}&=\sqrt{a_{11}}\\ l_{21}&=\frac{a_{21}}{l_{11}}\\ l_{22}&=\sqrt{a_{22}-l_{21}^2}\\ l_{31}&=\frac{a_{31}}{l_{11}}\\ l_{32}&=\frac{a_{32}-l_{21}l_{31}}{l_{22}}\\ l_{33}&=\sqrt{a_{33}-l_{31}^2-l_{32}^2} \end{aligned}\tag{23} l11l21l22l31l32l33=a11=l11a21=a22−l212=l11a31=l22a32−l21l31=a33−l312−l322(23)
3阶Hermitian正定矩阵Cholesky分解通用表达式相关推荐
- 数值计算笔记-部分主元消去cholesky分解
补充:接上一篇LU分解 1.高斯消元的一些问题:在之前高斯消元得到LU分解时,必须假设没有较换行的操作,即在消元过程中没有主元 a k k = 0 a_{kk} = 0 akk=0的现象.但是实际情 ...
- 使用 uBLAS 进行实对称正定矩阵的 Cholesky 分解
Cholesky 分解理论 矩阵分解--三角分解(Cholesky 分解) 矩阵分解--三角分解(二) 注:只有实对称矩阵才有 Cholesky 分解理论. 已知实对称正定矩阵 AA,其 Choles ...
- 矩阵的Cholesky分解
原文链接:矩阵的Cholesky分解 首先来复习线性代数中几个重要的概念. 1)如果一个复矩阵A = A*(共轭转置),则A称为Hermitian矩阵.(注意,矩阵A转置后仍为其本身,显然A一定是方阵 ...
- 矩阵分解——三角分解(Cholesky 分解)
(1)一个对角元素都是1的下三角矩阵,称为单位下三角矩阵. (2)上(下)三角矩阵的乘积仍是上(下)三角矩阵: (3)一般来说,矩阵的三角分解不唯一. (4)实对称正定矩阵 AA,Δk>0\De ...
- 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用
写一篇关于Cholesky分解的文章,作为学习笔记,尽量一文看懂矩阵Cholesky分解,以及用Cholesky分解来求解对称正定线性方程组,以及求对称正定矩阵的逆的应用. 文章目录 直接Choles ...
- 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解
目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...
- LU分解,LDLT分解,Cholesky分解
LU分解 如果方阵是非奇异的,即的行列式不为0,LU分解总是存在的. A=LU,将系数矩阵A转变成等价的两个矩阵L和U的乘积,其中L和U分别是下三角和上三角矩阵,而且要求L的对角元素都是1,形式如下: ...
- 线性代数笔记: Cholesky分解
1 介绍 当一个实矩阵A是对称正定矩阵的时候,它可以分解成一个下三角矩阵L以及它的转置的乘积,即: 1.1 矩阵半正定的情况 如果矩阵是正定的话,那么L唯一确定:如果矩阵是半正定的话,那么也可以分解, ...
- cholesky分解java代码_Cholesky 分解(转)
Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解. 它要求矩阵的所有特征值必须大于零,故分解的下三角的对角元也是大于零的. Cholesky分解法又称平方根法,是 ...
最新文章
- 安装 archlinux 之使用 EFI/GPT
- git:The authenticity of host 'github.com (13.250.177.223)' can't be established.
- PowerDesigner(1)----转载
- 20 年后,我们怎么看电影?
- Android 高级UI设计笔记08:Android开发者常用的7款Android UI组件(转载)
- mysql 关闭in自动排序_为什么MySQL的in查询会自动排序
- 超几何分布_概率小题——分布列专题
- Spring框架学习笔记07:基于XML配置方式使用Spring MVC
- 【报告分享】2021年中国五大主流电商平台关于用户数据的最新规则汇总.pdf(附下载链接)...
- Lua5.2中的全局环境
- python基础知识 01
- 企业微信电脑版显示连不上服务器,钉钉环境部分Anroid手机,微信、企业微信pc版,登录失败的解决办法...
- 21世纪青年人最该阅读的书籍清单
- 若问杭州何处好,此中听得野莺啼——关于杭州
- 实战:战狼2票房数据分析——(3)数据读取及分析
- fstream —文件读写操作
- 两台云服务器怎么共享文件夹,云服务器怎么共享文件夹
- phpredis与predis的区别
- 轻松上手CSS Grid网格布局
- 公路货运、安全如何风险感知?