Class LU.LUMatrix
- java.lang.Object
-
- org.ujmp.core.doublematrix.calculation.general.decomposition.LU.LUMatrix
-
-
Field Summary
Fields Modifier and Type Field Description private double[][]
LU
Array for internal storage of decomposition.private int
m
Row and column dimensions, and pivot sign.private int
n
Row and column dimensions, and pivot sign.private int[]
piv
Internal storage of pivot vector.private int
pivsign
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
det()
Determinantdouble[]
getDoublePivot()
Return pivot permutation vector as a one-dimensional double arrayDenseDoubleMatrix2D
getL()
Return lower triangular factorMatrix
getP()
int[]
getPivot()
Return pivot permutation vectorDenseDoubleMatrix2D
getU()
Return upper triangular factorboolean
isNonsingular()
Is the matrix nonsingular?DenseDoubleMatrix2D
solve(Matrix B)
Solve A*X = B
-
-
-
Field Detail
-
LU
private final double[][] LU
Array for internal storage of decomposition.
-
m
private final int m
Row and column dimensions, and pivot sign.
-
n
private final int n
Row and column dimensions, and pivot sign.
-
pivsign
private int pivsign
-
piv
private final int[] piv
Internal storage of pivot vector.
-
-
Constructor Detail
-
LUMatrix
public LUMatrix(Matrix A)
LU Decomposition- Parameters:
A
- Rectangular matrix
-
-
Method Detail
-
isNonsingular
public final boolean isNonsingular()
Is the matrix nonsingular?- Returns:
- true if U, and hence A, is nonsingular.
-
getL
public final DenseDoubleMatrix2D getL()
Return lower triangular factor- Returns:
- L
-
getU
public final DenseDoubleMatrix2D getU()
Return upper triangular factor- Returns:
- U
-
getPivot
public final int[] getPivot()
Return pivot permutation vector- Returns:
- piv
-
getP
public final Matrix getP()
-
getDoublePivot
public final double[] getDoublePivot()
Return pivot permutation vector as a one-dimensional double array- Returns:
- (double) piv
-
det
public final double det()
Determinant- Returns:
- det(A)
- Throws:
java.lang.IllegalArgumentException
- Matrix must be square
-
solve
public final DenseDoubleMatrix2D solve(Matrix 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.
-
-