# SolutionBasedSolver¶

class probnum.linalg.SolutionBasedSolver(A, b, x0=None)[source]

Solver iteration of BayesCG.

Implements the solve iteration of the solution-based solver BayesCG 1.

Parameters
• A (array-like or LinearOperator or RandomVariable, shape=(n,n)) – The square matrix or linear operator of the linear system.

• b (array_like, shape=(n,) or (n, nrhs)) – Right-hand side vector or matrix in $$A x = b$$.

References

1

Cockayne, J. et al., A Bayesian Conjugate Gradient Method, Bayesian Analysis, 2019, 14, 937-1012

Methods Summary

 has_converged(iter, maxiter[, resid, atol, rtol]) Check convergence of a linear solver. solve([callback, maxiter, atol, rtol]) Solve the linear system $$Ax=b$$.

Methods Documentation

has_converged(iter, maxiter, resid=None, atol=None, rtol=None)[source]

Check convergence of a linear solver.

Evaluates a set of convergence criteria based on its input arguments to decide whether the iteration has converged.

Parameters
• iter (int) – Current iteration of solver.

• maxiter (int) – Maximum number of iterations

• resid (array-like) – Residual vector $$\lVert r_i \rVert = \lVert Ax_i - b \rVert$$ of the current iteration.

• atol (float) – Absolute residual tolerance. Stops if $$\lVert r_i \rVert < \text{atol}$$.

• rtol (float) – Relative residual tolerance. Stops if $$\lVert r_i \rVert < \text{rtol} \lVert b \rVert$$.

Returns

• has_converged (bool) – True if the method has converged.

• convergence_criterion (str) – Convergence criterion which caused termination.

solve(callback=None, maxiter=None, atol=None, rtol=None)[source]

Solve the linear system $$Ax=b$$.

Parameters
• callback (function, optional) – User-supplied function called after each iteration of the linear solver. It is called as callback(xk, Ak, Ainvk, sk, yk, alphak, resid, **kwargs) and can be used to return quantities from the iteration. Note that depending on the function supplied, this can slow down the solver.

• kwargs – Key-word arguments adjusting the behaviour of the solve iteration. These are usually convergence criteria.

Returns

• x (RandomVariable, shape=(n,) or (n, nrhs)) – Approximate solution $$x$$ to the linear system. Shape of the return matches the shape of b.

• A (RandomVariable, shape=(n,n)) – Posterior belief over the linear operator.

• Ainv (RandomVariable, shape=(n,n)) – Posterior belief over the linear operator inverse $$H=A^{-1}$$.

• info (dict) – Information on convergence of the solver.