BayesCG

class probnum.linalg.solvers.BayesCG(stopping_criterion=<probnum.LambdaStoppingCriterion object>)

Bases: ProbabilisticLinearSolver

Bayesian conjugate gradient method.

Probabilistic linear solver taking prior information about the solution and choosing \(A\)-conjugate actions to gain information about the solution by projecting the current residual.

This code implements the method described in Cockayne et al. [1].

Parameters:

stopping_criterion – Stopping criterion determining when a desired terminal condition is met.

References

Methods Summary

solve(prior, problem[, rng])

Solve the linear system.

solve_iterator(prior, problem[, rng])

Generator implementing the solver iteration.

Methods Documentation

solve(prior, problem, rng=None)

Solve the linear system.

Parameters:
  • prior (LinearSystemBelief) – Prior belief about the quantities of interest \((x, A, A^{-1}, b)\) of the linear system.

  • problem (LinearSystem) – Linear system to be solved.

  • rng (Generator | None) – Random number generator.

Returns:

  • belief – Posterior belief \((\mathsf{x}, \mathsf{A}, \mathsf{H}, \mathsf{b})\) over the solution \(x\), the system matrix \(A\), its (pseudo-)inverse \(H=A^\dagger\) and the right hand side \(b\).

  • solver_state – Final state of the solver.

Return type:

Tuple[LinearSystemBelief, LinearSolverState]

solve_iterator(prior, problem, rng=None)

Generator implementing the solver iteration.

This function allows stepping through the solver iteration one step at a time and exposes the internal solver state.

Parameters:
  • prior (LinearSystemBelief) – Prior belief about the quantities of interest \((x, A, A^{-1}, b)\) of the linear system.

  • problem (LinearSystem) – Linear system to be solved.

  • rng (Generator | None) – Random number generator.

Yields:

solver_state – State of the probabilistic linear solver.

Return type:

Generator[LinearSolverState, None, None]