Catalano.Math.Decompositions
Class LUDecomposition
- java.lang.Object
-
- Catalano.Math.Decompositions.LUDecomposition
-
- All Implemented Interfaces:
- java.io.Serializable
public class LUDecomposition extends java.lang.Object implements java.io.SerializableLU 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 piv 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 decompostion 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
Constructors Constructor and Description LUDecomposition(double[][] matrix)Initializes a new instance of the LUDecomposition class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doubledeterminant()Calculate the determinant.double[]getDoublePivot()Get the pivot permutation vector as double type.double[][]getL()Get the Lower triangular factor.int[]getPivot()Get the pivot permutation vector.double[][]getU()Get the Upper triangular factor.double[][]inverse()Matrix inverse or pseudoinverse.booleanisNonsingular()Check if the matrix is non singular.double[][]solve(double[][] B)Solve A*X = B
-
-
-
Constructor Detail
-
LUDecomposition
public LUDecomposition(double[][] matrix)
Initializes a new instance of the LUDecomposition class.- Parameters:
matrix- Matrix.
-
-
Method Detail
-
isNonsingular
public boolean isNonsingular()
Check if the matrix is non singular.- Returns:
- True if U, and hence A, is nonsingular.
-
inverse
public double[][] inverse()
Matrix inverse or pseudoinverse.- Returns:
- Matrix inverse.
-
getL
public double[][] getL()
Get the Lower triangular factor.- Returns:
- L.
-
getU
public double[][] getU()
Get the Upper triangular factor.- Returns:
- U.
-
getPivot
public int[] getPivot()
Get the pivot permutation vector.- Returns:
- Pivot.
-
getDoublePivot
public double[] getDoublePivot()
Get the pivot permutation vector as double type.- Returns:
- Pivot.
-
determinant
public double determinant()
Calculate the determinant.- Returns:
- Determinant.
-
solve
public double[][] solve(double[][] B)
Solve 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:
java.lang.IllegalArgumentException- Matrix row dimensions must agree.java.lang.RuntimeException- Matrix is singular.
-
-
DataMelt 3.0 © DataMelt by jWork.ORG