Contents
Class RealForwardSolver
java.lang.Object
org.flag4j.linalg.solvers.exact.triangular.ForwardSolver<Matrix,Vector,double[]>
org.flag4j.linalg.solvers.exact.triangular.RealForwardSolver
- All Implemented Interfaces:
LinearMatrixSolver<Matrix,
,Vector> LinearSolver<Matrix>
This solver solves a real linear system of equations where the coefficient matrix is lower triangular.
That is, solves the systems or
where is a lower triangular
matrix. This is accomplished using a simple forward substitution.
- See Also:
-
Field Summary
Fields inherited from class org.flag4j.linalg.solvers.exact.triangular.ForwardSolver
enforceLower, isUnit, RANK_CONDITION, xCol
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a solver to solve a linear system where the coefficient matrix is lower triangular.RealForwardSolver
(boolean isUnit) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular.RealForwardSolver
(boolean isUnit, boolean enforceLower) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular. -
Method Summary
Modifier and TypeMethodDescriptiondouble
getDet()
Gets the determinant computed during the last solve.Performs forward substitution for a unit lower triangular matrix and a matrix .Performs forward substitution for a unit lower triangular matrix and a vector .solve
(Matrix L, PermutationMatrix P) Solves a linear system for where is a lower triangular matrix and is a permutation matrix.Performs forward substitution for a unit lower triangular matrix and the identity matrix.Methods inherited from class org.flag4j.linalg.solvers.exact.triangular.ForwardSolver
checkParams, checkSingular
-
Constructor Details
-
RealForwardSolver
public RealForwardSolver()Creates a solver to solve a linear system where the coefficient matrix is lower triangular. -
RealForwardSolver
public RealForwardSolver(boolean isUnit) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular.- Parameters:
isUnit
- Flag which indicates if the coefficient matrix is unit lower triangular or not.- If
true
, the coefficient matrix is expected to be unit lower triangular. - If
false
, the coefficient matrix is expected to be lower triangular but not necessarily unit lower.
- If
-
RealForwardSolver
public RealForwardSolver(boolean isUnit, boolean enforceLower) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular.- Parameters:
isUnit
- Flag which indicates if the coefficient matrix is unit lower triangular or not.- If
true
, the coefficient matrix is expected to be unit lower triangular. - If
false
, the coefficient matrix is expected to be lower triangular but not necessarily unit lower.
- If
enforceLower
- Flag indicating if an explicit check should be made that the coefficient matrix is lower triangular.
-
-
Method Details
-
getDet
public double getDet()Gets the determinant computed during the last solve. -
solve
Performs forward substitution for a unit lower triangular matrix and a vector . That is, solves the linear system for where is lower triangular.- Parameters:
L
- Lower triangular coefficient matrix .L
is assumed to be lower triangular and only entries at and below the principle diagonal will be accessed.b
- Constant vector .- Returns:
- The result of solving the linear system
where is a lower triangular. - Throws:
SingularMatrixException
- IfL
is singular (i.e. has at least one zero on the principle diagonal).
-
solve
Performs forward substitution for a unit lower triangular matrix and a matrix . That is, solves the linear system for where is lower triangular.- Parameters:
L
- Lower triangular coefficient matrix .L
is assumed to be lower triangular and only entries at and below the principle diagonal will be accessed.B
- The constant matrix in the linear system.b
- Constant matrix .- Returns:
- The result of solving the linear system
where is a lower triangular. - Throws:
SingularMatrixException
- IfL
is singular (i.e. has at least one zero on the principle diagonal).
-
solve
Solves a linear system for where is a lower triangular matrix and is a permutation matrix.- Specified by:
solve
in classForwardSolver<Matrix,
Vector, double[]> - Parameters:
L
- Lower triangular coefficient matrix .P
- Constant permutation matrix .- Returns:
- The solution to
in the linear system .
-
solveIdentity
Performs forward substitution for a unit lower triangular matrix and the identity matrix. That is, solves the linear system where is a lower triangular matrix and is the appropriately sized identity matrix.- Parameters:
L
- Lower triangular coefficient matrix, . IfL
is not lower triangular, it will be treated as if it were and only data in the lower triangular portion will be accessed.- Returns:
- The result of solving the linear system
where is a lower triangular matrix. - Throws:
SingularMatrixException
- If the matrix lower triangularL
is singular (i.e. has at least one zero on the principle diagonal).
-