u£

and as a result the vector is no longer needed. The resulting algorithm is given below.

´ A ˜Q¤ v ¢ •

—

¡¦ &95 P¥ @V2 U7R ¡ ¤ 6 D ¥ 5V9@ ¡

5S@

8

S6 Q 8

' 7$

%# ) 2

1 3

3

¨ ¨ V§ ²A¨ ¬ ¨

©

1. Compute ; arbitrary.

3 3

T ¨ ¬ T ¬

2. Set .

£

¡

X ¨ u )™( y u $}u X ˜ ( Y ¬

3. For , until convergence Do:

¨ ( T § ¨ ¨ ( ¨ ¬

4. ¡

u ¬ u¢

X u ¢ w u T u § w u ²

u

u

5. £

¡

(T ¬ "U u u ©

©

6. £

X u £w u T u u ¬ W ¨

¨ ¨ ( u ¨ § X ¨ ¨ ( ² ¨ u ¨ "U u S

¢X

7. £

W¬

8.

u T ¢ u S w W"U ¬ u

u¨

9. £

Xu

u S w u ¢ u S w "U u ¬ ’U u W

W

10. £

¡ ¡

W"U

"U

W

11. EndDo

§

Observe that there are no matrix-by-vector products with the transpose of . Instead, two

§

matrix-by-vector products with the matrix are now performed at each step. In general,

one should expect the resulting algorithm to converge twice as fast as BCG. Therefore,

what has essentially been accomplished is to replace the matrix-by-vector products with

§ by more useful work.

The Conjugate Gradient Squared algorithm works quite well in many cases. However,

one dif¬culty is that, since the polynomials are squared, rounding errors tend to be more

damaging than in the standard BCG algorithm. In particular, very high variations of the

residual vectors often cause the residual norms computed from the result of line 7 of the

above algorithm to become inaccurate.

¨ 6

§ % 7¡6 DB %

8AF )

The CGS algorithm is based on squaring the residual polynomial, and, in cases of irregular

convergence, this may lead to substantial build-up of rounding errors, or possibly even

over¬‚ow. The Biconjugate Gradient Stabilized (BICGSTAB) algorithm is a variation of

CGS which was developed to remedy this dif¬culty. Instead of seeking a method which

delivers a residual vector of the form de¬ned by (7.22), BICGSTAB produces iterates ¤u

¨

whose residual vectors are of the form T T

± ¯ a „ ®

i

u DX X

¬ § §

u

¤u ¨

©

¨

T (

uD X

T

in which, as before, is the residual polynomial associated with the BCG algorithm

u© X

and is a new polynomial which is de¬ned recursively at each step with the goal of

T

“stabilizing” or “smoothing” the convergence behavior of the original algorithm. Speci¬-

u© X

cally, is de¬ned by the simple recurrence, T T T

r±— a „ ®

i

² y ¬ X u ©Xu X

#

u

© W"U

5 £ B¡ k| ¡ k¦¡B¦5

§ £ | § q| ¥ £§ ¤£

C

¨ "

u#

in which the scalar is to be determined. The derivation of the appropriate recurrence

relations is similar to that of CGS. Ignoring the scalar coef¬cients at ¬rst, we start with a

uD

uT

relation for the residual polynomial . We immediately obtain © T

"U W"U

W a± a „ ®

i

u D X uT © X u #

uD ²¬

u T

©

a± a „ ®

i

Xu #

X u u u "U u D u

W"U "U

W W y

²y ¬ ² ¡

© ©

¡

uu

which is updatable provided a recurrence relation is found for the products . For this,

©

write T

a± a „ ®

i

wuD u

X