IGLib  1.7.2
The IGLib base library EXTENDED - with other lilbraries and applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
IG.Old.LUDecompositionOld Class Reference

LU decomposition. More...

+ Collaboration diagram for IG.Old.LUDecompositionOld:

Public Member Functions

 LUDecompositionOld (MatrixWithMathNet A)
 Constructor. More...
 
MatrixWithMathNet Solve (MatrixWithMathNet B)
 Solve A*X = B. More...
 
Vector Solve (Vector b)
 Solves A*x=s. More...
 

Properties

bool IsNonSingular [get]
 Indicates whether the matrix is nonsingular. More...
 
Matrix L [get]
 Returns the lower triangular factor. More...
 
Matrix U [get]
 Returns the upper triangular factor. More...
 
int[] Pivot [get]
 Returns the integer pivot permutation vector. More...
 
Vector PivotVector [get]
 Returns pivot permutation vector. More...
 
Matrix PermutationMatrix [get]
 Returns the permutation matrix P, such that L*U = P*X. More...
 
double Determinant [get]
 Returns the determinant. More...
 

Private Attributes

int _columnCount = 0
 

Detailed Description

LU decomposition.

For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n unit lower triangular matrix L, an n-by-n upper triangular matrix U, and a permutation vector pivot of length m so that A(piv,:) = L*U. If m < n, then L is m-by-m and U is m-by-n. The LU decomposition with pivoting always exists, even if the matrix is singular, so the constructor will never fail. The primary use of the LU decomposition is in the solution of square systems of simultaneous linear equations. This will fail if IsNonSingular() returns false.

Constructor & Destructor Documentation

IG.Old.LUDecompositionOld.LUDecompositionOld ( MatrixWithMathNet  A)
inline

Constructor.

Parameters
AMatrix to be decomposed.

References IG.Num.Matrix.ColumnCount, IG.Old.MatrixWithMathNet.CopyMathNet, and IG.Num.Matrix.RowCount.

Member Function Documentation

MatrixWithMathNet IG.Old.LUDecompositionOld.Solve ( MatrixWithMathNet  B)
inline

Solve A*X = B.

Parameters
BA Matrix with as many rows as A and any number of columns (right-hand sides).
Returns
X so that L*U*X = B(piv,:)
Exceptions
System.ArgumentExceptionMatrix row dimensions must agree.
System.SystemExceptionMatrix is singular.

References IG.Old.MatrixWithMathNet.CopyMathNet.

Vector IG.Old.LUDecompositionOld.Solve ( Vector  b)
inline

Solves A*x=s.

Parameters
sRight-hand side vector with as many elements as A has rows.
Returns
Solution of the System such that L*U*x=s(piv,:).

References IG.Num.Vector.Length, and IG.Num.Matrix.RowCount.

Member Data Documentation

int IG.Old.LUDecompositionOld._columnCount = 0
private

Property Documentation

bool IG.Old.LUDecompositionOld.IsNonSingular
get

Indicates whether the matrix is nonsingular.

Returns
true if U, and hence A, is nonsingular.
Matrix IG.Old.LUDecompositionOld.L
get

Returns the lower triangular factor.

Matrix IG.Old.LUDecompositionOld.U
get

Returns the upper triangular factor.

int [] IG.Old.LUDecompositionOld.Pivot
get

Returns the integer pivot permutation vector.

Vector IG.Old.LUDecompositionOld.PivotVector
get

Returns pivot permutation vector.

Matrix IG.Old.LUDecompositionOld.PermutationMatrix
get

Returns the permutation matrix P, such that L*U = P*X.

double IG.Old.LUDecompositionOld.Determinant
get

Returns the determinant.

Returns
det(A)
Exceptions
System.ArgumentExceptionMatrix must be square

The documentation for this class was generated from the following file: