Kaczmarz method

Overview
The Kaczmarz method, based on the work of Polish Professor Stefan Kaczmarz, is a method for solving linear systems of equations Ax = b. It is an iterative algorithm that has found many applications ranging from computer tomography to digital signal processing.

The method needs, unlike most other linear iterative solvers, not a positive definite but only an invertible matrix A. Therefore it can be used in almost all applications (although most other iterative solvers are for special cases much faster than the Kaczmarz method).

Recently, a randomized version of the Kaczmarz method for overdetermined linear systems that converges at an exponential rate was introduced by Thomas Strohmer and Roman Vershynin. This new solver's rate does not depend on the number of equations in the system and outperforms all previously known methods on extremely overdetermined systems. Even for moderately overdetermined systems, numerical simulations reveal that the algorithm can converge faster than the conjugate gradient algorithm.

The basic (non randomized) algorithm
Given a full rank real or complex m x n matrix A (n ≤ m) and a real or complex vector b the following iteration computes a better approximation of the equations solution x:

$$ x_{k+1} = x_{k} + \frac{b_{i} - \langle a_{i},x_{k} \rangle}{\lVert a_{i} \rVert^2} a_{i} $$ where $$ i \equiv k \pmod m + 1 $$

The initial value of x is not important for convergence, although it's better if an appropriate value is chosen. The formulae above gives a simple iteration routine. A complete iteration requires m simple iterations.

The new randomized algorithm
It can be shown (see A randomized solver for linear systems with exponential convergence Thomas Strohmer and Roman Vershynin ) that the above algorithm runs significantly faster if i is chosen at random (with probability proportional to $$ \lVert a_{i} \rVert ^2 $$ for each simple iteration.