[矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式

您所在的位置:网站首页 excel算矩阵的平方 [矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式

[矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式

2024-01-21 22:40| 来源: 网络整理| 查看: 265

乔累斯基分解公式 简介LLT分解证明具体解法稳定性 LDLT分解证明具体解法 例子LLT分解LDLT分解 引用

矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解,LLT(乔累斯基Cholesky)分解,LDLT(不带平方根乔累斯基)分解等,以及为了满足分解条件又加入行列变换的LPU分解,PLU分解,LUP分解,LDPU分解等。这里矩阵的三角分解系列教程主要是针对在学习三角分解时候的涉及到的一些细节,包括很多方法的来源和证明等,以及其中用到的一些矩阵操作的基础知识,主要包括:

[矩阵的三角分解系列一] 高斯消元法[矩阵的三角分解系列二] LDU基本定理[矩阵的三角分解系列三] 杜利特/克劳特分解公式[矩阵的三角分解系列四] 乔累斯基(Cholesky)分解公式[矩阵的三角分解系列五] 三角分解中的行列变换[矩阵的三角分解系列六] Eigen中的三角分解

这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。

简介

之前[矩阵的三角分解系列三] 杜利特/克劳特分解公式文章介绍了针对一般的 n n n阶方阵 A \boldsymbol{A} A的三角分解的方法,但对于一些特殊的公式在分解时候会满足某些特定的性质可以减少分解的计算,类似乔累斯基(Cholesky)分解这种。

LLT分解

如果 A \boldsymbol{A} A是 n n n阶对称正定矩阵,则存在 A = L L T , (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 ~ D U ~ \boldsymbol{A= \widetilde{L} D \widetilde{U}} A=L DU 又知 L ~ \widetilde{\boldsymbol{L}} L 是单位上三角矩阵, U ~ \widetilde{\boldsymbol{U}} U 是单位下三角矩阵, D \boldsymbol{D} D是对角矩阵 D = diag ⁡ ( d 1 , d 2 , ⋯   , d n ) \boldsymbol{D}=\operatorname{diag}(d_{1}, d_{2}, \cdots, d_{n}) D=diag(d1​,d2​,⋯,dn​)。 又因为 A \boldsymbol{A} A是对称矩阵,所以有 A = L ~ D U ~ = A T = ( L ~ D U ~ ) T = U ~ T D T L ~ 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=L DU =AT=(L DU )T=U TDTL T 又知道分解是唯一的,所以 L ~ = U ~ T , U ~ = L ~ T , \boldsymbol{\widetilde{L} = \widetilde{U}^{\mathrm{T}}, \widetilde{U} = \widetilde{L}^{\mathrm{T}}}, L =U T,U =L T, 所以 A \boldsymbol{A} A的三角分解又可以写成 A = L ~ D L ~ T = U ~ T D U ~ \boldsymbol{A = \widetilde{L} D \widetilde{L}^{\mathrm{T}} = \widetilde{U}^{\mathrm{T}} D \widetilde{U}} A=L DL T=U TDU 后面讲解以 A = U ~ T D U ~ \boldsymbol{A = \widetilde{U}^{\mathrm{T}} D \widetilde{U}} A=U TDU 为例,因为 ∣ U ~ ∣ = 1 ≠ 0 |\widetilde{\boldsymbol{U}}| = 1 \neq 0 ∣U ∣=1​=0,所以 U ~ \widetilde{\boldsymbol{U}} U 是可逆的,可得 D = ( U ~ T ) − 1 A U ~ − 1 = ( U ~ − 1 ) T A U ~ − 1 \boldsymbol{D = (\widetilde{U}^{\mathrm{T}})^{-1} A \widetilde{U}^{-1} = (\widetilde{U}^{-1})^{\mathrm{T}} A \widetilde{U}^{-1}} D=(U T)−1AU −1=(U −1)TAU −1 又因为 A \boldsymbol{A} A是正定矩阵,又当 x ≠ 0 \boldsymbol{x} \neq 0 x​=0,明显 U ~ − 1 x ≠ 0 \boldsymbol{\widetilde{U}^{-1}x} \neq 0 U −1x​=0,所以 x T D x = x T ( U ~ − 1 ) T A U ~ − 1 x = ( U ~ − 1 x ) T A U ~ − 1 x > 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也是正定矩阵,那么所有的一阶主子式(对角元素) d i > 0 ( i = 1 , 2 , ⋯   , n ) d_i > 0(i=1,2,\cdots,n) di​>0(i=1,2,⋯,n),所以令 D 1 2 = diag ⁡ ( d 1 , d 2 , ⋯   , d n ) , \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 ~ D U ~ = L ~ D 1 2 D 1 2 L ~ T = ( L ~ D 1 2 ) ( L ~ D 1 2 ) T = L L T \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=L DU =L D21​D21​L T=(L D21​)(L D21​)T=LLT 其中 L = L ~ D 1 2 \boldsymbol{L}=\boldsymbol{\widetilde{L}} \boldsymbol{D}^{\frac{1}{2}} L=L D21​对对角线元素全为正数 d 1 , d 2 , ⋯   , d n \sqrt{d_{1}}, \sqrt{d_{2}}, \cdots, d_{n} d1​ ​,d2​ ​,⋯,dn​的下三角矩阵。

公式 ( 1 ) (1) (1)证明完成!!!

公式 ( 1 ) (1) (1)是对称正定矩阵 A \boldsymbol{A} A的乔累斯基(Cholesky)分解,亦称为平方根分解。

具体解法

下面给出进行乔累斯基(Cholesky)分解具体分解公式和步骤,对于 n n n阶对称正定矩阵 A \boldsymbol{A} A,有分解式 A = L L T \boldsymbol{A} = \boldsymbol{L L^{\mathrm{T}}} A=LLT 即 [ a 11 ⋯ a 1 j ⋯ a 1 n ⋮ ⋮ ⋮ a i 1 ⋯ a i j ⋯ a i n ⋮ ⋮ ⋮ a n 1 ⋯ a n j ⋯ a n n ] = [ l 11 ⋮ ⋱ l i 1 ⋯ l i i ⋮ ⋱ l n 1 ⋯ l n i ⋯ l n n ] [ l 11 ⋯ l j 1 ⋯ l n 1 ⋱ ⋮ l j j ⋯ l n j ⋱ ⋮ l n n ] \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​​⋱⋯⋯​lii​lni​​⋱⋯​lnn​​⎦⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎡​l11​​⋯⋱​lj1​ljj​​⋯⋯⋱​ln1​⋮lnj​⋮lnn​​⎦⎥⎥⎥⎥⎥⎥⎤​ 由于 A \boldsymbol{A} A对称,所以只考虑下三角元素,即 i ≥ j i \geq j i≥j的情况,有 a i j = ∑ k = 1 j l i k l j k = ∑ k = 1 j − 1 l i k l j k + l i j l j j , 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∑j​lik​ljk​=k=1∑j−1​lik​ljk​+lij​ljj​, 即 l i j = ( a i j − ∑ k = 1 j − 1 l i k l j k ) / l j j , 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−1​lik​ljk​)/ljj​,i≥j,(2) 而且当 i = j i=j i=j时,有 l i i = a i i − ∑ k = 1 i − 1 l i k 2 . (3) l_{ii} = \sqrt{a_{i i}-\sum_{k=1}^{i-1}l_{ik}^2}. \tag{3} lii​=aii​−k=1∑i−1​lik2​ ​.(3) 这里与克劳特三角分解公式不同的是矩阵 U = L T \boldsymbol{U=L^{\mathrm{T}}} U=LT,所以在求得 L \boldsymbol{L} L的第 i i i行元素之后, L T \boldsymbol{L^{\mathrm{T}}} LT的第 i i i列元素也已求出,所以计算量相当于克劳特分解的一半左右(当然对角线元素是都需要求一次)。

稳定性

同时又有 a i i = ∑ k = 1 i l i k 2 , i = 1 , 2 , ⋯   , n a_{i i} = \sum_{k=1}^{i}l_{ik}^2, \quad i = 1,2,\cdots,n aii​=k=1∑i​lik2​,i=1,2,⋯,n 所以 l i k 2 ≤ a i i ≤ max ⁡ 1 ≤ i ≤ n { a i i } l_{ik}^2 \leq a_{i i} \leq \max_{1 \leq i \leq n}\{ a_{i i} \} lik2​≤aii​≤1≤i≤nmax​{aii​} 于是 max ⁡ i , k { l i k 2 } ≤ max ⁡ 1 ≤ i ≤ n { a i i } , \max_{i,k}\{ l_{ik}^2 \} \leq \max_{1 \leq i \leq n}\{ a_{i i} \}, i,kmax​{lik2​}≤1≤i≤nmax​{aii​}, 以上分析说明,分解过程中元素 l i k l_{ik} lik​的数量级完全可以控制,从而计算过程是稳定的。

LDLT分解

然而,公式 ( 1 ) (1) (1)这种 L L T \boldsymbol{L L^{\mathrm{T}}} LLT分解也还是存在很大的缺陷的,因为计算这种分解要进行 n n n次开方运算,而绝大多数计算机上的开方运算是用子程序实现的(转化成对数计算),这样不仅增加了计算量,而且还会扩大误差,甚至计算过程中有平方根号下出现负数的风险。为了避免上面的平方根运算,只需要在公式 ( 1 ) (1) (1)中的 L \boldsymbol{L} L和 L T \boldsymbol{L^{\mathrm{T}}} LT之间插入一个特殊的对角矩阵 D \boldsymbol{D} D,就能达到预定的效果。 如果 A \boldsymbol{A} A是 n n n阶对称正定矩阵,则 A \boldsymbol{A} A可以唯一的分解为 A = L D L T , (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 = [ l 11 l 21 l 22 ⋮ ⋮ ⋱ l n 1 l n 2 ⋯ l n n ] , D = [ 1 l 11 1 l 22 ⋱ 1 l 22 ] . \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=⎣⎢⎢⎢⎡​l11​l21​⋮ln1​​l22​⋮ln2​​⋱⋯​lnn​​⎦⎥⎥⎥⎤​,D=⎣⎢⎢⎡​l11​1​​l22​1​​⋱​l22​1​​⎦⎥⎥⎤​.

证明

利用特劳特分解公式以及矩阵对称性 a i j = a = j i a_{ij} = a={ji} aij​=a=ji就能推出公式 ( 4 ) (4) (4)了。证明如下 A = [ l 11 l 21 l 21 ⋮ ⋮ ⋱ l n 1 l n 2 ⋯ l n n ] [ 1 u 12 ⋯ u 1 n 1 ⋯ u 2 n ⋱ ⋮ 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=⎣⎢⎢⎢⎡​l11​l21​⋮ln1​​l21​⋮ln2​​⋱⋯​lnn​​⎦⎥⎥⎥⎤​⎣⎢⎢⎢⎡​1​u12​1​⋯⋯⋱​u1n​u2n​⋮1​⎦⎥⎥⎥⎤​ 其中 { u 12 = a 12 / l 11 = a 21 / l 11 = l 21 / l 11 ⋮ u 1 n = l n 1 / l 11 { u 23 = ( a 23 − l 21 u 13 ) / l 22 = ( a 32 − l 21 l 31 / l 11 ) / l 22 = ( a 32 − l 31 u 12 ) / l 22 = l 32 / l 22 ⋮ u 2 n = l n 2 / l 22 \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​/l11​ln1​/l11​​⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​u23​==⋮u2n​=​(a23​−l21​u13​)/l22​=(a32​−l21​l31​/l11​)/l22​(a32​−l31​u12​)/l22​=l32​/l22​ln2​/l22​​​ 以此类推, U \boldsymbol{U} U的第 j j j行元素有 { u j , j + 1 = l j + 1 , j / l j j , j = 1 , ⋯   , n − 1 , ⋮ u j n = l n j / l j j \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 ⋯ l j 1 l 11 ⋯ l n 1 l 11 ⋱ ⋮ ⋮ 1 ⋯ l n j l j j ⋱ ⋮ 1 ] = [ 1 l 11 ⋱ 1 l j j ⋱ 1 l n n ] [ l 11 ⋯ l j 1 ⋯ l n 1 ⋱ ⋮ ⋮ l j j ⋯ l n j ⋱ ⋮ l n n ] = D L T \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​⋯⋱​l11​lj1​​⋮1​⋯⋯⋱​l11​ln1​​⋮ljj​lnj​​⋮1​⎦⎥⎥⎥⎥⎥⎥⎥⎤​=⎣⎢⎢⎢⎢⎡​l11​1​​⋱​ljj​1​​⋱​lnn​1​​⎦⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎡​l11​​⋯⋱​lj1​⋮ljj​​⋯⋯⋱​ln1​⋮lnj​⋮lnn​​⎦⎥⎥⎥⎥⎥⎥⎤​=DLT​ 所以有 L D L T \boldsymbol{L D L^{\mathrm{T}}} LDLT 公式 ( 15 ) (15) (15)是对称正定矩阵 A \boldsymbol{A} A的不带平方根乔累斯基(Cholesky)分解,亦称乔累斯基(Cholesky)分解的变形。

具体解法

下面给出进行不带平方根乔累斯基(Cholesky)分解具体分解公式和步骤,对于 n n n阶对称正定矩阵 A \boldsymbol{A} A,有分解式 L D L T \boldsymbol{L D L^{\mathrm{T}}} LDLT 即 [ a 11 ⋯ a i 1 ⋯ a n 1 ⋮ ⋮ ⋮ a i 1 ⋯ a i i ⋯ a n i ⋮ ⋮ ⋮ a n 1 ⋯ a n i ⋯ a n n ] = [ l 11 ⋮ ⋱ l i 1 ⋯ l i i ⋮ ⋮ ⋱ l n 1 ⋯ l n i ⋯ l n n ] [ 1 ⋯ l j 1 l 11 ⋯ l n 1 l 11 ⋱ ⋮ ⋮ 1 ⋯ l n j l j j ⋱ ⋮ 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​⋯⋱​l11​lj1​​⋮1​⋯⋯⋱​l11​ln1​​⋮ljj​lnj​​⋮1​⎦⎥⎥⎥⎥⎥⎥⎥⎤​ 由于 A \boldsymbol{A} A对称,所以只考虑下三角元素,即 i ≥ j i \geq j i≥j的情况,有 a i j = ∑ k = 1 j l i k ( l j k / l k k ) = ∑ k = 1 j − 1 l i k ( l j k / l k k ) + l i j , 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∑j​lik​(ljk​/lkk​)=k=1∑j−1​lik​(ljk​/lkk​)+lij​, 即 l i j = a i j − ∑ k = 1 j − 1 l i k l j k / l k k , 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−1​lik​ljk​/lkk​,i≥j,(5) 而且当 i = j i=j i=j时,有 l i i = a i i − ∑ k = 1 j − 1 l i k 2 / l k k , (6) l_{ii} = a_{i i}-\sum_{k=1}^{j-1}l_{ik}^2 / l_{kk}, \tag{6} lii​=aii​−k=1∑j−1​lik2​/lkk​,(6) 这样做分解计算就不会出现开方的运算,弥补了公式 ( 1 ) (1) (1)平方根分解的缺陷。因此, L D L T \boldsymbol{L D L T} LDLT是求解对称正定线性方程组最常用的一个分解公式。

例子 LLT分解

将下列矩阵进行乔累斯基(Cholesky)分解 A = [ 2 1 1 1 3 2 1 2 2 ] . \boldsymbol{A} = \left[ \begin{matrix} 2 & 1 & 1 \\ 1 & 3 & 2 \\ 1 & 2 & 2 \end{matrix} \right]. A=⎣⎡​211​132​122​⎦⎤​. 解: 根据公式 ( 13 ) (13) (13)和公式 ( 14 ) (14) (14)可得 l 11 = a 11 = 2 l 21 = a 21 / l 11 = 2 2 l 22 = a 22 − l 21 2 = 10 2 l 31 = a 31 / l 11 = 2 2 l 32 = ( a 32 − l 31 l 21 ) / l 22 = 3 10 10 l 33 = a 33 − l 31 2 − l 32 2 = = 15 5 \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} l11​l21​l22​l31​l32​l33​​=a11​ ​=2 ​=a21​/l11​=22 ​​=a22​−l212​ ​=210 ​​=a31​/l11​=22 ​​=(a32​−l31​l21​)/l22​=10310 ​​=a33​−l312​−l322​ ​==515 ​​​ 则 A = L L T = [ 2 2 2 10 2 2 2 3 10 10 15 5 ] [ 2 2 2 2 2 10 2 3 10 10 15 5 ] \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=⎣⎢⎡​2 ​22 ​​22 ​​​210 ​​10310 ​​​515 ​​​⎦⎥⎤​⎣⎢⎡​2 ​​22 ​​210 ​​​22 ​​10310 ​​515 ​​​⎦⎥⎤​

LDLT分解

将下列矩阵进行不带平方根乔累斯基(Cholesky)分解 A = [ 2 1 1 1 3 2 1 2 2 ] . \boldsymbol{A} = \left[ \begin{matrix} 2 & 1 & 1 \\ 1 & 3 & 2 \\ 1 & 2 & 2 \end{matrix} \right]. A=⎣⎡​211​132​122​⎦⎤​. 解: 根据公式 ( 16 ) (16) (16)和公式 ( 17 ) (17) (17)可得 l 11 = a 11 = 2 l 21 = a 21 = 1 l 22 = a 22 − l 21 2 / l 11 = 5 2 l 31 = a 31 = 1 l 32 = a 32 − l 31 l 21 / l 11 = 3 2 l 33 = a 33 − l 31 2 / l 11 − l 32 2 / l 22 = = 3 5 \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} l11​l21​l22​l31​l32​l33​​=a11​=2=a21​=1=a22​−l212​/l11​=25​=a31​=1=a32​−l31​l21​/l11​=23​=a33​−l312​/l11​−l322​/l22​==53​​ 则 A = L D L T = [ 2 1 5 2 1 3 2 3 5 ] [ 1 2 2 5 5 3 ] [ 2 1 1 5 2 3 2 3 5 ] \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=⎣⎡​211​25​23​​53​​⎦⎤​⎣⎡​21​​52​​35​​⎦⎤​⎣⎡​2​125​​123​53​​⎦⎤​

引用

【1】 矩阵论(第二版)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3