BiCGStab
/ BY-see-jee-stab /
BiCGStab is the practical answer to a frustrating dilemma for nonsymmetric matrices. GMRES is robust but its memory grows with every step, so on a hard problem it gets expensive. The wish is for a method like conjugate gradient — constant memory, short recurrence, cheap per step — but one that works on nonsymmetric A. BiCGStab is one of the most popular such methods: it keeps a fixed, small memory footprint regardless of iteration count, making it attractive for very large problems where GMRES's storage is prohibitive.
It descends from the biconjugate gradient (BiCG) idea, which restores a short recurrence for nonsymmetric A by working with A and its transpose A^T simultaneously. Plain BiCG, though, has erratic, wildly oscillating residuals. BiCGStab — the 'Stab' is for stabilized — bolts on an extra local minimization (a GMRES(1)-style step) at each iteration that smooths the convergence, giving a much steadier residual decrease. The net result is a method that, on many nonsymmetric problems, converges fast with two matrix-vector products per step and only a handful of stored vectors — often outperforming restarted GMRES while using far less memory.
The honest trade-off is reliability. Unlike GMRES, whose residual is guaranteed to decrease monotonically, BiCGStab can break down (a hidden division by a near-zero quantity) and its convergence, while usually good, is not guaranteed and can still be irregular on some problems. So the practical wisdom is: for nonsymmetric systems try BiCGStab first because it is cheap and often fast; if it stalls or breaks down, fall back to the more robust (but memory-hungry) GMRES. And, as with every Krylov method, the real lever is the preconditioner — a good one can make either method converge in a few steps, and a bad one leaves both crawling.
On a large nonsymmetric convection-diffusion system, BiCGStab with two A-multiplies per step and ~7 stored vectors often converges in fewer total matrix-vector products than restarted GMRES(30), while using a fraction of the memory — but on a stiffer variant it may break down, and one then switches to full GMRES.
Short-recurrence, constant-memory nonsymmetric solver — fast and cheap, but can break down.
BiCGStab trades GMRES's guaranteed monotone, breakdown-free convergence for low constant memory. It usually wins on cost but can break down or converge irregularly; treat GMRES as the robust fallback. No nonsymmetric Krylov method is universally best — pair the choice with a strong preconditioner.