[矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式
乔累斯基分解公式
- 简介
- LLT分解
- 证明
- 具体解法
- 稳定性
- LDLT分解
- 证明
- 具体解法
- 例子
- LLT分解
- LDLT分解
- 引用
矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解,LLT(乔累斯基Cholesky)分解,LDLT(不带平方根乔累斯基)分解等,以及为了满足分解条件又加入行列变换的LPU分解,PLU分解,LUP分解,LDPU分解等。这里矩阵的三角分解系列教程主要是针对在学习三角分解时候的涉及到的一些细节,包括很多方法的来源和证明等,以及其中用到的一些矩阵操作的基础知识,主要包括:
- [矩阵的三角分解系列一] 高斯消元法
- [矩阵的三角分解系列二] LDU基本定理
- [矩阵的三角分解系列三] 杜利特/克劳特分解公式
- [矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式
- [矩阵的三角分解系列五] 三角分解中的行列变换
- [矩阵的三角分解系列六] Eigen中的三角分解
这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。
简介
之前[矩阵的三角分解系列三] 杜利特/克劳特分解公式文章介绍了针对一般的nnn阶方阵A\boldsymbol{A}A的三角分解的方法,但对于一些特殊的公式在分解时候会满足某些特定的性质可以减少分解的计算,类似乔累斯基(Cholesky)分解这种。
LLT分解
如果A\boldsymbol{A}A是nnn阶对称正定矩阵,则存在
A=LLT,(1)\boldsymbol{A} = \boldsymbol{L L^{\mathrm{T}}}, \tag{1} A=LLT,(1)
如果限定L\boldsymbol{L}L对角元素为正,则这个分解是唯一的,其中L\boldsymbol{L}L是下三角矩阵。
证明
因为A\boldsymbol{A}A是对称正定的,所以根据性质可知它的各阶顺序主子式均为正Δk>0(k=1,2,⋯,n)\Delta_k > 0(k=1,2,\cdots,n)Δk>0(k=1,2,⋯,n)。所以由前面的LDU基本定理可知A\boldsymbol{A}A可以被唯一的分解为
A=L~DU~\boldsymbol{A= \widetilde{L} D \widetilde{U}} A=LDU
又知L~\widetilde{\boldsymbol{L}}L是单位上三角矩阵,U~\widetilde{\boldsymbol{U}}U是单位下三角矩阵,D\boldsymbol{D}D是对角矩阵D=diag(d1,d2,⋯,dn)\boldsymbol{D}=\operatorname{diag}(d_{1}, d_{2}, \cdots, d_{n})D=diag(d1,d2,⋯,dn)。
又因为A\boldsymbol{A}A是对称矩阵,所以有
A=L~DU~=AT=(L~DU~)T=U~TDTL~T\boldsymbol{A= \widetilde{L} D \widetilde{U} = A^{\mathrm{T}} = ( \widetilde{L} D \widetilde{U})^{\mathrm{T}}=\widetilde{U}^{\mathrm{T}} D ^{\mathrm{T}} \widetilde{L}^{\mathrm{T}} } A=LDU=AT=(LDU)T=UTDTLT
又知道分解是唯一的,所以
L~=U~T,U~=L~T,\boldsymbol{\widetilde{L} = \widetilde{U}^{\mathrm{T}}, \widetilde{U} = \widetilde{L}^{\mathrm{T}}}, L=UT,U=LT,
所以A\boldsymbol{A}A的三角分解又可以写成
A=L~DL~T=U~TDU~\boldsymbol{A = \widetilde{L} D \widetilde{L}^{\mathrm{T}} = \widetilde{U}^{\mathrm{T}} D \widetilde{U}} A=LDLT=UTDU
后面讲解以A=U~TDU~\boldsymbol{A = \widetilde{U}^{\mathrm{T}} D \widetilde{U}}A=UTDU为例,因为∣U~∣=1≠0|\widetilde{\boldsymbol{U}}| = 1 \neq 0∣U∣=1=0,所以U~\widetilde{\boldsymbol{U}}U是可逆的,可得
D=(U~T)−1AU~−1=(U~−1)TAU~−1\boldsymbol{D = (\widetilde{U}^{\mathrm{T}})^{-1} A \widetilde{U}^{-1} = (\widetilde{U}^{-1})^{\mathrm{T}} A \widetilde{U}^{-1}} D=(UT)−1AU−1=(U−1)TAU−1
又因为A\boldsymbol{A}A是正定矩阵,又当x≠0\boldsymbol{x} \neq 0x=0,明显U~−1x≠0\boldsymbol{\widetilde{U}^{-1}x} \neq 0U−1x=0,所以
xTDx=xT(U~−1)TAU~−1x=(U~−1x)TAU~−1x>0\boldsymbol{x^{\mathrm{T}} D x =x^{\mathrm{T}} (\widetilde{U}^{-1})^{\mathrm{T}} A \widetilde{U}^{-1} x = (\widetilde{U}^{-1}x)^{\mathrm{T}} A \widetilde{U}^{-1} x} > 0 xTDx=xT(U−1)TAU−1x=(U−1x)TAU−1x>0
所以D\boldsymbol{D}D也是正定矩阵,那么所有的一阶主子式(对角元素)di>0(i=1,2,⋯,n)d_i > 0(i=1,2,\cdots,n)di>0(i=1,2,⋯,n),所以令
D12=diag(d1,d2,⋯,dn),\boldsymbol{D}^{\frac{1}{2}}=\operatorname{diag}(\sqrt{d_{1}}, \sqrt{d_{2}}, \cdots, \sqrt{d_{n}}), D21=diag(d1,d2,⋯,dn),
则A\boldsymbol{A}A又可以被唯一的分解为
A=L~DU~=L~D12D12L~T=(L~D12)(L~D12)T=LLT\boldsymbol{A = \widetilde{L} D \widetilde{U} = \widetilde{L}} \boldsymbol{D}^{\frac{1}{2}} \boldsymbol{D}^{\frac{1}{2}} \boldsymbol{\widetilde{L}^{\mathrm{T}}} = (\boldsymbol{\widetilde{L}} \boldsymbol{D}^{\frac{1}{2}})(\boldsymbol{\widetilde{L}} \boldsymbol{D}^{\frac{1}{2}})^{\mathrm{T}} = \boldsymbol{L L^{\mathrm{T}}} A=LDU=LD21D21LT=(LD21)(LD21)T=LLT
其中L=L~D12\boldsymbol{L}=\boldsymbol{\widetilde{L}} \boldsymbol{D}^{\frac{1}{2}}L=LD21对对角线元素全为正数d1,d2,⋯,dn\sqrt{d_{1}}, \sqrt{d_{2}}, \cdots, d_{n}d1,d2,⋯,dn的下三角矩阵。
公式(1)(1)(1)证明完成!!!
公式(1)(1)(1)是对称正定矩阵A\boldsymbol{A}A的乔累斯基(Cholesky)分解,亦称为平方根分解。
具体解法
下面给出进行乔累斯基(Cholesky)分解具体分解公式和步骤,对于nnn阶对称正定矩阵A\boldsymbol{A}A,有分解式
A=LLT\boldsymbol{A} = \boldsymbol{L L^{\mathrm{T}}} A=LLT
即
[a11⋯a1j⋯a1n⋮⋮⋮ai1⋯aij⋯ain⋮⋮⋮an1⋯anj⋯ann]=[l11⋮⋱li1⋯lii⋮⋱ln1⋯lni⋯lnn][l11⋯lj1⋯ln1⋱⋮ljj⋯lnj⋱⋮lnn]\left[\begin{matrix} a_{11} & \cdots & a_{1 j} & \cdots & a_{1 n} \\ \vdots & & \vdots & & \vdots \\ a_{i 1} & \cdots & a_{i j} & \cdots & a_{i n} \\ \vdots & & \vdots & & \vdots \\ a_{n 1} & \cdots & a_{n j} & \cdots & a_{n n} \end{matrix}\right] = \left[\begin{matrix} l_{11} & & & & \\ \vdots & \ddots & & & \\ l_{i 1} & \cdots & l_{i i} & & \\ \vdots & & & \ddots & \\ l_{n 1} & \cdots & l_{n i} & \cdots & l_{n n} \end{matrix}\right] \left[\begin{matrix} l_{11} & \cdots & l_{j 1} & \cdots & l_{n 1} \\ & \ddots & & & \vdots \\ & & l_{j j} & \cdots & l_{n j} \\ & & & \ddots & \vdots \\ & & & & l_{n n} \end{matrix}\right] ⎣⎢⎢⎢⎢⎢⎢⎡a11⋮ai1⋮an1⋯⋯⋯a1j⋮aij⋮anj⋯⋯⋯a1n⋮ain⋮ann⎦⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎡l11⋮li1⋮ln1⋱⋯⋯liilni⋱⋯lnn⎦⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎡l11⋯⋱lj1ljj⋯⋯⋱ln1⋮lnj⋮lnn⎦⎥⎥⎥⎥⎥⎥⎤
由于A\boldsymbol{A}A对称,所以只考虑下三角元素,即i≥ji \geq ji≥j的情况,有
aij=∑k=1jlikljk=∑k=1j−1likljk+lijljj,a_{i j} = \sum_{k=1}^{j}l_{ik}l_{jk} = \sum_{k=1}^{j-1}l_{ik}l_{jk} + l_{ij}l_{jj}, aij=k=1∑jlikljk=k=1∑j−1likljk+lijljj,
即
lij=(aij−∑k=1j−1likljk)/ljj,i≥j,(2)l_{ij} = \left( a_{i j}-\sum_{k=1}^{j-1}l_{ik}l_{jk} \right) / l_{jj}, \quad i\geq j, \tag{2} lij=(aij−k=1∑j−1likljk)/ljj,i≥j,(2)
而且当i=ji=ji=j时,有
lii=aii−∑k=1i−1lik2.(3)l_{ii} = \sqrt{a_{i i}-\sum_{k=1}^{i-1}l_{ik}^2}. \tag{3} lii=aii−k=1∑i−1lik2.(3)
这里与克劳特三角分解公式不同的是矩阵U=LT\boldsymbol{U=L^{\mathrm{T}}}U=LT,所以在求得L\boldsymbol{L}L的第iii行元素之后,LT\boldsymbol{L^{\mathrm{T}}}LT的第iii列元素也已求出,所以计算量相当于克劳特分解的一半左右(当然对角线元素是都需要求一次)。
稳定性
同时又有
aii=∑k=1ilik2,i=1,2,⋯,na_{i i} = \sum_{k=1}^{i}l_{ik}^2, \quad i = 1,2,\cdots,n aii=k=1∑ilik2,i=1,2,⋯,n
所以
lik2≤aii≤max1≤i≤n{aii}l_{ik}^2 \leq a_{i i} \leq \max_{1 \leq i \leq n}\{ a_{i i} \} lik2≤aii≤1≤i≤nmax{aii}
于是
maxi,k{lik2}≤max1≤i≤n{aii},\max_{i,k}\{ l_{ik}^2 \} \leq \max_{1 \leq i \leq n}\{ a_{i i} \}, i,kmax{lik2}≤1≤i≤nmax{aii},
以上分析说明,分解过程中元素likl_{ik}lik的数量级完全可以控制,从而计算过程是稳定的。
LDLT分解
然而,公式(1)(1)(1)这种LLT\boldsymbol{L L^{\mathrm{T}}}LLT分解也还是存在很大的缺陷的,因为计算这种分解要进行nnn次开方运算,而绝大多数计算机上的开方运算是用子程序实现的(转化成对数计算),这样不仅增加了计算量,而且还会扩大误差,甚至计算过程中有平方根号下出现负数的风险。为了避免上面的平方根运算,只需要在公式(1)(1)(1)中的L\boldsymbol{L}L和LT\boldsymbol{L^{\mathrm{T}}}LT之间插入一个特殊的对角矩阵D\boldsymbol{D}D,就能达到预定的效果。
如果A\boldsymbol{A}A是nnn阶对称正定矩阵,则A\boldsymbol{A}A可以唯一的分解为
A=LDLT,(4)\boldsymbol{A} = \boldsymbol{L D L^{\mathrm{T}}}, \tag{4} A=LDLT,(4)
其中L\boldsymbol{L}L是下三角矩阵,其中D\boldsymbol{D}D是对角矩阵,且对角线元素是L\boldsymbol{L}L对角线元素的倒数,即
L=[l11l21l22⋮⋮⋱ln1ln2⋯lnn],D=[1l111l22⋱1l22].\boldsymbol{L} = \left[\begin{matrix} l_{11} \\ l_{21} & l_{22} \\ \vdots & \vdots & \ddots \\ l_{n 1} & l_{n 2} & \cdots & l_{n n} \end{matrix}\right] , \quad \boldsymbol{D} = \left[\begin{matrix} \frac{1}{l_{11}} \\ & \frac{1}{l_{22}} \\ & & \ddots \\ & & & \frac{1}{l_{22}} \end{matrix}\right]. L=⎣⎢⎢⎢⎡l11l21⋮ln1l22⋮ln2⋱⋯lnn⎦⎥⎥⎥⎤,D=⎣⎢⎢⎡l111l221⋱l221⎦⎥⎥⎤.
证明
利用特劳特分解公式以及矩阵对称性aij=a=jia_{ij} = a={ji}aij=a=ji就能推出公式(4)(4)(4)了。证明如下
A=[l11l21l21⋮⋮⋱ln1ln2⋯lnn][1u12⋯u1n1⋯u2n⋱⋮1]\boldsymbol{A} = \left[\begin{matrix} l_{11} \\ l_{2 1} & l_{2 1} \\ \vdots & \vdots & \ddots & \\ l_{n 1} & l_{n 2} & \cdots & l_{n n} \end{matrix}\right] \left[\begin{matrix} 1 & u_{12} & \cdots & u_{1 n} \\ & 1 & \cdots & u_{2 n} \\ & & \ddots & \vdots \\ & & & 1 \end{matrix}\right] A=⎣⎢⎢⎢⎡l11l21⋮ln1l21⋮ln2⋱⋯lnn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡1u121⋯⋯⋱u1nu2n⋮1⎦⎥⎥⎥⎤
其中
{u12=a12/l11=a21/l11=l21/l11⋮u1n=ln1/l11{u23=(a23−l21u13)/l22=(a32−l21l31/l11)/l22=(a32−l31u12)/l22=l32/l22⋮u2n=ln2/l22\begin{aligned} &\left\{\begin{aligned} u_{12}=& a_{12} / l_{11}=a_{21} / l_{11}=l_{21} / l_{11} \\ \vdots \\ u_{1 n}=& l_{n 1} / l_{11} \end{aligned}\right. \\ &\left\{\begin{aligned} u_{23}=&\left(a_{23}-l_{21} u_{13}\right) / l_{22}=\left(a_{32}-l_{21} l_{31} / l_{11}\right) / l_{22} \\ =&\left(a_{32}-l_{31} u_{12}\right) / l_{22}=l_{32} / l_{22} \\ \vdots \\ u_{2 n}=& l_{n 2} / l_{22} \end{aligned}\right. \end{aligned} ⎩⎪⎪⎨⎪⎪⎧u12=⋮u1n=a12/l11=a21/l11=l21/l11ln1/l11⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧u23==⋮u2n=(a23−l21u13)/l22=(a32−l21l31/l11)/l22(a32−l31u12)/l22=l32/l22ln2/l22
以此类推,U\boldsymbol{U}U的第jjj行元素有
{uj,j+1=lj+1,j/ljj,j=1,⋯,n−1,⋮ujn=lnj/ljj\left\{\begin{aligned} & u_{j, j+1}=l_{j+1, j} / l_{j j}, \quad j=1, \cdots, n-1, \\ & \vdots \\ & u_{j n}=l_{n j} / l_{j j} \end{aligned}\right. ⎩⎪⎪⎨⎪⎪⎧uj,j+1=lj+1,j/ljj,j=1,⋯,n−1,⋮ujn=lnj/ljj
于是可以推导出U\boldsymbol{U}U为
U=[1⋯lj1l11⋯ln1l11⋱⋮⋮1⋯lnjljj⋱⋮1]=[1l11⋱1ljj⋱1lnn][l11⋯lj1⋯ln1⋱⋮⋮ljj⋯lnj⋱⋮lnn]=DLT\begin{aligned} \boldsymbol{U} & = \left[\begin{matrix} 1 & \cdots & \frac{l_{j 1}}{l_{11}} & \cdots & \frac{l_{n 1}}{l_{11}} \\ & \ddots & \vdots & & \vdots \\ & & 1 & \cdots & \frac{l_{n j}}{l_{j j}} \\ & & & \ddots & \vdots \\ & & & & 1 \end{matrix}\right] \\ & = \left[\begin{matrix} \frac{1}{l_{11}} \\ & \ddots \\ & & \frac{1}{l_{jj}} \\ & & & \ddots \\ & & & & \frac{1}{l_{nn}} \end{matrix}\right] \left[\begin{matrix} l_{11} & \cdots & l_{j 1} & \cdots & l_{n 1} \\ & \ddots & \vdots & & \vdots \\ & & l_{j j} & \cdots & l_{n j} \\ & & & \ddots & \vdots \\ & & & & l_{n n} \end{matrix}\right] = \boldsymbol{D L^{\mathrm{T}}} \end{aligned} U=⎣⎢⎢⎢⎢⎢⎢⎢⎡1⋯⋱l11lj1⋮1⋯⋯⋱l11ln1⋮ljjlnj⋮1⎦⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡l111⋱ljj1⋱lnn1⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎡l11⋯⋱lj1⋮ljj⋯⋯⋱ln1⋮lnj⋮lnn⎦⎥⎥⎥⎥⎥⎥⎤=DLT
所以有
LDLT\boldsymbol{L D L^{\mathrm{T}}} LDLT
公式(15)(15)(15)是对称正定矩阵A\boldsymbol{A}A的不带平方根乔累斯基(Cholesky)分解,亦称乔累斯基(Cholesky)分解的变形。
具体解法
下面给出进行不带平方根乔累斯基(Cholesky)分解具体分解公式和步骤,对于nnn阶对称正定矩阵A\boldsymbol{A}A,有分解式
LDLT\boldsymbol{L D L^{\mathrm{T}}} LDLT
即
[a11⋯ai1⋯an1⋮⋮⋮ai1⋯aii⋯ani⋮⋮⋮an1⋯ani⋯ann]=[l11⋮⋱li1⋯lii⋮⋮⋱ln1⋯lni⋯lnn][1⋯lj1l11⋯ln1l11⋱⋮⋮1⋯lnjljj⋱⋮1]\left[\begin{matrix} a_{11} & \cdots & a_{i 1} & \cdots & a_{n 1} \\ \vdots & & \vdots & & \vdots \\ a_{i 1} & \cdots & a_{i i} & \cdots & a_{n i} \\ \vdots & & \vdots & & \vdots \\ a_{n 1} & \cdots & a_{n i} & \cdots & a_{n n} \end{matrix}\right] = \left[\begin{matrix} l_{11} & & & & \\ \vdots & \ddots & & & \\ l_{i 1} & \cdots & l_{i i} & & \\ \vdots & & \vdots & \ddots & \\ l_{n 1} & \cdots & l_{n i} & \cdots & l_{n n} \end{matrix}\right] \left[\begin{matrix} 1 & \cdots & \frac{l_{j 1}}{l_{11}} & \cdots & \frac{l_{n 1}}{l_{11}} \\ & \ddots & \vdots & & \vdots \\ & & 1 & \cdots & \frac{l_{n j}}{l_{j j}} \\ & & & \ddots & \vdots \\ & & & & 1 \end{matrix}\right] ⎣⎢⎢⎢⎢⎢⎢⎡a11⋮ai1⋮an1⋯⋯⋯ai1⋮aii⋮ani⋯⋯⋯an1⋮ani⋮ann⎦⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎡l11⋮li1⋮ln1⋱⋯⋯lii⋮lni⋱⋯lnn⎦⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎡1⋯⋱l11lj1⋮1⋯⋯⋱l11ln1⋮ljjlnj⋮1⎦⎥⎥⎥⎥⎥⎥⎥⎤
由于A\boldsymbol{A}A对称,所以只考虑下三角元素,即i≥ji \geq ji≥j的情况,有
aij=∑k=1jlik(ljk/lkk)=∑k=1j−1lik(ljk/lkk)+lij,a_{i j} = \sum_{k=1}^{j}l_{ik}(l_{jk}/l_{kk}) = \sum_{k=1}^{j-1}l_{ik}(l_{jk}/l_{kk}) + l_{ij}, aij=k=1∑jlik(ljk/lkk)=k=1∑j−1lik(ljk/lkk)+lij,
即
lij=aij−∑k=1j−1likljk/lkk,i≥j,(5)l_{ij} = a_{i j}-\sum_{k=1}^{j-1}l_{ik}l_{jk} / l_{kk}, \quad i\geq j, \tag{5} lij=aij−k=1∑j−1likljk/lkk,i≥j,(5)
而且当i=ji=ji=j时,有
lii=aii−∑k=1j−1lik2/lkk,(6)l_{ii} = a_{i i}-\sum_{k=1}^{j-1}l_{ik}^2 / l_{kk}, \tag{6} lii=aii−k=1∑j−1lik2/lkk,(6)
这样做分解计算就不会出现开方的运算,弥补了公式(1)(1)(1)平方根分解的缺陷。因此,LDLT\boldsymbol{L D L T}LDLT是求解对称正定线性方程组最常用的一个分解公式。
例子
LLT分解
将下列矩阵进行乔累斯基(Cholesky)分解
A=[211132122].\boldsymbol{A} = \left[ \begin{matrix} 2 & 1 & 1 \\ 1 & 3 & 2 \\ 1 & 2 & 2 \end{matrix} \right]. A=⎣⎡211132122⎦⎤.
解:
根据公式(13)(13)(13)和公式(14)(14)(14)可得
l11=a11=2l21=a21/l11=22l22=a22−l212=102l31=a31/l11=22l32=(a32−l31l21)/l22=31010l33=a33−l312−l322==155\begin{aligned} l_{11} &= \sqrt{a_{11}}=\sqrt{2} \\ l_{21} &= a_{21}/ l_{11}=\frac{\sqrt{2}}{2} \\ l_{22} &=\sqrt{a_{22}-l_{21}^2}=\frac{\sqrt{10}}{2} \\ l_{31} &=a_{31}/ l_{11}=\frac{\sqrt{2}}{2} \\ l_{32} &=\left(a_{32}-l_{31}l_{21} \right) / l_{22}=\frac{3\sqrt{10}}{10} \\ l_{33} &=\sqrt{a_{33}-l_{31}^2-l_{32}^2}==\frac{\sqrt{15}}{5} \end{aligned} l11l21l22l31l32l33=a11=2=a21/l11=22=a22−l212=210=a31/l11=22=(a32−l31l21)/l22=10310=a33−l312−l322==515
则
A=LLT=[2221022231010155][2222210231010155]\boldsymbol{A} = \boldsymbol{L L^{\mathrm{T}}} = \left[ \begin{matrix} \sqrt{2} & \\ \frac{\sqrt{2}}{2} & \frac{\sqrt{10}}{2} \\ \frac{\sqrt{2}}{2} & \frac{3\sqrt{10}}{10} & \frac{\sqrt{15}}{5} \end{matrix} \right] \left[ \begin{matrix} \sqrt{2} & \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\\ & \frac{\sqrt{10}}{2} & \frac{3\sqrt{10}}{10} \\ & & \frac{\sqrt{15}}{5} \end{matrix} \right] A=LLT=⎣⎢⎡2222221010310515⎦⎥⎤⎣⎢⎡2222102210310515⎦⎥⎤
LDLT分解
将下列矩阵进行不带平方根乔累斯基(Cholesky)分解
A=[211132122].\boldsymbol{A} = \left[ \begin{matrix} 2 & 1 & 1 \\ 1 & 3 & 2 \\ 1 & 2 & 2 \end{matrix} \right]. A=⎣⎡211132122⎦⎤.
解:
根据公式(16)(16)(16)和公式(17)(17)(17)可得
l11=a11=2l21=a21=1l22=a22−l212/l11=52l31=a31=1l32=a32−l31l21/l11=32l33=a33−l312/l11−l322/l22==35\begin{aligned} l_{11} &=a_{11}=2 \\ l_{21} &=a_{21}=1 \\ l_{22} &=a_{22}-l_{21}^2/l_{11}=\frac{5}{2} \\ l_{31} &=a_{31}=1 \\ l_{32} &=a_{32}-l_{31}l_{21} / l_{11}=\frac{3}{2} \\ l_{33} &=a_{33}-l_{31}^2/l_{11}-l_{32}^2/l_{22}==\frac{3}{5} \end{aligned} l11l21l22l31l32l33=a11=2=a21=1=a22−l212/l11=25=a31=1=a32−l31l21/l11=23=a33−l312/l11−l322/l22==53
则
A=LDLT=[215213235][122553][211523235]\boldsymbol{A} = \boldsymbol{L D L^{\mathrm{T}}} = \left[ \begin{matrix} 2 & \\ 1 & \frac{5}{2} \\ 1 & \frac{3}{2} & \frac{3}{5} \end{matrix} \right] \left[ \begin{matrix} \frac{1}{2} & \\ & \frac{2}{5} \\ & & \frac{5}{3} \end{matrix} \right] \left[ \begin{matrix} 2 & 1 & 1 \\ & \frac{5}{2} & \frac{3}{2} \\ & & \frac{3}{5} \end{matrix} \right] A=LDLT=⎣⎡211252353⎦⎤⎣⎡215235⎦⎤⎣⎡212512353⎦⎤
引用
【1】 矩阵论(第二版)
[矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式相关推荐
- 平方根法 乔累斯基分解Cholesky_解线性方程组的直接解法
平方根法 乔累斯基分解Cholesky_解线性方程组的直接解法 标签:计算方法实验 #include <stdio.h> #include <math.h>const int ...
- 乔列斯基(Cholesky)法解方程(python,数值积分)
第四课 乔列斯基(Cholesky)法解方程 首先要清楚二次型和正定矩阵 "二次型"可以定义为n个变量的二次表达式 如果这个二次型的所有变量X的值都等于或大于零,那么这个二次型就是 ...
- [矩阵的三角分解系列二] LDU基本定理
LDU基本定理 简介 三角分解的存在和唯一性? LDU基本定理 充分性证明 存在性证明 唯一性证明 必要性证明 推论 稳定性 例子 引用 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU ...
- [矩阵的三角分解系列六] Eigen中的三角分解
Eigen中的三角分解 简介 安装命令 三角分解函数 使用范例 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解,LLT( ...
- 乔利斯基三角分解_《视觉SLAM十四讲课后作业》第二讲
1.设线性⽅程 Ax = b,在 A 为⽅阵的前提下,请回答以下问题: 1. 在什么条件下,x 有解且唯⼀? 非齐次线性方程在A的秩与[A|B]的秩相同时方程有解,当R(A)=R(A,B)=n时方程有 ...
- 乔利斯基三角分解_解线性方程组的直接法4.1-2.ppt
您所在位置:网站首页 > 海量文档  > 高等教育 > 微积分 解线性方程组的直接法4.1-2.ppt24页 本文档一 ...
- 「无心插柳柳成荫」的乔姆斯基 | 追溯 AI 大师系列
https://mp.weixin.qq.com/s?__biz=MzI5NTIxNTg0OA==&mid=2247495266&idx=1&sn=77a3eb91172618 ...
- 乔利斯基三角分解_杜利特尔及乔利斯基三角分解
/**********改进乔利斯基三角分解**********/ void Improved_Cholesky() { int i,j,k; float t; L=(float **)malloc(s ...
- 乔利斯基三角分解_二维二相模型的不完全乔利斯基——共轭斜量解法
前健罗厂刀二维二相模型是我国目前油田开发中使用最广泛的一种数值模型.这不仅因为它比较经济实用,对电子计算机的容量和速度要求不高,适宜于大规模普及推广应用,而且也因为现在我国油田的开发多采取注水保持压力 ...
最新文章
- Spring Boot 结合 Redis 缓存
- 前四次作业--个人总结
- python基础知识整理-python爬虫基础知识点整理
- 谈谈document.ready和window.onload的区别
- python生成器和装饰器_python之yield与装饰器
- mysql my.cnf key_buffer_size_mysql5.6之key_buffer_size优化设置-阿里云开发者社区
- 最新天猫面试题(含总结):线程池+并发编程+分布式设计+中间件
- .net core 多版本如何选择
- 转成数组_JavaScript之数组扁平化
- 单片机c语言pwm整流的程序,基于 单片机控制PWM整流电源的设计.doc
- 罗永浩进军乐坛,参加《谁是宝藏歌手》,网友:来祸害音乐圈了?
- 《教孩子编程(Python语言版)》课程介绍
- 未来已来?揭开量子计算机的神秘面纱
- LeetCode : Intersection of Two Linked Lists
- origin matlab调用,origin与matlab使用教程
- C#编写NotifyIcon
- Python使用wordcloud做词云
- word排版案例报告_文章为什么要排版?如何排版?这篇文章告诉你真相
- 手机打电话提示无法连接到移动网络
- 写的书太受欢迎怎么办?北大《深度强化学习》作者:那就开放下载吧
热门文章
- 验证站点怎么添加网站首页html代码,百度站长平台添加站点通过验证图文详解教程...
- containerd 配置镜像仓库完全攻略
- Oracle中的within,oracle的 listagg() WITHIN GROUP ()函数使用
- SS524V100 RTL8152B(USB转网卡)驱动移植
- 国防科大 计算机学院 李健老师,李剑 - 教师个人主页 - 南方科技大学
- 运维(37) Docker入门到实战
- 遥感基础知识——电磁波
- Failed to load config plugin:vue/essenti al to extend from.
- Graph Neural Network(GraphSAGE,GAT)
- ROS机器人项目开发11例-ROS Robotics Projects(6)Matlab和Android