Class ComplexForwardSolver
java.lang.Object
org.flag4j.linalg.solvers.exact.triangular.ForwardSolver<CMatrix,CVector,Complex128[]>
org.flag4j.linalg.solvers.exact.triangular.ComplexForwardSolver
- All Implemented Interfaces:
LinearMatrixSolver<CMatrix,,CVector> LinearSolver<CMatrix>
This solver solves a complex linear system of equations where the coefficient matrix is lower triangular.
That is, solves the systems \( Lx = b \) or \( LX = B \)
where \( L \) 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.ComplexForwardSolver(boolean isUnit) Creates a solver to solve a linear system where the coefficient matrix is lower triangular or unit lower triangular.ComplexForwardSolver(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 TypeMethodDescriptiongetDet()Gets the determinant computed during the last solve.Performs forward substitution for a unit lower triangular matrix \( L \) and a matrix \( B \).Performs forward substitution for a unit lower triangular matrix \( L \) and a vector \( b \).solve(CMatrix L, PermutationMatrix P) Solves a linear system \( LX = P \) for \( X \) where \( L \) is a lower triangular matrix and \( P \) is a permutation matrix.Performs forward substitution for a unit lower triangular matrix \( L \) and the identity matrix.Methods inherited from class org.flag4j.linalg.solvers.exact.triangular.ForwardSolver
checkParams, checkSingular
-
Constructor Details
-
ComplexForwardSolver
public ComplexForwardSolver()Creates a solver to solve a linear system where the coefficient matrix is lower triangular. -
ComplexForwardSolver
public ComplexForwardSolver(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.
- If
-
ComplexForwardSolver
public ComplexForwardSolver(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.
- If
enforceLower- Flag indicating if an explicit check should be made that the coefficient matrix is lower triangular.
-
-
Method Details
-
getDet
Gets the determinant computed during the last solve. -
solve
Performs forward substitution for a unit lower triangular matrix \( L \) and a vector \( b \). That is, solves the linear system \( Lx = b \) for \( x \) where \( L \) is lower triangular.- Parameters:
L- Lower triangular coefficient matrix \( L \).Lis assumed to be lower triangular and only entries at and below the principle diagonal will be accessed.b- Constant vector \( b \).- Returns:
- The result of solving the linear system \( Lx = b \) where \( L \) is a lower triangular.
- Throws:
SingularMatrixException- IfLis singular (i.e. has at least one zero on the principle diagonal).
-
solve
Performs forward substitution for a unit lower triangular matrix \( L \) and a matrix \( B \). That is, solves the linear system \( LX = B \) for \( X \) where \( L \) is lower triangular.- Parameters:
L- Lower triangular coefficient matrix \( L \).Lis 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 \( B \).- Returns:
- The result of solving the linear system \( LX = B \) where \( L \) is a lower triangular.
- Throws:
SingularMatrixException- IfLis singular (i.e. has at least one zero on the principle diagonal).
-
solve
Solves a linear system \( LX = P \) for \( X \) where \( L \) is a lower triangular matrix and \( P \) is a permutation matrix.- Specified by:
solvein classForwardSolver<CMatrix,CVector, Complex128[]> - Parameters:
L- Lower triangular coefficient matrix \( L \).P- Constant permutation matrix \( P \).- Returns:
- The solution to \( X \) in the linear system \( LX = P \).
-
solveIdentity
Performs forward substitution for a unit lower triangular matrix \( L \) and the identity matrix. That is, solves the linear system \( LX = I \) where \( L \) is a lower triangular matrix and \( I \) is the appropriately sized identity matrix.- Parameters:
L- Lower triangular coefficient matrix, \( L \). IfLis 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 \( LX = B \) where \( L \) is a lower triangular matrix.
- Throws:
SingularMatrixException- If the matrix lower triangularLis singular (i.e. has at least one zero on the principle diagonal).
-