Class ComplexBackSolver
java.lang.Object
org.flag4j.linalg.solvers.exact.triangular.BackSolver<CMatrix,CVector,Complex128[]>
org.flag4j.linalg.solvers.exact.triangular.ComplexBackSolver
- All Implemented Interfaces:
LinearMatrixSolver<CMatrix,
,CVector> LinearSolver<CMatrix>
This solver solves linear systems of the form \( Ux = b \) or
\( UX = B \) where \( U \) is an
upper triangular matrix. This system is solved in an exact sense.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Complex128
For computing determinant of coefficient matrix during solve.Fields inherited from class org.flag4j.linalg.solvers.exact.triangular.BackSolver
checkSingular, enforceTriU, x, X, xCol
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a solver for solving linear systems for upper triangular coefficient matrices.ComplexBackSolver
(boolean enforceTriU) Creates a solver for solving linear systems for upper triangular coefficient matrices. -
Method Summary
Modifier and TypeMethodDescriptiongetDet()
Gets the determinant computed during the last solve.setCheckSingular
(boolean checkSingular) Sets a flag indicating if an explicit check should be made that the coefficient matrix is singular.Solves the linear system of equations given by \( UX = B \) where the coefficient matrix \( U \) is anupper triangular
matrix.Solves the linear system of equations given by \( Ux = b \) where the coefficient matrix \( U \) is anupper triangular
matrix.Solves the linear system of equations given by \( UX = I \) where the coefficient matrix \( U \) is anupper triangular
matrix and I is theidentity
matrix of appropriate size.solveLower
(CMatrix U, CMatrix L) Solves a special case of the linear system \( UX = L \) for \( X \) where the coefficient matrix \( U \) is anupper triangular
matrix and the constant matrix \( L \) islower triangular
.Methods inherited from class org.flag4j.linalg.solvers.exact.triangular.BackSolver
checkParams, checkSingular
-
Field Details
-
det
For computing determinant of coefficient matrix during solve.
-
-
Constructor Details
-
ComplexBackSolver
public ComplexBackSolver()Creates a solver for solving linear systems for upper triangular coefficient matrices. Note, by default no check will be made to ensure the coefficient matrix is upper triangular. If you would like to enforce this, seeComplexBackSolver(boolean)
. -
ComplexBackSolver
public ComplexBackSolver(boolean enforceTriU) Creates a solver for solving linear systems for upper triangular coefficient matrices.- Parameters:
enforceTriU
- Flag indicating if an explicit check should be made that the coefficient matrix is upper triangular.
-
-
Method Details
-
setCheckSingular
Sets a flag indicating if an explicit check should be made that the coefficient matrix is singular.- Overrides:
setCheckSingular
in classBackSolver<CMatrix,
CVector, Complex128[]> - Parameters:
checkSingular
- Flag indicating if an explicit check should be made that the matrix is singular (or near singular).- If
true
, an explicit singularity check will be made. - If
false
, no check will be made.
- If
- Returns:
- A reference to this back solver instance.
-
getDet
Gets the determinant computed during the last solve. -
solve
Solves the linear system of equations given by \( Ux = b \) where the coefficient matrix \( U \) is anupper triangular
matrix.- Parameters:
U
- Upper triangular coefficient matrix in the linear system. IfenforceTriU
was set tofalse
when this solver instance was created andU
is not actually upper triangular, it will be treated as if it were.b
- Vector of constants in the linear system.- Returns:
- The solution to \( x \)invalid input: '<'/> in the linear system \( Ux = b \).
- Throws:
SingularMatrixException
- If the matrixU
is singular (i.e. has a zero on the principle diagonal).
-
solve
Solves the linear system of equations given by \( UX = B \) where the coefficient matrix \( U \) is anupper triangular
matrix.- Parameters:
U
- Upper triangular coefficient matrix in the linear system. IfenforceTriU
was set tofalse
when this solver instance was created andU
is not actually upper triangular, it will be treated as if it were.B
- Matrix of constants in the linear system.- Returns:
- The solution to \( X \) in the linear system \( UX = B \).
- Throws:
SingularMatrixException
- If the matrixU
is singular (i.e. has a zero on the principle diagonal).
-
solveIdentity
Solves the linear system of equations given by \( UX = I \) where the coefficient matrix \( U \) is anupper triangular
matrix and I is theidentity
matrix of appropriate size. This essentially inverts the upper triangular matrix since \( UU^{-1} = I \).- Parameters:
U
- Upper triangular coefficient matrix in the linear system. IfenforceTriU
was set tofalse
when this solver instance was created andU
is not actually upper triangular, it will be treated as if it were.- Returns:
- The solution to X in the linear system \( UX = B \).
- Throws:
SingularMatrixException
- If the matrixU
is singular (i.e. has a zero on the principle diagonal).
-
solveLower
Solves a special case of the linear system \( UX = L \) for \( X \) where the coefficient matrix \( U \) is anupper triangular
matrix and the constant matrix \( L \) islower triangular
.- Parameters:
U
- Upper triangular coefficient matrix in the linear system. IfenforceTriU
was set tofalse
when this solver instance was created andU
is not actually upper triangular, it will be treated as if it were.L
- Lower triangular constant matrix. This is not explicit checked. IfL
is not lower triangular, values above the principle diagonal will be ignored and the result will still be correctly computed.- Returns:
- The result of solving the linear system \( UX = L \) for the matrix \( X \).
-