文字来源:

  1. C.E. Rasmussen & K.I. Williams, Gaissian Processes for Machine Learning,MIT
  2. 计算机科学计算,高等教育出版社,张宏伟 等

定义: cholesky分解是一种将任意n阶对称正定矩阵A分解成下三角矩阵L的一种方法:
LLT=A\pmb L\pmb L^T=\pmb ALLLLLLT=AAA其中,L称为Cholesky因子。如果L的对角元均为正数,则L是唯一确定的。

Cholesky分解对于解决带有对称正定系数矩阵A的线性问题非常有效。在计算机中,直接求解Ax=bA\mathbf x=\mathbf bAx=b时间复杂度是很高的(Gauss消元法求解是O(n3)O(n^3)O(n3)),用cholesky法对A提前变换之后再计算会有效降低复杂度。计算方法如下:Ax=b⇒LLTx=b\pmb A\pmb x=\pmb b\Rightarrow\pmb L\pmb L^T\pmb x=\pmb bAAAxxx=bbb⇒LLLLLLTxxx=bbb其等价于{Ly=bLTx=y\begin{cases} \pmb L\pmb y=\pmb b \\ \pmb L^T\pmb x=\pmb y \end{cases}{LLLy​y​​y=bbbLLLTxxx=y​y​​y​令
(a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮an1an2…ann)=(l11l21l22⋮⋮⋱ln1ln2…lnn)(l11l12⋯l1nl22⋯l2n⋱⋮lnn)\begin{pmatrix} a_{11} & a_{12} & \cdots &a_{1n} \\ a_{21} & a_{22} & \cdots& a_{2n}\\ \vdots &\vdots&\ddots &\vdots\\ a_{n1} & a_{n2} & \dots & a_{nn} \end{pmatrix}= \begin{pmatrix} l_{11} & & & \\ l_{21} & l_{22} & & \\ \vdots &\vdots&\ddots & \\ l_{n1} & l_{n2} & \dots & l_{nn} \end{pmatrix} \begin{pmatrix} l_{11} & l_{12} & \cdots &l_{1n} \\ & l_{22} & \cdots& l_{2n}\\ & &\ddots &\vdots\\ & & & l_{nn} \end{pmatrix} ⎝⎜⎜⎜⎛​a11​a21​⋮an1​​a12​a22​⋮an2​​⋯⋯⋱…​a1n​a2n​⋮ann​​⎠⎟⎟⎟⎞​=⎝⎜⎜⎜⎛​l11​l21​⋮ln1​​l22​⋮ln2​​⋱…​lnn​​⎠⎟⎟⎟⎞​⎝⎜⎜⎜⎛​l11​​l12​l22​​⋯⋯⋱​l1n​l2n​⋮lnn​​⎠⎟⎟⎟⎞​则
aij=∑k=1j−1likljk+lijljj,i=j,j+1,⋯,n,a_{ij}=\sum_{k=1}^{j-1} l_{ik}l_{jk}+l_{ij}l_{jj}, \quad i=j,j+1,\cdots,n, aij​=k=1∑j−1​lik​ljk​+lij​ljj​,i=j,j+1,⋯,n,则有
ljj=(ajj−∑k=1j−1ljk2)12,l_{jj}=\Bigl(a_{jj}-\sum_{k=1}^{j-1}l_{jk}^2\Bigr)^{\frac{1}{2}},ljj​=(ajj​−k=1∑j−1​ljk2​)21​,
lij=(aij−∑k=1j−1likljk)/ljj,i=j+1,j+2,⋯,nl_{ij}=\Bigl( a_{ij}-\sum_{k=1}^{j-1}l_{ik}l_{jk} \Bigr)/l_{jj}, \quad i=j+1,j+2,\cdots,nlij​=(aij​−k=1∑j−1​lik​ljk​)/ljj​,i=j+1,j+2,⋯,n计算次序为l11,l21,...,ln1,l22,l32,...,ln2,...,lnn.l_{11},l_{21},...,l_{n1},l_{22},l_{32},...,l_{n2},...,l_{nn}.l11​,l21​,...,ln1​,l22​,l32​,...,ln2​,...,lnn​.

注意,正定对称矩阵的行列式可以由下式得出:
∣A∣=∏ni=1Lii2,|A|=\underset{i=1}{\overset{n}{\prod}}L^2_{ii},∣A∣=i=1∏n​​Lii2​,或者log⁡∣A∣=2∑ni=1log⁡Lii,\log|A|=2\underset{i=1}{\overset{n}{\sum}}\log L_{ii},log∣A∣=2i=1∑n​​logLii​,其中,L是由A得出的Cholesky因子。

例题
用cholesky方法求解线性方程组Ax=b\pmb A\pmb x=\pmb bAAAxxx=bbb,其中
A=(4−11−14.252.7512.753.5),b=(467.25).\pmb A= \begin{pmatrix} 4 & -1 & 1 \\ -1 & 4.25 & 2.75\\ 1 & 2.75 & 3.5 \end{pmatrix}, \pmb b= \begin{pmatrix} 4\\ 6\\ 7.25 \end{pmatrix}.AAA=⎝⎛​4−11​−14.252.75​12.753.5​⎠⎞​,bbb=⎝⎛​467.25​⎠⎞​.
显然AT=A\pmb A^T=\pmb AAAAT=AAA,且D1=4>0,D2=16>0,D3=16>0D_1=4>0,D_2=16>0,D_3=16>0D1​=4>0,D2​=16>0,D3​=16>0.因此,A为对称正定矩阵,故存在A=LLT\pmb A=\pmb L\pmb L^TAAA=LLLLLLT.则有:
l11=a11=2,l21=a21l11=−0.5,l31=a31l11=0.5,l22=a22−l212=2,l32=a32−l31l21l22=1.5,l33=a33−l312−l322=1,\begin{aligned} & l_{11}=\sqrt{a_{11}}=2 , \ l_{21}=\frac{a_{21}}{l_{11}}=-0.5, \ l_{31}=\frac{a_{31}}{l_{11}}=0.5, \\ &l_{22}=\sqrt{a_{22}-l_{21}^2}=2, \\ &l_{32}=\frac{a_{32}-l_{31}l_{21}}{l_{22}}=1.5,\\ &l_{33}=\sqrt{a_{33}-l_{31}^2-l_{32}^2}=1, \end{aligned}​l11​=a11​​=2, l21​=l11​a21​​=−0.5, l31​=l11​a31​​=0.5,l22​=a22​−l212​​=2,l32​=l22​a32​−l31​l21​​=1.5,l33​=a33​−l312​−l322​​=1,​得
L=(2−0.520.51.51).\pmb L= \begin{pmatrix} 2&&\\ -0.5&2&\\ 0.5&1.5&1 \end{pmatrix}.LLL=⎝⎛​2−0.50.5​21.5​1​⎠⎞​.再求
{Ly=bLTx=y\begin{cases} \pmb L\pmb y=\pmb b \\ \pmb L^T\pmb x=\pmb y \end{cases}{LLLy​y​​y=bbbLLLTxxx=y​y​​y​解得x=(1,1,1)T.\pmb x=(1,1,1)^T.xxx=(1,1,1)T.

Cholesky分解及一个例子相关推荐

  1. 矩阵的Cholesky分解

    原文链接:矩阵的Cholesky分解 首先来复习线性代数中几个重要的概念. 1)如果一个复矩阵A = A*(共轭转置),则A称为Hermitian矩阵.(注意,矩阵A转置后仍为其本身,显然A一定是方阵 ...

  2. 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用

    写一篇关于Cholesky分解的文章,作为学习笔记,尽量一文看懂矩阵Cholesky分解,以及用Cholesky分解来求解对称正定线性方程组,以及求对称正定矩阵的逆的应用. 文章目录 直接Choles ...

  3. 3阶Hermitian正定矩阵Cholesky分解通用表达式

    pdf文件 算法原理 将一个nnn阶Hermitian正定矩阵AAA分解为一个下三角矩阵LLL及其转置LTL^TLT的乘积,即: A=LLT(1)A=LL^T\tag{1} A=LLT(1) 推导过程 ...

  4. 线性代数笔记: Cholesky分解

    1 介绍 当一个实矩阵A是对称正定矩阵的时候,它可以分解成一个下三角矩阵L以及它的转置的乘积,即: 1.1 矩阵半正定的情况 如果矩阵是正定的话,那么L唯一确定:如果矩阵是半正定的话,那么也可以分解, ...

  5. cholesky分解java代码_Cholesky 分解(转)

    Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解. 它要求矩阵的所有特征值必须大于零,故分解的下三角的对角元也是大于零的. Cholesky分解法又称平方根法,是 ...

  6. 《游戏设计师修炼之道:数据驱动的游戏设计》一2.3 创建漏洞:一个例子

    2.3 创建漏洞:一个例子 现在,让我们使用上文提到的所有项目设计一个场景,通过实际演练来了解善意程序造成的恶劣后果.本章开始提到的电子邮件程序就是个好例子.稍后,我们将按照SDLC的所有步骤,来看看 ...

  7. 矩阵分解——三角分解(Cholesky 分解)

    (1)一个对角元素都是1的下三角矩阵,称为单位下三角矩阵. (2)上(下)三角矩阵的乘积仍是上(下)三角矩阵: (3)一般来说,矩阵的三角分解不唯一. (4)实对称正定矩阵 AA,Δk>0\De ...

  8. cholesky分解_Time Series Analysis-1.2 LDL分解

    最近考完两个小quiz,停了一段时间,今晚抽空继续来分享这门课的笔记. 1.前言 上一期分享了Cholesky分解的基本步骤和伪代码,本期介绍另外一种矩阵分解的方法--LDL分解. 首先补充一下,近几 ...

  9. 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解

    目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...

  10. 数值计算笔记-部分主元消去cholesky分解

    补充:接上一篇LU分解 1.高斯消元的一些问题:在之前高斯消元得到LU分解时,必须假设没有较换行的操作,即在消元过程中没有主元 a k k = 0 a_{kk} = 0 akk​=0的现象.但是实际情 ...

最新文章

  1. IOS 编程中引用第三方的方类库的方法及常见问题
  2. 说说Nginx的核心技术和场景的使用方式!
  3. windows下的mongodb安装与配置
  4. 以太坊钱包_最大的以太坊钱包币数量还在增加
  5. kali - Nmap
  6. mongoose查询不到数据表中的数据的问题
  7. 中国制造2025变革,背后的大数据来龙去脉
  8. linuxpython23同时_Linux-centos同时存在Python2-Python3
  9. hdu1247Hat’s Words(trie树)
  10. Kruskal算法实现最小生成树MST(java)
  11. css 使用本地字体
  12. eclipse 史上最舒服(且护眼) 字体+大小+配色 教程(强推!!)
  13. Android 颜色表
  14. qt4谷歌输入法 linux,linux mint设置google pinyin输入法
  15. TiDB 压力测试报告
  16. Vue基础渲染及修饰符
  17. 【问题】SQL远程过程调用失败
  18. SpringBoot快速上手
  19. java调用帆软cpt文件_报表中心FineReport中java如何直接调用报表打印
  20. html后续及css

热门文章

  1. 在线超级外链发布工具
  2. 金蝶K3系统参数年结不能配置利润科目
  3. ATM模拟演示软件之通信组件
  4. linux mint 图标主题_Ubuntu/Linux Mint 用上仿 Win7/Win8 主题
  5. webService简单概念
  6. 软件工程专业大学四年学什么
  7. Java开发最容易踩的十个大坑,每条都是教训
  8. java print argc_【转】main 函数参数 argc argv env 与命令行
  9. 盖章php源码,模拟电子签章盖章效果的jQuery插件源码_jquery
  10. php有个schost.exe_windows找不到svchost.exe(附图)