Skip to content

MGroup.LinearAlgebra.Iterative.MinimumResidual

Dimitris Tsapetis edited this page Apr 17, 2019 · 1 revision

MinRes

Implements the MINRES algorithm for solving an n-by-n system of linear equations: A*x = b, where A is symmetric and b is a given vector of length n. A may be indefinite. It can also be singular, in which case the least squares problem is solved instead. The MINRES method is presented by C. C. Paige, M. A. Saunders in https://www.researchgate.net/publication/243578401_Solution_of_Sparse_Indefinite_Systems_of_Linear_Equations. Reorthogonalization is introduced by D. Maddix. For more information, including the Matlab scripts from which this code is ported from, see http://web.stanford.edu/group/SOL/software/minres/. Authors: Serafeim Bakalakos

public class MGroup.LinearAlgebra.Iterative.MinimumResidual.MinRes

Methods

Type Name Summary
ValueTuple<IVector, MinresStatistics> Solve(IMatrixView matrix, IVector rhsVector, Double shift = 0) Solves the linear system (A - sI) * x = b, where A = , b = and s = ``. If the matrix A - sI is singular, it solves the same linear least squares problem.
ValueTuple<IVector, MinresStatistics> Solve(IMatrixView matrix, IVector rhsVector, IPreconditioner preconditioner, Double shift = 0) Solves the linear system (A - sI) * x = b, where A = , b = and s = ``. If the matrix A - sI is singular, it solves the same linear least squares problem.
ValueTuple<IVector, MinresStatistics> Solve(ILinearTransformation matrix, IVector rhsVector, Double shift = 0) Solves the linear system (A - sI) * x = b, where A = , b = and s = ``. If the matrix A - sI is singular, it solves the same linear least squares problem.
ValueTuple<IVector, MinresStatistics> Solve(ILinearTransformation matrix, IVector rhsVector, IPreconditioner preconditioner, Double shift = 0) Solves the linear system (A - sI) * x = b, where A = , b = and s = ``. If the matrix A - sI is singular, it solves the same linear least squares problem.

MinresStatistics

Data Transfer Object that collects information about the execution and convergence when solving a linear system with the Minimum Redidual algorithm. Authors: Serafeim Bakalakos

public class MGroup.LinearAlgebra.Iterative.MinimumResidual.MinresStatistics

Properties

Type Name Summary
Int32 IterationsRequired The number of iterations that were run before the algorithm terminated.
Double MatrixCondition Estimate for cond(A). In the current version of MINRES, it is computed from the diagonals of R in the factorization of the lower Hessenberg matrix, Q* H = R, where H is the tridiagonal matrix from Lanczos with one extra row, beta(k + 1) e_k^T.
Double MatrixNorm Estimate for the induced norm2 of the matrix A.
Double MatrixTimesResidualNorm Estimate for norm2(A * (b-A*x) ) at the previous to last iteration. Note that it lags one iteration behind MGroup.LinearAlgebra.Iterative.MinimumResidual.MinresStatistics.ResidualNorm.
Double ResidualNorm Estimate for norm2(b-A*x) at the last iteration.
Int32 TerminationCause A code that describes why the algorithm has terminated. For a more readable form, use MGroup.LinearAlgebra.Iterative.MinimumResidual.MinresStatistics.TerminationMessage instead.
String TerminationMessage A message that describes why the algorithm has terminated.
Double YNorm Value of norm2(x) at the last iteration.

Methods

Type Name Summary
String ToString() Reports the accumulated data of this MGroup.LinearAlgebra.Iterative.MinimumResidual.MinresStatistics instance.
Clone this wiki locally