Unlike the original BiCG method, it doesn't require multiplication by the transpose of the system matrix.
To solve a linear system Ax = b, BiCGSTAB starts with an initial guess x0 and proceeds as follows: In some cases, choosing the vector r̂0 randomly improves numerical stability.
In BiCG, the search directions pi and p̂i and the residuals ri and r̂i are updated using the following recurrence relations: The constants αi and βi are chosen to be where ρi = (r̂i−1, ri−1) so that the residuals and the search directions satisfy biorthogonality and biconjugacy, respectively, i.e., for i ≠ j, It is straightforward to show that where Pi(A) and Ti(A) are ith-degree polynomials in A.
These polynomials satisfy the following recurrence relations: It is unnecessary to explicitly keep track of the residuals and search directions of BiCG.
In BiCG, βi = ρi/ρi−1 with Since BiCGSTAB does not explicitly keep track of r̂i or ri, ρi is not immediately computable from this formula.
However, due to the use of degree-one minimum residual polynomials, such repair may not be effective if the matrix A has large complex eigenpairs.