public interface DecompositionSolver
Decomposition algorithms decompose an A matrix as a product of several specific matrices from which they can solve A × X = B in least squares sense: they find X such that A × X  B is minimal.
Some solvers like LUDecomposition
can only find the solution for
square matrices and when the solution is an exact linear solution, i.e. when
A × X  B is exactly 0. Other solvers can also find solutions
with nonsquare matrix A and with nonnull minimal norm. If an exact linear
solution exists it is also the minimal norm solution.
Modifier and Type  Method and Description 

int 
getColumnDimension()
Returns the number of columns in the matrix.

RealMatrix 
getInverse()
Get the pseudoinverse
of the decomposed matrix.

int 
getRowDimension()
Returns the number of rows in the matrix.

boolean 
isNonSingular()
Check if the decomposed matrix is nonsingular.

RealMatrix 
solve(RealMatrix b)
Solve the linear equation A × X = B for matrices A.

RealVector 
solve(RealVector b)
Solve the linear equation A × X = B for matrices A.

RealVector solve(RealVector b) throws MathIllegalArgumentException
The A matrix is implicit, it is provided by the underlying decomposition algorithm.
b
 righthand side of the equation A × X = BMathIllegalArgumentException
 if the matrices dimensions do not match.MathIllegalArgumentException
 if the decomposed matrix is singular.RealMatrix solve(RealMatrix b) throws MathIllegalArgumentException
The A matrix is implicit, it is provided by the underlying decomposition algorithm.
b
 righthand side of the equation A × X = BMathIllegalArgumentException
 if the matrices dimensions do not match.MathIllegalArgumentException
 if the decomposed matrix is singular.boolean isNonSingular()
RealMatrix getInverse() throws MathIllegalArgumentException
This is equal to the inverse of the decomposed matrix, if such an inverse exists.
If no such inverse exists, then the result has properties that resemble that of an inverse.
In particular, in this case, if the decomposed matrix is A, then the system of equations \( A x = b \) may have no solutions, or many. If it has no solutions, then the pseudoinverse \( A^+ \) gives the "closest" solution \( z = A^+ b \), meaning \( \left \ A z  b \right \_2 \) is minimized. If there are many solutions, then \( z = A^+ b \) is the smallest solution, meaning \( \left \ z \right \_2 \) is minimized.
Note however that some decompositions cannot compute a pseudoinverse for all matrices.
For example, the LUDecomposition
is not defined for nonsquare matrices to begin
with. The QRDecomposition
can operate on nonsquare matrices, but will throw
MathIllegalArgumentException
if the decomposed matrix is singular. Refer to the javadoc
of specific decomposition implementations for more details.
MathIllegalArgumentException
 if the decomposed matrix is singular and the decomposition
can not compute a pseudoinverseint getRowDimension()
int getColumnDimension()
Copyright © 20162022 CS GROUP. All rights reserved.