对称正定矩阵的Cholesky分解

对称正定矩阵的三角分解

  A \ A  A为n阶对称正定矩阵,则   A \ A  A可以分解为一个单位下三角矩阵   L ~ \ \tilde{L}  L~和一个上三角矩阵   U ~ \ \tilde{U}  U~的乘积:
  A = L ~ U ~ \ A=\tilde{L} \tilde{U}  A=L~U~
  D = d i a g ( u 11 ~ , ⋯   , u n n ~ ) \ D=diag(\tilde{u_{11}},\cdots, \tilde{u_{nn}})  D=diag(u11~,,unn~),则
  U ~ = D U = D 1 2 D 1 2 U \ \tilde{U}=DU=D^{\frac{1}{2}}D^{\frac{1}{2}}U  U~=DU=D21D21U
得:
  A = ( L ~ D 1 2 ) ( D 1 2 U ) = L U 1 \ A=(\tilde{L}D^{\frac{1}{2}})(D^{\frac{1}{2}}U)=LU_1  A=(L~D21)(D21U)=LU1
其中   L = L ~ D 1 2 \ L=\tilde{L}D^{\frac{1}{2}}  L=L~D21为非奇异的下三角矩阵,   U 1 = D 1 2 U \ U_1=D^{\frac{1}{2}}U  U1=D21U为非奇异的上三角矩阵。因为   A = A T \ A=A^T  A=AT,所以
  L U 1 = U 1 T L T \ LU_1=U_1^T L^T  LU1=U1TLT
由于A的分解是唯一的,于是
  U 1 = L T \ U_1=L^T  U1=LT

  A = L L T ( 1 ) \ A=LL^T \quad (1)  A=LLT(1)
以上就是对成正定矩阵的分解定理

Cholesky分解

设A是对称正定矩阵,则存在对角元全是正数的下三角矩阵L,使(1)存在且唯一,这种分解称为Cholesky分解,假设以算出L的第1至j-1列元素,由(1)得
  a i j = ∑ k = 1 j − 1 l i k l j k + l i j l j j ( 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=1j1likljk+lijljj(i=j,j+1,,n)
于是对于j=1,2,…,n 有
  l j j = ( a j j − ∑ k = 1 j − 1 l j k 2 ) 1 2 \ l_{jj}=(a_{jj}-\sum_{k=1}^{j-1}l_{jk}^2)^{\frac{1}{2}}  ljj=(ajjk=1j1ljk2)21
  l i j = a i j − ∑ k = 1 j − 1 l i k l j k l j j ( i = j + 1 , ⋯   , n ) \ l_{ij}=\frac{a_{ij}-\sum_{k=1}^{j-1}l_{ik}l_{jk}}{l_{jj}} \quad (i=j+1,\cdots,n)  lij=ljjaijk=1j1likljk(i=j+1,,n)
  规 定 ∑ k = 1 0 l i k l j k = 0 \ 规定 \sum_{k=1}^0 l_{ik}l_{jk}=0  k=10likljk=0

Matlab实现矩阵的Cholesky分解

function L = Cholesky(A)
%CHOLESKY 完成对矩阵A的cholesky分解
%   input: A -- 要分解的矩阵
%   output: L -- A的cholesky分解下三角矩阵

[r, c] = size(A);
L = zeros(r, c);

for j = 1:c
    if j == 1
        L(j, j) = A(j, j) ^ (1/2);
        L(j+1:end, j) = A(j+1:end, j) / L(j, j);
    else
        L(j, j) = (A(j, j) - sum(L(j, 1:j-1).^2)) .^ (1/2);
        L(j+1:end, j) = (A(j+1:end, j) - L(j+1:end, 1:j-1) * L(j, 1:j-1)') / L(j, j);
    end
end

end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值