Conjugate Gradient Solver<T> Class
Represents a sparse linear solver that uses the standard conjugate gradient algorithm.
Definition
Namespace: Numerics.NET.LinearAlgebra.IterativeSolvers
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.3
C#
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.3
public class ConjugateGradientSolver<T> : IterativeSparseSolver<T>
- Inheritance
- Object → ManagedIterativeAlgorithm<DenseVector<T>, T, SolutionReport<DenseVector<T>, T>> → IterativeSparseSolver<T> → ConjugateGradientSolver<T>
Type Parameters
- T
Remarks
Use the ConjugateGradientSolver<T> class to solve large, symmetric sparse systems of equations using the Conjugate Gradient (CG) method. Convergence can be erratic, and sometimes may break down completely.
To solve a system of equations using this class, construct a new instance, passing the matrix of the system to the constructor. You can optionally set a preconditioner by setting the Preconditioner property. By default, a JacobiPreconditioner<T> is used. Finally, the Solve() method solves the system.
Once the algorithm finished, the Status property indicates whether the algorithm completed successfully.
Constructors
Conjugate | Constructs a new iterative sparse solver object. |
Properties
Convergence |
Gets the collection of convergence tests for the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Estimated |
Gets a value indicating the size of the absolute
error of the result.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Evaluations |
Gets the number of evaluations needed to execute the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Evaluations |
Gets the number of evaluations still available.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Has |
Indicates whether the degree of parallelism is a property that is shared
across instances.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Initial |
Gets or sets the solution of the system of equations.
(Inherited from IterativeSparseSolver<T>) |
Iterations |
Gets the number of iterations needed by the
algorithm to reach the desired accuracy.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Iterations |
Gets the number of iterations remaining.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Last |
Gets the vector containing the residuals of the solution.
(Inherited from IterativeSparseSolver<T>) |
Left |
Gets or sets the Preconditioner<T>.
(Inherited from IterativeSparseSolver<T>) |
Linear |
Gets the sparse matrix of the system of equations.
(Inherited from IterativeSparseSolver<T>) |
Max |
Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Max |
Gets or sets the maximum number of evaluations during the calculation.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Max | Gets or sets the maximum number of iterations
to use when approximating the roots of the target
function.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Min |
Gets or sets the minimum iterations that have to be performed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Parallel |
Gets or sets the configuration for the parallel behavior of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Preconditioner |
Gets or sets the Preconditioner<T>.
(Inherited from IterativeSparseSolver<T>) |
Residuals |
Gets the vector containing the residuals of the solution.
(Inherited from IterativeSparseSolver<T>) |
Residual |
Gets the convergence test based on the size of the residuals.
(Inherited from IterativeSparseSolver<T>) |
Result |
Gets or sets the solution of the system of equations.
(Inherited from IterativeSparseSolver<T>) |
Right |
Gets or sets the right hand side of the system of equations.
(Inherited from IterativeSparseSolver<T>) |
Solution |
Gets the result of an algorithm after it has executed.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Solution |
Gets the convergence test based on the size of the residuals.
(Inherited from IterativeSparseSolver<T>) |
Status |
Gets the AlgorithmStatus following
an execution of the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Throw |
Gets or sets whether to throw an
exception when the algorithm fails to converge.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Methods
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) |
Get | Serves as the default hash function. (Inherited from Object) |
Get | Gets the Type of the current instance. (Inherited from Object) |
Increment |
Increments the number of evaluations by one.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Increment |
Increments the number of evaluations by the specified amount.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Iterate |
Performs one iteration of the algorithm.
(Overrides ManagedIterativeAlgorithm<T, TError, TReport>.Iterate()) |
Iterated |
Performs operations after the iteration stage of the algorithm is complete.
(Inherited from IterativeSparseSolver<T>) |
Memberwise | Creates a shallow copy of the current Object. (Inherited from Object) |
OnConvergence |
Performs any tasks after the main algorithm has converged.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
OnFailure |
Performs any tasks after the main algorithm has failed to converge.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
OnInit |
Performs initialization tasks when the algorithm is first run.
(Overrides IterativeSparseSolver<T>.OnInit()) |
Report |
Records the results of an algorithm in case it fails.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Report |
Records the results of an algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Report |
Records the results of a algorithm that converged successfully.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Reset |
Resets the number of evaluations to zero.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Restart |
Prepares the algorithm to be run again with possibly different inputs.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Run() |
Runs the algorithm.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Run( |
Runs the algorithm using the specified parallelization options.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Set |
Sets the results of an algorithm's execution.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Solve() |
Solves the system of equations and returns the solution.
(Inherited from IterativeSparseSolver<T>) |
Solve( |
Solves the system of equations for the specified right-hand side and returns the result.
(Inherited from IterativeSparseSolver<T>) |
Solve( |
Solves the system of equations for the specified right-hand side and returns the result.
(Inherited from IterativeSparseSolver<T>) |
Test |
Checks whether the algorithm has converged.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Thread |
Increments the number of evaluations by one.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Thread |
Increments the number of evaluations by the specified amount.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
Throw |
Interprets the AlgorithmStatus and
throws the appropriate exception.
(Inherited from ManagedIterativeAlgorithm<T, TError, TReport>) |
ToString | Returns a string that represents the current object. (Inherited from Object) |