Namespaces

Types in MathNet.Numerics.LinearAlgebra.Double.Solvers

Type MlkBiCgStab

Namespace MathNet.Numerics.LinearAlgebra.Double.Solvers

Interfaces IIterativeSolver<T>

A Multiple-Lanczos Bi-Conjugate Gradient stabilized iterative matrix solver.

The Multiple-Lanczos Bi-Conjugate Gradient stabilized (ML(k)-BiCGStab) solver is an 'improvement' of the standard BiCgStab solver.

The algorithm was taken from: ML(k)BiCGSTAB: A BiCGSTAB variant based on multiple Lanczos starting vectors Man-Chung Yeung and Tony F. Chan SIAM Journal of Scientific Computing Volume 21, Number 4, pp. 1263 - 1290

The example code below provides an indication of the possible use of the solver.

Constructors

Methods

Properties

Public Constructors

MlkBiCgStab()

Public Methods

bool Equals(object obj)

int GetHashCode()

Type GetType()

void ResetNumberOfStartingVectors()

Resets the number of starting vectors to the default value.

void Solve(Matrix<T> matrix, Vector<T> input, Vector<T> result, Iterator<T> iterator, IPreconditioner<T> preconditioner)

Solves the matrix equation Ax = b, where A is the coefficient matrix, b is the solution vector and x is the unknown vector.
Parameters
Matrix<T> matrix

The coefficient matrix, A.

Vector<T> input

The solution vector, b

Vector<T> result

The result vector, x

Iterator<T> iterator

The iterator to use to control when to stop iterating.

IPreconditioner<T> preconditioner

The preconditioner to use for approximations.

string ToString()

Public Properties

int NumberOfStartingVectors get; set;

Gets or sets the number of starting vectors.
Must be larger than 1 and smaller than the number of variables in the matrix that for which this solver will be used.

IList<Vector<double>> StartingVectors get; set;

Gets or sets a series of orthonormal vectors which will be used as basis for the Krylov sub-space.