Contents
Biconjugate gradient stabilized method
In numerical linear algebra, the biconjugate gradient stabilized method, often abbreviated as BiCGSTAB, is an iterative method developed by H. A. van der Vorst for the numerical solution of nonsymmetric linear systems. It is a variant of the biconjugate gradient method (BiCG) and has faster and smoother convergence than the original BiCG as well as other variants such as the conjugate gradient squared method (CGS). It is a Krylov subspace method. Unlike the original BiCG method, it doesn't require multiplication by the transpose of the system matrix.
Algorithmic steps
Unpreconditioned BiCGSTAB
In the following sections, ( x, y ) = x T y denotes the dot product of vectors. To solve a linear system , BiCGSTAB starts with an initial guess x 0 and proceeds as follows: r̂ 0 such that ( r̂ 0, r 0) ≠ 0 , e.g., r̂ 0 = r 0 h is accurate enough, i.e., if s is small enough, then set and quit xi is accurate enough, i.e., if ri is small enough, then quit In some cases, choosing the vector r̂ 0 randomly improves numerical stability.
Preconditioned BiCGSTAB
Preconditioners are usually used to accelerate convergence of iterative methods. To solve a linear system with a preconditioner , preconditioned BiCGSTAB starts with an initial guess x 0 and proceeds as follows: r̂ 0 such that ( r̂ 0, r 0) ≠ 0 , e.g., r̂ 0 = r 0 h is accurate enough then and quit xi is accurate enough then quit This formulation is equivalent to applying unpreconditioned BiCGSTAB to the explicitly preconditioned system Ãx̃ = b̃ with , x̃ = K 2 x and b̃ = K 1 −1 b . In other words, both left- and right-preconditioning are possible with this formulation.
Derivation
BiCG in polynomial form
In BiCG, the search directions pi and p̂ i and the residuals ri and r̂ i are updated using the following recurrence relations: , p̂ i = r̂ i −1 + βi p̂ i −1 , , r̂ i = r̂ i −1 − αi A T p̂ i . The constants αi and βi are chosen to be , where so that the residuals and the search directions satisfy biorthogonality and biconjugacy, respectively, i.e., for i ≠ j , ( r̂ i, rj ) = 0 , ( p̂ i, Apj ) = 0 . It is straightforward to show that , r̂ i = Pi ( A T) r̂ 0 , p i +1 = Ti ( A ) r 0 , p̂ i +1 = Ti ( A T) r̂ 0 where Pi ( A ) and Ti ( A ) are i th-degree polynomials in A . These polynomials satisfy the following recurrence relations: , .
Derivation of BiCGSTAB from BiCG
It is unnecessary to explicitly keep track of the residuals and search directions of BiCG. In other words, the BiCG iterations can be performed implicitly. In BiCGSTAB, one wishes to have recurrence relations for r̃ i = Qi ( A ) Pi ( A ) r 0 where with suitable constants ωj instead of in the hope that Qi ( A ) will enable faster and smoother convergence in r̃i than ri . It follows from the recurrence relations for Pi ( A ) and Ti ( A ) and the definition of Qi ( A ) that , which entails the necessity of a recurrence relation for Qi ( A ) Ti ( A ) r 0 . This can also be derived from the BiCG relations: . Similarly to defining r̃i , BiCGSTAB defines p̃ i +1 = Qi ( A ) Ti ( A ) r 0 . Written in vector form, the recurrence relations for p̃ i and r̃ i are p̃ i = r̃ i −1 + βi ( I − ω i −1 A ) p̃ i −1 , r̃ i = ( I − ωiA )( r̃ i −1 − αiA p̃ i) . To derive a recurrence relation for xi , define . The recurrence relation for r̃ i can then be written as r̃ i = r̃ i −1 − αiA p̃ i − ωiAsi , which corresponds to .
Determination of BiCGSTAB constants
Now it remains to determine the BiCG constants αi and βi and choose a suitable ωi . In BiCG, with . Since BiCGSTAB does not explicitly keep track of r̂ i or r i , ρi is not immediately computable from this formula. However, it can be related to the scalar ρ̃ i = ( Q i −1( A T) r̂ 0, P i −1( A ) r 0) = ( r̂ 0, Q i −1( A ) P i −1( A ) r 0) = ( r̂ 0, r i −1) . Due to biorthogonality, r i −1 = P i −1( A ) r 0 is orthogonal to U i −2( A T) r̂ 0 where U i −2( A T) is any polynomial of degree i − 2 in A T . Hence, only the highest-order terms of P i −1( A T) and Q i −1( A T) matter in the dot products ( P i −1( A T) r̂ 0, P i −1( A ) r 0) and ( Q i −1( A T) r̂ 0, P i −1( A ) r 0) . The leading coefficients of P i −1( A T) and Q i −1( A T) are (−1)i −1 α 1 α 2⋯ α i −1 and (−1)i −1 ω 1 ω 2⋯ ω i −1 , respectively. It follows that , and thus . A simple formula for αi can be similarly derived. In BiCG, . Similarly to the case above, only the highest-order terms of P i −1( A T) and T i −1( A T) matter in the dot products thanks to biorthogonality and biconjugacy. It happens that P i −1( A T) and T i −1( A T) have the same leading coefficient. Thus, they can be replaced simultaneously with Q i −1( A T) in the formula, which leads to . Finally, BiCGSTAB selects ωi to minimize r̃ i = (I − ωiA ) si in 2 -norm as a function of ωi . This is achieved when ((I − ωiA ) si, Asi ) = 0 , giving the optimal value .
Generalization
BiCGSTAB can be viewed as a combination of BiCG and GMRES where each BiCG step is followed by a GMRES( 1 ) (i.e., GMRES restarted at each step) step to repair the irregular convergence behavior of CGS, as an improvement of which BiCGSTAB was developed. 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. In such cases, BiCGSTAB is likely to stagnate, as confirmed by numerical experiments. One may expect that higher-degree minimum residual polynomials may better handle this situation. This gives rise to algorithms including BiCGSTAB2 and the more general BiCGSTAB( l ). In BiCGSTAB( l ), a GMRES( l ) step follows every l BiCG steps. BiCGSTAB2 is equivalent to BiCGSTAB( l ) with .
This article is derived from Wikipedia and licensed under CC BY-SA 4.0. View the original article.
Wikipedia® is a registered trademark of the
Wikimedia Foundation, Inc.
Bliptext is not
affiliated with or endorsed by Wikipedia or the
Wikimedia Foundation.