GenMinRes Class |
Namespace: Imsl.Math
The GenMinRes type exposes the following members.
Name | Description | |
---|---|---|
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetGuess |
Returns the initial guess of the solution.
| |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetVectorProducts | Returns the user-supplied functions for the inner product and,
optionally, the norm used in the Gram-Schmidt implementations.
| |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
SetGuess |
Sets the initial guess of the solution.
| |
SetVectorProducts | Sets the user-supplied functions for the inner product and,
optionally, the norm to be used in the Gram-Schmidt implementations.
| |
Solve | Generate an approximate solution to using the Generalized
Residual Method.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
Iterations |
The actual number of GMRES iterations used.
| |
MaxIterations |
The maximum number of iterations allowed.
| |
MaxKrylovDim |
The maximum Krylov subspace dimension.
| |
Method |
The implementation method to be used.
| |
PreconditionerSolves |
The total number of GMRES right preconditioner solves.
| |
Products |
The total number of GMRES matrix-vector products used.
| |
RelativeError | The stopping tolerance.
| |
ResidualNorm |
The final residual norm, .
| |
ResidualUpdating |
The residual updating method to be used.
|
GenMinRes implements restarted GMRES to generate an approximate solution to . It is based on GMRES by Homer Walker (1988).
The GMRES method begins with an approximate solution and an initial residual . At iteration m, a correction is determined in the Krylov subspace
which solves the least squares problem Then at iteration m, .There are four distinct GMRES implementations, selectable through property Method. The first Gram-Schmidt implementation is essentially the original algorithm by Saad and Schultz (1986). The second Gram-Schmidt implementation, developed by Homer Walker and Lou Zhou, is simpler than the first implementation. The least squares problem is constructed in upper-triangular form and the residual vector updating at the end of a GMRES cycle is cheaper. The first Householder implementation is algorithm 2.2 of Walker (1988), but with more efficient correction accumulation at the end of each GMRES cycle. The second Householder implementation is algorithm 3.1 of Walker (1988). The products of Householder transformations are expanded as sums, allowing most work to be formulated as large scale matrix-vector operations.
The Gram-Schmidt implementations are less expensive than the Householder, the latter requiring about twice as many computations beyond the coefficient matrix/vector products. However, the Householder implementations may be more reliable near the limits of residual reduction. See Walker (1988) for details. Issues such as the cost of coefficient matrix/vector products, availability of effective preconditioners, and features of particular computing environments may serve to mitigate the extra expense of the Householder implementations.