IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.
|
Cholesky decomposition of a matrix. Available for symmetric positive definite matrices. Objects of this class are immutable. Decomposition is calculated at initialization, and the decomposed matrix can not be replaced later. More...
Public Member Functions | |
CholeskyDecomposition (Matrix_MathNetNumerics A) | |
Constructor. | |
CholeskyDecomposition (Matrix A) | |
Constructor. | |
void | GetProduct (ref IMatrix product) |
Calculates the product (i.e. the original matrix of coefficients of a linear system of equations) of the current decomposition, and stores it to the specified matrix. | |
IMatrix | GetProduct () |
Calculates and returns the product (i.e. the original matrix of coefficients of a linear system of equations) of the current decomposition. | |
void | Inverse (ref IMatrix inv) |
Calculates inverse of the decomposed matrix represented by the current object, and stores it in the specified matrix. | |
IMatrix | Inverse () |
Calculates and returns inverse of the decomposed matrix represented by the current object. | |
Protected Member Functions | |
override MatrixBase_MathNetNumerics | SolveMathNetNumerics (IMatrix righthandSides) |
Solves systems of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form. | |
override VectorBase_MathNetNumerics | SolveMathNetNumerics (IVector rightHandSides) |
Solves the system of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form. | |
Protected Attributes | |
internal CholeskyDecomposition_MathNetNumerics | Base = null |
double | _determinant |
bool | _determinantCalculated = false |
Properties | |
bool | IsNonSingular [get] |
Indicates whether the matrix of coefficients of a linear system is nonsingular. | |
double | Determinant [get] |
Returns the determinant. | |
Private Attributes | |
MatrixBase_MathNetNumerics | _inverse |
Cholesky decomposition of a matrix. Available for symmetric positive definite matrices.
Objects of this class are immutable. Decomposition is calculated at initialization, and the decomposed matrix can not be replaced later.
For a symmetric, positive definite matrix A, the Cholesky factorization is an lower triangular matrix L so that A = L*L'.
The computation of the Cholesky factorization is done at construction time. If the matrix is not symmetric or positive definite, the constructor will throw an exception.
$A Igor Nov08 Apr12;
IG::Num::CholeskyDecomposition::CholeskyDecomposition | ( | Matrix_MathNetNumerics | A | ) | [inline] |
Constructor.
A | Matrix to be decomposed. |
IG::Num::CholeskyDecomposition::CholeskyDecomposition | ( | Matrix | A | ) | [inline] |
Constructor.
A | Matrix to be decomposed. |
void IG::Num::CholeskyDecomposition::GetProduct | ( | ref IMatrix | product | ) | [inline] |
Calculates the product (i.e. the original matrix of coefficients of a linear system of equations) of the current decomposition, and stores it to the specified matrix.
product | Matrix where re-calculated product of the decomposed matrix is stored. |
Implements IG::Num::ILinearSolver.
IMatrix IG::Num::CholeskyDecomposition::GetProduct | ( | ) | [inline] |
Calculates and returns the product (i.e. the original matrix of coefficients of a linear system of equations) of the current decomposition.
Implements IG::Num::ILinearSolver.
void IG::Num::CholeskyDecomposition::Inverse | ( | ref IMatrix | inv | ) | [inline] |
Calculates inverse of the decomposed matrix represented by the current object, and stores it in the specified matrix.
inv | Matrix where calculated inverse is stored. |
Implements IG::Num::ILinearSolver.
IMatrix IG::Num::CholeskyDecomposition::Inverse | ( | ) | [inline] |
Calculates and returns inverse of the decomposed matrix represented by the current object.
Implements IG::Num::ILinearSolver.
override MatrixBase_MathNetNumerics IG::Num::CholeskyDecomposition::SolveMathNetNumerics | ( | IMatrix | righthandSides | ) | [inline, protected, virtual] |
Solves systems of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form.
righthandSides | Matrix that contains right-hand sides of the linear equations to be solved as its columns. |
Reimplemented from IG::Num::LinearSolverBase.
override VectorBase_MathNetNumerics IG::Num::CholeskyDecomposition::SolveMathNetNumerics | ( | IVector | rightHandSides | ) | [inline, protected, virtual] |
Solves the system of linear equations with the specified right-hand sides and the current matrix decomposition by using the Math.Net Numerics library, and returns the result in Math.Net matrix form.
righthandSides | Vector of right-hand sides of the linear equations to be solved. |
Reimplemented from IG::Num::LinearSolverBase.
internal CholeskyDecomposition_MathNetNumerics IG::Num::CholeskyDecomposition::Base = null [protected] |
double IG::Num::CholeskyDecomposition::_determinant [protected] |
bool IG::Num::CholeskyDecomposition::_determinantCalculated = false [protected] |
MatrixBase_MathNetNumerics IG::Num::CholeskyDecomposition::_inverse [private] |
bool IG::Num::CholeskyDecomposition::IsNonSingular [get] |
Indicates whether the matrix of coefficients of a linear system is nonsingular.
true
if U, and hence A, is nonsingular.Implements IG::Num::ILinearSolver.
double IG::Num::CholeskyDecomposition::Determinant [get] |