[Math] Efficient computation of Cholesky decomposition during tridiagonal matrix inverse

cholesky decompositionmatricesmatrix decompositionnumerical linear algebra

I have a symmetric, block tridiagonal matrix $A$. I am interested in computing the Cholesky decomposition of $A^{-1}$ (that is, I want to compute $R$, where $A^{-1}=RR^T$). I know how to compute the blocks of the inverse efficiently using an iterative algorithm. However, is there an efficient algorithm for computing the Cholesky factors $R$ directly (rather than first computing the inverse, and then performing the Cholesky decomposition)?

Best Answer

Here is my matlab code

     function[L]=MyChol(A)

     [n,m]=size(A);
     L=eye(n);
     for k=1:n-1
           L(k,k)=sqrt(A(k,k));
           L(k+1:n,k)=(A(k+1:n,k))/L(k,k);
           A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-L(k+1:n,k)*L(k+1:n,k)';
     end
     L(n,n)=sqrt(A(n,n));
     end

$A=LL^T$

Related Question