精华内容
下载资源
问答
  • Eigen的LLT分解

    千次阅读 2019-05-15 15:34:53
    Cholesky 分解是把一个对称正定的...Eigen的LLT分解实现了Cholesky 分解。代码如下: #include<Eigen/Cholesky> int main(int argc, char** argv) { Eigen::Matrix2d down; down<<1,0, 2,1; ...

    Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解。Eigen的LLT分解实现了Cholesky 分解。代码如下:

    #include<Eigen/Cholesky>
    int main(int argc, char** argv)
    {
       Eigen::Matrix2d down;
       down<<1,0,
             2,1;
       //P<<1,2
       //   2,5
       Eigen::Matrix2d P=down*down.transpose();
       std::cout<<"P"<<P<<std::endl;
       Eigen::Matrix2d ml=P.llt().matrixL();
       Eigen::Matrix2d testP=ml*ml.transpose();
       std::cout<<"mllt"<<ml<<std::endl;
       std::cout<<"testP"<<testP<<std::endl;
      return 0;
    }
    

    参考
    https://blog.csdn.net/hanshihao1336295654/article/details/83422496
    https://blog.csdn.net/u013354805/article/details/48250547

    展开全文
  • 前言 本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B。主要参考了《计算机...2、LDLT分解与LLT分解(Cholesky分解) 3、QR分解 4、奇异值分...

    1. 前言

    本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,很早就想整理一下了,刚好看到Manii 的博客对矩阵分解的方法进行了总结,以方便求解线性方程组AX=B。在基于《计算机视觉—算法与应用》附录A 的内容 ,重点介绍了各种分解的适用情况、分解的特点。

    为什么要进行矩阵分解?
    1、矩阵分解可以在一定程度上降低存储空间,可以大大减少问题处理的计算量(如对一个矩阵进行求逆、求解方程组等),从而高效地解决目标问题。
    2、矩阵分解可以提高算法的数值稳定性。

    矩阵与矩阵分解的几何意义?
    在矩阵分解中,我们常常期望将矩阵分解成正交矩阵、对角矩阵以及上三角(下三角)矩阵的乘积。以三维矩阵为例,一个普通矩阵的几何意义是对坐标进行某种线性变换,而正交矩阵的几何意义是坐标的旋转,对角矩阵的几何意义是坐标的缩放,三角矩阵的几何意义是对坐标的切边。因此对矩阵分解的几何意义就是将这种变换分解成缩放、切边和旋转的过程。

    2. LU三角分解

    三角分解又称为LU分解或LR分解,是将原正方(square)矩阵分解成一个上三角矩阵和一个下三角矩阵
    A = L D U = L ( D U ) = ( L D ) U A=LDU=L(DU)=(LD)U A=LDU=L(DU)=(LD)U其中L是单位下三角矩阵,D是对角矩阵,U是单位上三角矩阵。

    3. Cholesky分解 — LDLT分解

    假设矩阵A为对称矩阵,且任意K阶主子式均不为0时(即正定),A有如下唯一的分解形式:
    A = L D L T = ( 1 0 0 L 21 1 0 L 31 L 32 1 ) ( D 1 0 0 0 D 2 0 0 0 D 3 ) ( 1 L 21 L 31 0 1 L 32 0 0 1 ) A=LDL^{T}=\begin{pmatrix} 1 & 0 & 0\\ L_{21} & 1 & 0\\ L_{31} & L_{32} & 1 \end{pmatrix}\begin{pmatrix} D_{1} & 0 & 0\\ 0& D_{2} & 0\\ 0& 0 & D_{3} \end{pmatrix}\begin{pmatrix} 1 & L_{21} & L_{31}\\ 0 & 1& L_{32}\\ 0 & 0 & 1 \end{pmatrix} A=LDLT=1L21L3101L32001D1000D2000D3100L2110L31L321

    即L为下三角单位矩阵,D为对角矩阵。LDLT方法实际上是Cholesky分解法的改进(LLT分解需要开平方),具体代码可见Chelesky分解LDLT用于求解线性方程组。

    注:一个对称矩阵A是正定的充要条件是对任何非零向量 x x x x T A x > 0 x^{T}Ax>0 xTAx>0,即对称矩阵A正定,非奇异,也可以说任意K阶主子式均不为0。

    4. Cholesky分解 — LLT分解

    LLT分解又被称为平方根分解,是LDLT分解的一种特殊形式,即其中的D为单位矩阵。

    一个对称正定矩阵A可以唯一地被分解成一个下三角矩阵L和L的转置LT相乘的形式:
    A = L L T = R T R A=LL^{T} =R^{T}R A=LLT=RTR其中的L是下三角矩阵R是上三角矩阵
    (正定要求矩阵的所有特征值必须大于0,因此分解的下三角对角元也是大于0的)
    LLT分解常用于求解最小二乘问题中的 A T A x = A T b A^{T}Ax=A^{T}b ATAx=ATb
    C = A T A = R R C=A^{T}A=RR C=ATA=RR,又有 d = A T b d=A^{T}b d=ATb,
    因子经过因子分解后,x可以通过解下面的方程获得,即只需求解两个三角系统,通过一系列前向和后向迭代运算。
    R T z = d , R x = z R^{T}z=d, Rx=z RTz=d,Rx=z LLT分解的总操作数为 O ( N 2 ) O(N2) O(N2),具体代码可见Chelesky分解LLT,对于系数矩阵来说操作数会大大降低。

    5. QR分解

    如果A是mxn实(复)矩阵,且其n个列线性无关,则A有分解:
    A = Q R A=QR A=QR 其中 Q Q Q是正交矩阵(或酉矩阵), Q Q T = 1 QQ^{T}=1 QQT=1 R R R是上三角矩阵。
    QR分解有三种常用方法:Givens 变换、Householder 变换,以及 Gram-Schmidt正交化。
    QR分解是一项广泛用于稳定求解病态最小二乘问题的方法,也是一些更复杂算法的矩阵,如计算SVD及特征值分解。在计算机视觉中,QR分解可以用于将相机矩阵转换为一个旋转矩阵和一个上三角的标定矩阵。

    6. 奇异值分解

    设A是一个mxn的矩阵,则存在一个分解的m阶正交矩阵U、非负对角阵Σ和n阶正交矩阵V:
    A = U D V T = U [ Σ 0 0 0 ] V T A=UDV^{T}=U\begin{bmatrix} \Sigma & 0\\ 0 & 0 \end{bmatrix}V^{T} A=UDVT=U[Σ000]VT在这里插入图片描述
    其中 Σ = d i a g ( σ 1 , σ 2 , . . . , σ r ) Σ=diag(σ1,σ2,...,σr) Σ=diag(σ1,σ2,...,σr) σ σ σ为矩阵A的全部非零奇异值,且一般我们会将 Σ Σ Σ的值从大到小排序。奇异值分解的一个重要性质是:在实际大多数情况中,奇异值 σ σ σ减小的速度特别快,因此可以使用前 r r r个奇异值来对矩阵做近似(即丢弃U和V的后几列),将获得原始矩阵A在最小二乘意义下的最佳逼近。

    矩阵的奇异值分解通常是不唯一的。
    SVD分解在最优化问题、特征值问题、最小二乘问题(尤其是亏秩最小二乘问题)等具有巨大的作用。
    SVD分解的几何意义可以通过公式的重写获得:
    A V = U Σ 或 A v j ​ = σ j ​ u j AV=UΣ 或 Av_{j}​=σ_{j}​u_{j} AV=UΣAvj=σjuj
    即当矩阵A作用于任何基向量 v j v_{j} vj时,会把 v j v_{j} vj​变换到 u j u_{j} uj​的方向,同时将 u j u_{j} uj​的长度变成 σ j σ_{j} σj​。另一种解释为:当一个矩阵A作用于一个向量时,由于矩阵A可以被分解为正交矩阵、对角矩阵、正交矩阵,因此可以理解为对该向量先旋转、再缩放,然后再旋转。

    7. 特征值分解

    如果A是一个NxN的方阵,且有N个线性无关的特征向量,则可以被写成特征值分解的形式:
    A = U Λ U T A=UΛU^{T} A=UΛUT
    其中U为NxN方阵,且第 i i i列为 A A A的特征向量, Λ Λ Λ为对角矩阵,其对角线上的元素为对应的特征值。注意只有可对角化矩阵才能作特征值分解。
    特征值分解可用于求解矩阵的逆:
    A − 1 = U Λ − 1 U A^{−1}=UΛ^{−1}U A1=UΛ1U在数据统计分析中常常出现A为半正定矩阵,其表示数据点的协方差,此时特征值分解就是通常所说的主分量分析(PCA),因为它完成了对数据点分布在其中心周围变化的主方向和幅度的建模。
    在求解最小二乘问题时,常常通过一系列外积之和构造对称矩阵C,此时C也是半正定的:
    C = ∑ i ​ a i ​ a i T ​ = A A T C=∑_{i}​a_{i}​a_{i}^{T}​=AA^{T} C=iaiaiT=AAT

    此时C的特征值和特征向量与A的奇异值和奇异向量:
    A = U D V T A=UDV^{T} A=UDVT C = A A T = U D V T V D T U T = U Λ U T C=AA^{T}=UDV^{T}VD^{T}U^{T}=UΛU^{T} C=AAT=UDVTVDTUT=UΛUT
    由此我们可以得到特征值 λ i = σ i 2 λ_{i}=σ^{2}_{i} λi=σi2

    对称矩阵:任意的 N×N 实对称矩阵都有 N 个线性无关的特征向量。并且这些特征向量都可以正交单位化而得到一组正交且模为 1 的向量。故实对称矩阵 A 可被分解成 A = U Λ U A=UΛU A=UΛU,其中 U U U 为 正交矩阵, Λ Λ Λ 为实对角矩阵,因此一个实对称矩阵有实特征值,其特征向量俩俩正交。—《多视图几何》附录A4.2

    展开全文
  • 本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,...包括:1、三角分解(LU分解)2、QR分解3、特征值分解4、奇异值分解(SVD分解)5、LDLT分解6、LLT分解(Cholesky分解)

    前言

    本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B。主要参考了《计算机视觉——算法与应用》附录A以及Eigen库的方法。本博客可能不会对分解讲的特别深入,主要是想弄清楚各个分解的条件、分解结果以及应用(或特点)。

    包括:
    1、三角分解(LU分解)
    2、LDLT分解与LLT分解(Cholesky分解)
    3、QR分解
    4、奇异值分解(SVD分解)
    5、特征值分解

    在矩阵分解之前

    为什么要进行矩阵分解

    1、矩阵分解可以在一定程度上降低存储空间,可以大大减少问题处理的计算量(如对一个矩阵进行求逆、求解方程组等),从而高效地解决目标问题。
    2、矩阵分解可以提高算法的数值稳定性。

    矩阵与矩阵分解的几何意义

    在矩阵分解中,我们常常期望将矩阵分解成正交矩阵、对角矩阵以及上三角(下三角)矩阵的乘积。以三维矩阵为例,一个普通矩阵的几何意义是对坐标进行某种线性变换,而正交矩阵的几何意义是坐标的旋转,对角矩阵的几何意义是坐标的缩放,三角矩阵的几何意义是对坐标的切边。因此对矩阵分解的几何意义就是将这种变换分解成缩放、切边和旋转的过程。

    常用矩阵分解

    LU三角分解

    三角分解又称为LU分解或LR分解,是将原正方(square)矩阵分解成一个上三角矩阵和一个下三角矩阵

    A = L D U = L ( D U ) = ( L D ) U A = LDU = L(DU) = (LD)U A=LDU=L(DU)=(LD)U

    其中L是单位下三角矩阵,D是对角矩阵,U是单位上三角矩阵。

    三角分解的主要用途在于简化一个大矩阵行列式值计算过程,或求解方程组(即高斯消元法)等。

    LDLT分解

    为A为对称矩阵,且任意一K阶主子阵均不为0时,A有如下唯一的分解形式:
    A = L D L T = ( 1 0 0 L 21 1 0 L 31 L 32 1 ) ( D 1 0 0 0 D 2 0 0 0 D 3 ) ( 1 L 21 L 31 0 1 L 32 0 0 1 ) A = LDL^T=\left(\begin{array}{ccc}{1} &amp; {0} &amp; {0} \\ {L_{21}} &amp; {1} &amp; {0} \\ {L_{31}} &amp; {L_{32}} &amp; {1}\end{array}\right)\left(\begin{array}{ccc}{D_{1}} &amp; {0} &amp; {0} \\ {0} &amp; {D_{2}} &amp; {0} \\ {0} &amp; {0} &amp; {D_{3}}\end{array}\right)\left(\begin{array}{ccc}{1} &amp; {L_{21}} &amp; {L_{31}} \\ {0} &amp; {1} &amp; {L_{32}} \\ {0} &amp; {0} &amp; {1}\end{array}\right) A=LDLT=1L21L3101L32001D1000D2000D3100L2110L31L321

    即L为下三角单位矩阵,D为对角矩阵。LDLT方法实际上是Cholesky分解法的改进(LLT分解需要开平方),用于求解线性方程组。

    LLT分解(Cholesky分解)

    LLT分解即矩阵的Cholesky分解,又被称为平方根分解,是LDLT分解的一种特殊形式,即其中的D为单位矩阵。
    对称正定矩阵A可以分解成一个下三角矩阵L和L的转置LT相乘的形式:

    A = L L T = R T R A = LL^T = R^T R A=LLT=RTR

    其中的L是下三角矩阵,R是上三角矩阵。
    (正定要求矩阵的所有特征值必须大于0,因此分解的下三角对角元也是大于0的)

    LLT分解常用于求解最小二乘问题中的 A T A x = A T b A^TAx = A^Tb ATAx=ATb
    C = A T A = R R C=A^TA=R^R C=ATA=RR,又有 d = A T b d=A^Tb d=ATb,
    因子经过因子分解后,x可以通过解下面的方程获得,即只需求解两个三角系统,通过一系列前向和后向迭代运算。

    R T z = d , R x = z R^Tz= d,Rx=z RTz=d,Rx=z

    LLT分解的总操作数为 O ( N 2 ) O(N^2) O(N2),对于系数矩阵来说操作数会大大降低。

    QR分解

    如果A是mxn实(复)矩阵,且其n个列线性无关,则A有分解:
    A = Q R A=QR A=QR

    其中Q是正交矩阵(或酉矩阵) Q Q T = 1 QQ^T =1 QQT=1,R是上三角矩阵

    QR分解有三种常用方法:Givens 变换、Householder 变换,以及 Gram-Schmidt正交化。

    QR分解是一项广泛用于稳定求解病态最小二乘问题的方法,也是一些更复杂算法的矩阵,如计算SVD及特征值分解。在计算机视觉中,QR分解可以用于将相机矩阵转换为一个旋转矩阵和一个上三角的标定矩阵。

    奇异值分解

    设A是一个mxn的矩阵,则存在一个分解的m阶正交矩阵U、非负对角阵Σ和n阶正交矩阵V:
    A = U D V T = U [ Σ 0 0 0 ] V T A=U D V^{\mathrm{T}}=U\left[\begin{array}{cc}{\Sigma} &amp; {0} \\ {0} &amp; {0}\end{array}\right] V^{\mathrm{T}} A=UDVT=U[Σ000]VT

    其中 Σ = d i a g ( σ 1 , σ 2 , . . . , σ r ) Σ=diag(\sigma_1,\sigma_2,...,\sigma_r) Σ=diag(σ1,σ2,...,σr) σ \sigma σ为矩阵A的全部非零奇异值,且一般我们会将Σ的值从大到小排序。奇异值分解的一个重要性质是:在实际大多数情况中,奇异值 σ \sigma σ减小的速度特别快,因此可以使用前r个奇异值来对矩阵做近似(即丢弃U和V的后几列),将获得原始矩阵A在最小二乘意义下的最佳逼近。

    矩阵的奇异值分解通常是不唯一的。

    SVD分解在最优化问题、特征值问题、最小二乘问题(尤其是亏秩最小二乘问题)等具有巨大的作用。

    SVD分解的几何意义可以通过公式的重写获得:
    A V = U Σ 或 A v j = σ j u j AV = UΣ 或 Av_j = \sigma_j u_j AV=UΣAvj=σjuj

    即当矩阵A作用于任何基向量 v j v_j vj时,会把 v j v_j vj变换到 u j u_j uj的方向,同时将 u j u_j uj的长度变成 σ j \sigma_j σj。也可以看成先旋转然后缩放再旋转的过程。

    特征值分解

    如果A是一个NxN的方阵,且有N个线性无关的特征向量,则可以被写成特征值分解的形式:
    A = U Λ U T A=UΛU^T A=UΛUT

    其中Q为NxN方阵,且第i列为A的特征向量,Λ为对角矩阵,其对角线上的元素为对应的特征值。注意只有可对角化矩阵才能作特征值分解。

    特征值分解可用于求解矩阵的逆:
    A − 1 = U Λ − 1 U T A^{-1}=UΛ^{-1}U^T A1=UΛ1UT

    在数据统计分析中常常出现A为半正定矩阵,其表示数据点的协方差,此时特征值分解就是通常所说的主分量分析(PCA),因为它完成了对数据点分布在其中心周围变化的主方向和幅度的建模。

    在求解最小二乘问题时,常常通过一系列外积之和构造对称矩阵C,此时C也是半正定的:
    C = ∑ i a i a i T = A A T C=\sum_i {a_ia_i^T} = AA^T C=iaiaiT=AAT

    此时C的特征值和特征向量与A的奇异值和奇异向量:
    A = U D V T A=U D V^T A=UDVT

    C = A A T = U D V T V D T U T = U Λ U T C = AA^T = U D V^T V D^T U^T=UΛU^T C=AAT=UDVTVDTUT=UΛUT

    由此我们可以得到特征值 λ i = σ i 2 \lambda_i = \sigma_i^2 λi=σi2

    展开全文
  • 设A为n阶实对称半正定矩阵,若存在一个对角线上元素全为非负的下三角阵L,使A=LLT,称为对A的三角分解。本文讨论了实对称半正定矩阵的三角分解的存在性以及这种分解的唯一性的充要条件,最后给出了实对称半正定矩阵...
  • 乔累斯基分解公式简介LLT分解证明具体解法稳定性LDLT分解证明具体解法例子LLT分解LDLT分解引用 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解,LLT(乔...

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

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

    简介

    之前[矩阵的三角分解系列三] 杜利特/克劳特分解公式文章介绍了针对一般的 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 D21D21L 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] a11ai1an1a1jaijanja1nainann=l11li1ln1liilnilnnl11lj1ljjln1lnjlnn
    由于 A \boldsymbol{A} A对称,所以只考虑下三角元素,即 i ≥ j i \geq j ij的情况,有
    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=1jlikljk=k=1j1likljk+lijljj,

    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=(aijk=1j1likljk)/ljj,ij,(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=aiik=1i1lik2 .(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=1ilik2,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} \} lik2aii1inmax{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}1inmax{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=l11l21ln1l22ln2lnn,D=l111l221l221.

    证明

    利用特劳特分解公式以及矩阵对称性 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=l11l21ln1l21ln2lnn1u121u1nu2n1
    其中
    { 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/l11ln1/l11u23==u2n=(a23l21u13)/l22=(a32l21l31/l11)/l22(a32l31u12)/l22=l32/l22ln2/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,,n1,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=1l11lj11l11ln1ljjlnj1=l111ljj1lnn1l11lj1ljjln1lnjlnn=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] a11ai1an1ai1aiianian1aniann=l11li1ln1liilnilnn1l11lj11l11ln1ljjlnj1
    由于 A \boldsymbol{A} A对称,所以只考虑下三角元素,即 i ≥ j i \geq j ij的情况,有
    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=1jlik(ljk/lkk)=k=1j1lik(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=aijk=1j1likljk/lkk,ij,(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=aiik=1j1lik2/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=211132122.
    解:
    根据公式 ( 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} l11l21l22l31l32l33=a11 =2 =a21/l11=22 =a22l212 =210 =a31/l11=22 =(a32l31l21)/l22=10310 =a33l312l322 ==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=211132122.
    解:
    根据公式 ( 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} l11l21l22l31l32l33=a11=2=a21=1=a22l212/l11=25=a31=1=a32l31l21/l11=23=a33l312/l11l322/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=211252353215235212512353

    引用

    【1】 矩阵论(第二版)

    展开全文
  • 编写的 乔列斯基分解算法的MATLAB程序如下: 功能:LL分解法求线性方程组AX=b的解调用格式:[X,L]=SymPosl(A,b)...%LLT分解法求线性方程组AX=b 解 %线性方程组的系数矩阵:A %线性方程组中的常数向量:b %线性方...
  • 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解LLT(乔累斯基Cholesky)分解,LDLT(不带平方根乔累斯基)分解等,以及为了满足分解条件又加入行列变换的...
  • 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解LLT(乔累斯基Cholesky)分解,LDLT(不带平方根乔累斯基)分解等,以及为了满足分解条件又加入行列变换的...
  • LLT_decompose.exe

    2021-02-19 17:00:00
    输入时只需要输入对称矩阵的下三角的部分(第一行只输入第一个元素,第二行输入第二个元素,以此类推),程序会自动把矩阵补齐,然後程序会对输入的矩阵做Cholesky分解, 最後再输入系数矩阵b,就可以得到对阵正定...
  • 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,LDU分解,杜利特(Doolittle)分解,克劳特(Crout)分解LLT(乔累斯基Cholesky)分解,LDLT(不带平方根乔累斯基)分解等,以及为了满足分解条件又加入行列变换的...
  • 目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ...
  • 矩阵的三角分解! 文章目录一、三角分解1.1、内容回顾 一、三角分解 LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积)...
  • 线性代数常用操作,内含矩阵的LU,LLT分解,特征值特征向量的求解,线性方程组的解法,Jacobi迭代法,隐式QL算法,Lanczos算法,
  • 矩阵分解——三角分解(Cholesky 分解

    万次阅读 多人点赞 2016-03-14 22:06:05
    (1)一个对角元素都是1的下三角矩阵,称为单位下三角矩阵。 (2)上(下)三角矩阵的乘积仍是上...三角分解如果方阵 AA 可分解为一个下三角矩阵 LL 和一个上三角矩阵 UU 的乘积,则称 AA 可作三角分解或 LU(LR)LU(LR)
  • 矩阵分解 Cholesky分解

    万次阅读 2017-11-17 11:36:08
    Cholesky分解法又叫平方根法,是求解对称正定线性方程组最常用的方法之一。对于一般矩阵,为了消除LU分 解的局限性和误差的过分积累,采用了选主元的方法,但对于对称正定矩阵而言,选主元是不必要的。   定理:...
  • Cholesky分解及一个例子

    万次阅读 2019-03-03 10:09:36
    文字来源:C.E. Rasmussen &amp; K.I. Williams, Gaissian Processes for Machine ...LLT=ALL^T=ALLT=A 其中,L称为Cholesky因子。Cholesky分解对于解决带有对称正定系数矩阵A的线性问题非常有效。为了求解Ax=bA...
  • LU分解、LDLT分解和Cholesky分解

    万次阅读 多人点赞 2014-03-24 13:57:21
    LU分解 概念:假定我们能把矩阵A写成下列两个矩阵相乘的形式:A=LU,其中L为下三角矩阵,U为上三角矩阵。这样我们可以把线性方程组Ax= b写成 Ax= (LU)x = L(Ux) = b。令Ux = y,则原线性方程组Ax = b可首先求解向量y...
  • 本文结合稀疏策略和对角扰动技术的修正的不完全LLT分解预条件技术,用来加速共轭垂直共轭梯度法(COCG)求解离散散射问题得到的大型、稀疏的复对称线性系统的求解速率.数值试验验证了基于扰动的不完全分解预条件方法...
  • 矩阵的三角分解是求解线性方程组常用的方法,包括LU分解,杜利特(Doolittle)分解,克劳特(Crout)分解LLT(乔累斯基Cholesky)分解,LDLT(不带平方根乔累斯基)分解等。 介绍 按照高斯消元过程文章中假设矩阵A\mathbf{...
  • Eigen 3.2稀疏矩阵入门

    千次阅读 2018-12-12 15:59:51
    Eigen自带的稀疏矩阵分解功能包括LDLt、LLt分解(即Cholesky分解,这个功能是LGPL许可,不是Eigen的MPL许可)、LU分解、QR分解(这个是3.2版本之后正式Release的)、共轭梯度解矩阵等。另外还提供了到第三方稀疏矩阵...
  • 7.4.3 矩阵极分解和平方根分解 当矩阵 AAA 是方阵时 A=UΣVT=UVTVΣVT=(UVT)(VΣVT)=QSQ=UVT是正交矩阵,S=VΣVT是对称半正定矩阵,即对任意向量x,有xTSx≥0成立,因为对角阵Σ对角元素非负.又A=UΣVT=UΣUTUVT=(U...
  • 5. 矩阵的LU分解、QR分解

    千次阅读 2017-05-10 16:23:38
    5. 矩阵的LU分解、QR分解 pdf版本下载:https://pan.baidu.com/s/1eRZySbK html版本下载:https://pan.baidu.com/s/1geVsYvL   这一部分主要回顾一下矩阵里面的两种重要分解,LU分解和QR分解。LU分解的主要用途...
  • UKF-协方差矩阵分解

    2021-06-27 10:09:03
    UKF-协方差矩阵分解 在SUT变化中,需要对协方差矩阵进行分解。...=[a11a21a31a21a22a23a31a32a33]=(l1100l21l220l31l32l33)(l11l21l310l22l3200l33)=LLT=(l112l21l11l31l11l21l11l212+l222l31l21+l32l22l3
  • 矩阵的正交分解又称为QR分解,是将矩阵分解为一个正交矩阵Q和一个上三角矩阵的乘积的形式。 任意实数方阵A,都能被分解为 。这里的Q为正交单位阵,即 R是一个上三角矩阵。这种分解被称为QR分解。 QR分解也有若干种...
  • 最近需要计算厄米特矩阵的逆,基于LLT分解和LDLT分解,自己写了几个代码,但精度不是很高,所以考虑了使用Eigen,精度和准确性还是蛮高的。 网址:http://eigen.tuxfamily.org/index.php?title=Main_P...
  • Eigen常用矩阵分解以及求解线性方程组方法 浅析 关于矩阵分解的理论知识,可参考一下博客: https://blog.csdn.net/u013354805/article/details/48250547 我只是简单整理一下。 一. 矩阵分解: 矩阵分解 ...
  • 矩阵代数(五)- 矩阵因式分解

    千次阅读 2019-03-09 18:10:28
    LU\boldsymbol{LU}LU分解 LU\boldsymbol{LU}LU分解算法 矩阵A\boldsymbol{A}A的因式分解是把A\boldsymbol{A}A表示为两个或更多个矩阵的乘积。 LU\boldsymbol{LU}LU分解 设A\boldsymbol{A}A是m×nm \times nm×n...
  • Cholesky分解定理:就是把一个正定的矩阵分解成两个对称的三角阵 A=LLTA = LL^{T}A=LLT 若要LLL为单位下三角阵,则有 A=LDLTA = LDL^{T}A=LDLT 下面A=LDLTA = LDL^{T}A=LDLT的代码实现 import numpy as np def ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 554
精华内容 221
关键字:

llt分解