public interface IterativeLinearSystemSolver
Here are some guidelines for choosing an iterative solver of a sparse system. For Hermitian problems, if the system is positive definite, use CG or MINRES, otherwise use only MINRES. To avoid doing inner products in CG or MINRES, we may choose the stationary methods such as Jacobi, GaussSeidel, SOR, or SSOR. These methods saves computation costs in each iteration but the number of iterations may increase unless there is a good preconditioner. For nonHermitian problems, the choice is not so easy. If matrixvector multiplication is very expensive, GMRES is probably the best choice because it performs the fewest multiplications. The second best alternatives are QMR or BiCG. QMR is numerically more stable than BiCG. When the transpose of a matrix is not available, there are transposefree methods such as CGS or BiCGSTAB. For nonsquare systems, there are CG methods for solving overdetermined systems such as CGNR, and underdetermined systems such as CGNE.
The use of Preconditioner
can improve the rate of convergence of an
iterative method. A preconditioner transforms a linear system into one that
is equivalent in the sense that it has the same solution. The transformed
system has more favorable spectral properties which affect convergence rate.
In particular, a preconditioner M approximates the coefficient
matrix A, and the transformed system is easier to solve. For example,
M^{1}Ax = M^{1}bhas the same solution as the original system Ax = b. The spectral properties of its coefficient matrix M^{1}A may be more favorable. Another way of preconditioning a system is
M_{1}^{1}AM_{2}^{1}(M_{2}x) = M_{1}^{1}bThe matrices M_{1} and M_{2} are called left and right preconditioners respectively. There are 3 kinds of preconditioning: left, right, or split. Leftpreconditioning leaves M_{2} as
IdentityPreconditioner
. Similarly, rightpreconditioning leaves
M_{1} as
IdentityPreconditioner
.Modifier and Type  Interface and Description 

static interface 
IterativeLinearSystemSolver.Solution
This is the solution to a system of linear equations using an iterative
solver.

Modifier and Type  Method and Description 

IterativeLinearSystemSolver.Solution 
solve(LSProblem problem,
IterationMonitor<Vector> monitor)
Solves iteratively
Ax = b
until the solution converges, i.e., the norm of residual
(b  Ax) is less than or equal to the threshold.

IterativeLinearSystemSolver.Solution solve(LSProblem problem, IterationMonitor<Vector> monitor) throws ConvergenceFailure
Ax = buntil the solution converges, i.e., the norm of residual (b  Ax) is less than or equal to the threshold.
problem
 a system of linear equationsmonitor
 an iteration monitorConvergenceFailure
 if the algorithm fails to convergeCopyright © 20102018 Numerical Method Incorporation Limited. All Rights Reserved.