Click or drag to resize
Cholesky Class
Cholesky factorization of a matrix of type double.
Inheritance Hierarchy
SystemObject
  Imsl.MathCholesky

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.2.0
Syntax
[SerializableAttribute]
public class Cholesky

The Cholesky type exposes the following members.

Constructors
  NameDescription
Public methodCholesky
Create the Cholesky factorization of a symmetric positive definite matrix of type double.
Top
Methods
  NameDescription
Public methodDowndate
Downdates the factorization by subtracting a rank-1 matrix.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetR
The R matrix that results from the Cholesky factorization.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInverse
Returns the inverse of this matrix.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodSolve
Solve Ax = b where A is a positive definite matrix with elements of type double.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodUpdate
Updates the factorization by adding a rank-1 matrix.
Top
Remarks

Class Cholesky is based on the LINPACK routine SCHDC; see Dongarra et al. (1979).

Before the decomposition is computed, initial elements are moved to the leading part of A and final elements to the trailing part of A. During the decomposition only rows and columns corresponding to the free elements are moved. The result of the decomposition is an lower triangular matrix R and a permutation matrix P that satisfy P^T AP = RR^T, where P is represented by ipvt.

The method Update is based on the LINPACK routine SCHUD; see Dongarra et al. (1979).

The Cholesky factorization of a matrix is A = RR^T, where R is an lower triangular matrix. Given this factorization, Downdate computes the factorization

A - xx^T  = \tilde R^T \tilde 
            R

Downdate determines an orthogonal matrix U as the product G_N\ldots G_1of Givens rotations, such that

U \left[ \begin{array}{l} R \\ 0 \\ 
            \end{array} \right] = \left[ \begin{array}{l}{\tilde R} \\ x^T \\ 
            \end{array} \right]

By multiplying this equation by its transpose and noting that U^T U = I, the desired result

R^T R - xx^T  = \tilde R^T \tilde R
is obtained.

Let a be the solution of the linear system R^T  a = 
            x and let

\alpha  = \sqrt {1 - 
            \left\| a \right\|_2^2 }

The Givens rotations, G_i, are chosen such that

G_1  \cdots G_N \left[ \begin{array}{l}a \\ 
            \alpha \end{array} \right] = \left[ \begin{array}{l} 0 \\  1 
            \end{array} \right]

The G_i, are (N + 1) * (N + 1) matrices of the form

G_i  = \left[ {\begin{array}{*{20}c}{
            I_{i - 1} } & 0 & 0 & 0  \\ 0 & {c_i } & 0 & { 
            - s_i } \\ 0 & 0 & {I_{N - i} } & 0 \\ 0 & {s_i } & 
            0 & {c_i } \\ \end{array}} \right]
where I_k is the identity matrix of order k; and c_i= \cos\theta _i, s_i= \sin\theta_i for some \theta_i.

The Givens rotations are then used to form


            \tilde R,\,\,G_1  \cdots \,G_N \left[ \begin{array}{l} R \\ 0 \\ 
            \end{array} \right] = \left[ \begin{array}{l}{\tilde R} \\ \tilde x^T 
            \\ \end{array} \right]

The matrix

\tilde R
is lower triangular and
\tilde x = x
because
x = \left( {R^T 0} \right) \left[ 
            \begin{array}{l}a \\ \alpha \\ \end{array} \right] = \left( R^T 0 
            \right) U^T U\left[ \begin{array}{l}a \\ \alpha \\ \end{array} \right] 
            = \left( {\tilde R^T \tilde x} \right) \left[ \begin{array}{l}0 \\ 1 \\ 
            \end{array} \right] = \tilde x
.

See Also

Reference

Other Resources