Iterative Solvers for Complex Linear Systems
The solution of systems of linear equations with complex valued coefficients is an important task in engineering. Particular examples include systems arising from the numerical solution of the Helmholtz equation or Maxwell’s equations. Since the number of unknowns can become quite large, a naive solution using Gaussian elimination cannot be used for most examples relevant for practical purposes.
An alternative widely used in practice are iterative solvers which are based on matrix-vector multiplications, for example the CG and the GMRES method. They exploit that in many cases the matrix-vector product can be performed efficiently. Since many textbooks and libraries describe and implement iterative solvers for systems of linear equations with real valued coefficients, the complex valued system is often transformed into an equivalent real valued system, which is then solved using a solver for real valued coefficients. However, in particular for ill-conditioned systems as they often occur in practice, it turns out that the solution of the real valued system is quite slow.
One can show that the complex valued system has much nicer properties for iterative solvers than the real one, and several suitable algorithms have been described in the literature. However, they are not widely available in modern software libraries.