Class SSORPreconditioner
- java.lang.Object
-
- dev.nm.algebra.linear.matrix.doubles.matrixtype.sparse.solver.iterative.preconditioner.SSORPreconditioner
-
- All Implemented Interfaces:
Preconditioner
public class SSORPreconditioner extends Object implements Preconditioner
SSOR preconditioner is derived from a symmetric coefficient matrix A which is decomposed asA = D + L + Lt
The SSOR preconditioning matrix is defined asM = (D + L)D-1(D + L)t
or, parameterized by ωM(ω) = (1/(2 - ω))(D / ω + L)(D / ω)-1(D / ω + L)t
The optimal ω reduces the number of iterations to a lower order. In practice, however, the spectral information for computing the optimal ω is expensive to obtain.
- See Also:
SymmetricSuccessiveOverrelaxationSolver
-
-
Constructor Summary
Constructors Constructor Description SSORPreconditioner(Matrix A, double omega)
Construct an SSOR preconditioner with a symmetric coefficient matrix.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Vector
solve(Vector x)
Solve Mz = x using this SSOR preconditioner.Vector
transposeSolve(Vector x)
Mtx = M-1x as M is symmetric.
-
-
-
Constructor Detail
-
SSORPreconditioner
public SSORPreconditioner(Matrix A, double omega)
Construct an SSOR preconditioner with a symmetric coefficient matrix.- Parameters:
A
- a symmetric coefficient matrixomega
- an extrapolation factor
-
-
Method Detail
-
solve
public Vector solve(Vector x)
Solve Mz = x using this SSOR preconditioner.- Specified by:
solve
in interfacePreconditioner
- Parameters:
x
- a vector- Returns:
- M-1x
-
transposeSolve
public Vector transposeSolve(Vector x)
Mtx = M-1x as M is symmetric.- Specified by:
transposeSolve
in interfacePreconditioner
- Parameters:
x
- a vector- Returns:
solve(x)
-
-