Parallel Colt 0.7.2

cern.colt.matrix.tdouble.algo.decomposition
Class DoubleLUDecomposition

java.lang.Object
  extended by cern.colt.matrix.tdouble.algo.decomposition.DoubleLUDecomposition
All Implemented Interfaces:
Serializable

public class DoubleLUDecomposition
extends Object
implements Serializable

For an m x n matrix A with m >= n, the LU decomposition is an m x n unit lower triangular matrix L, an n x n upper triangular matrix U, and a permutation vector piv of length m so that A(piv,:) = L*U; If m < n, then L is m x m and U is m x 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.

See Also:
Serialized Form

Constructor Summary
DoubleLUDecomposition(DoubleMatrix2D A)
          Constructs and returns a new LU Decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.
 
Method Summary
 double det()
          Returns the determinant, det(A).
 DoubleMatrix2D getL()
          Returns the lower triangular factor, L.
 int[] getPivot()
          Returns a copy of the pivot permutation vector.
 DoubleMatrix2D getU()
          Returns the upper triangular factor, U.
 boolean isNonsingular()
          Returns whether the matrix is nonsingular (has an inverse).
 DoubleMatrix1D solve(DoubleMatrix1D b)
          Solves A*x = b.
 DoubleMatrix2D solve(DoubleMatrix2D B)
          Solves A*X = B.
 String toString()
          Returns a String with (propertyName, propertyValue) pairs.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DoubleLUDecomposition

public DoubleLUDecomposition(DoubleMatrix2D A)
Constructs and returns a new LU Decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.

Parameters:
A - Rectangular matrix
Method Detail

det

public double det()
Returns the determinant, det(A).

Throws:
IllegalArgumentException - Matrix must be square

getL

public DoubleMatrix2D getL()
Returns the lower triangular factor, L.

Returns:
L

getPivot

public int[] getPivot()
Returns a copy of the pivot permutation vector.

Returns:
piv

getU

public DoubleMatrix2D getU()
Returns the upper triangular factor, U.

Returns:
U

isNonsingular

public boolean isNonsingular()
Returns whether the matrix is nonsingular (has an inverse).

Returns:
true if U, and hence A, is nonsingular; false otherwise.

solve

public DoubleMatrix2D solve(DoubleMatrix2D B)
Solves A*X = B.

Parameters:
B - A matrix with as many rows as A and any number of columns.
Returns:
X so that L*U*X = B(piv).
Throws:
IllegalArgumentException - if B.rows() != A.rows().
IllegalArgumentException - if A is singular, that is, if !this.isNonsingular().
IllegalArgumentException - if A.rows() < A.columns().

solve

public DoubleMatrix1D solve(DoubleMatrix1D b)
Solves A*x = b.

Parameters:
b - A vector of size A.rows()
Returns:
x so that L*U*x = b(piv).
Throws:
IllegalArgumentException - if b.size() != A.rows().
IllegalArgumentException - if A is singular, that is, if !this.isNonsingular().
IllegalArgumentException - if A.rows() < A.columns().

toString

public String toString()
Returns a String with (propertyName, propertyValue) pairs. Useful for debugging or to quickly get the rough picture. For example,
         rank          : 3
         trace         : 0
 
 

Overrides:
toString in class Object

Parallel Colt 0.7.2

Jump to the Parallel Colt Homepage