- All Implemented Interfaces:
public class LUDecompositionQuickextends Objectimplements SerializableA low level version of
LUDecomposition, avoiding unnecessary memory allocation and copying.The input to decompose methods is overriden with the result (LU).The input to solve methods is overriden with the result (X).In addition to LUDecomposition, this class also includes a faster variant of the decomposition, specialized for tridiagonal (and hence also diagonal) matrices,as well as a solver tuned for vectors.Its disadvantage is that it is a bit more difficult to use than LUDecomposition. Thus, you may want to disregard this class and come back later, if a need for speed arises.
An instance of this class remembers the result of its last decomposition.Usage pattern is as follows: Create an instance of this class, call a decompose method, then retrieve the decompositions, determinant, and/or solve as many equation problems as needed.Once another matrix needs to be LU-decomposed, you need not create a new instance of this class. Start again by calling a decompose method, then retrieve the decomposition and/or solve your equations, and so on.In case a LU matrix is already available, call method setLU instead of decompose and proceed with solving et al.
If a matrix shall not be overriden, use matrix.copy() and hand the the copy to methods.
For an m x n matrix A with m >= n, the LU decomposition is an m x nunit 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 issingular, so the decompose methods will never fail. The primary use of theLU decomposition is in the solution of square systems of simultaneouslinear equations.Attempting to solve such a system will throw an exception if isNonsingular() returns false.
- See Also:
- Serialized Form