Contents
Main
Site map
Links
Site and author
News
Contact

Inverse of a symmetric indefinite matrix

One of the applications of LDLT-decomposition is the inversion of symmetric matrices. By its functionality, this algorithm is similar to analogous algorithms for matrices which are given by Cholesky decomposition and LU-decomposition.

Subroutine SMatrixLDLTInverse gets LDLT-decomposition of matrix A (an output of a subroutine SMatrixLDLT) as an input and returns matrix A -1 given by its lower or upper triangle depending on a variant of LDLT-decomposition (A = L·D·L T or A = U·D·U T). This subroutine is worth using if we have LDLT-decomposition, otherwise it is better to use the second subroutine.

Subroutine SMatrixInverse gets the lower or upper triangle of matrix A as an input, calls the subroutine SMatrixLDLT and inverts and returns the lower or upper triangle of matrix A -1.

Both subroutines return False if the matrix is singular (in this case one of the elementary units of matrix D equals 0), in that case, the matrix inversion is not performed. If the matrix is not a singular and the inversion could be performed, then the subroutines return True. In that case, the matrix could be ill-conditioned, but the subroutines don't evaluate the matrix condition number.

This algorithm is transferred from the LAPACK library.

Manual entries

C++ sinverse.h   
C# sinverse.cs   
MPFR sinverse.h   
Delphi sinverse.pas   
FreePascal sinverse.pas   
VBA sinverse.bas   

This article is intended for personal use only.

Download ALGLIB

C#

C# source.

alglib-2.4.0.csharp.zip

 

C++

C++ source.

alglib-2.4.0.cpp.zip

 

C++, multiple precision arithmetic

C++ source. MPFR/GMP is used.

GMP source is available from gmplib.org. MPFR source is available from www.mpfr.org.

alglib-2.4.0.mpfr.zip

 

FreePascal

FreePascal source.

alglib-2.4.0.freepascal.zip

 

Delphi

Delphi source.

alglib-2.4.0.delphi.zip

 

Visual Basic

VBA source.

alglib-2.4.0.vb6.zip

 


 
 
Sergey Bochkanov, Vladimir Bystritsky
Copyright © 1999-2010