02.11.2014 Views

Gerard L.G. Sleijpen, Peter Sonneveld and Martin B. van Gijzen, Bi ...

Gerard L.G. Sleijpen, Peter Sonneveld and Martin B. van Gijzen, Bi ...

Gerard L.G. Sleijpen, Peter Sonneveld and Martin B. van Gijzen, Bi ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Author's personal copy<br />

1110 G.L.G. <strong>Sleijpen</strong> et al. / Applied Numerical Mathematics 60 (2010) 1100–1114<br />

Select an x 0<br />

Select an ˜R0<br />

Compute r 0 = b − Ax 0<br />

k = 0, s = r 0<br />

for j = 1,...,s<br />

U 0 e j = s, s = As, S 0 e j = s<br />

end for<br />

repeat<br />

σ k = ˜R∗<br />

0 S k, ⃗α k = σ −1<br />

k<br />

v = r k − S k ⃗α k<br />

s = Av<br />

Select an ω k<br />

r k+1 = v − ω k s<br />

for<br />

j = 1,...,s<br />

( ˜R∗<br />

0 s)<br />

⃗β j = σ −1<br />

k<br />

v = s − S k<br />

⃗β j<br />

s = Av<br />

S k+1 e j = v − ω k s<br />

end for<br />

k ← k + 1<br />

end repeat<br />

( ˜R∗<br />

0 r k)<br />

Select an x<br />

Select an ˜R0<br />

Compute r = b − Ax<br />

s = r<br />

for j = 1,...,s<br />

Ue j = s, s = As, Se j = s<br />

end for<br />

repeat<br />

σ = ˜R∗<br />

0 S, ⃗α = σ −1 ( ˜R∗<br />

0 r)<br />

x = x + U⃗α, v = r − S⃗α<br />

s = Av<br />

Select an ω<br />

x = x + ωv, r = v − ωs<br />

for j = 1,...,s<br />

⃗β = σ −1 ( ˜R∗<br />

0 s)<br />

u = v − U ⃗β, v = s − S ⃗β<br />

s = Av<br />

U ′ e j = u − ωv, S ′ e j = v − ωs<br />

end for<br />

U = U ′ , S = S ′<br />

end repeat<br />

Algorithm 4. <strong>Bi</strong>-CGSTAB. For analysis purposes, we present the algorithm with indices (<strong>and</strong> no update of the approximate solution), see the<br />

left panel. The right panel includes the update of the approximate solution, but the algorithm here has been displayed without indices:<br />

new values are allowed to replace old values.<br />

8. <strong>Bi</strong>-CGSTAB <strong>and</strong> IDR(s)<br />

We put s k+1 ≡ r k+1 − r k <strong>and</strong> S k ≡[s k , s k−1 ,...,s k+1−s ].TheIDR(s) loop runs as follows (below the horizontal line)<br />

v k = r k − S k ⃗α k ⊥ ˜R0<br />

Select ω, r k+1 = (I − ωA)v k<br />

for j = 1,...,s<br />

v k+ j = r k+ j + S k+ j<br />

⃗β k+ j ⊥ ˜R0<br />

r k+ j+1 = (I − ωA)v k+ j<br />

end for<br />

v k+1+s = r k+1+s − S k+1+s ⃗α k+1+s ⊥ ˜R0<br />

As before, ...⊥ ˜R0 indicates that the s-vectors (⃗α <strong>and</strong> ⃗β) in the expression in front of the symbol ⊥ has been selected such<br />

that the expression is orthogonal to ˜R0 .<br />

The following lemma implies that IDR(s) <strong>and</strong> <strong>Bi</strong>-CGSTAB are equivalent: if they produce the same v k <strong>and</strong> r k , then, in<br />

exact arithmetic, they produce the same r k+1 , v k+s+1 <strong>and</strong> r k+1+s . With the same initialization, assuming exact arithmetic,<br />

they produce the same residuals <strong>and</strong> approximations every s + 1step.<br />

Lemma 17. Let w k+ j ≡ Av k+ j + S k ⃗γ k+ j ⊥ ˜R0 .<br />

(a) v k+1+s = r k+1 − S k+1+s<br />

⃗˜α ⊥ ˜R0 .<br />

(b) Span(S k+1+s ) = (I − ωA) Span([w k+s−1 , w k+s−2 ,...,w k ]).<br />

(c) With<br />

à ≡ ( ( )<br />

I − S k ˜R∗ 0 S −1<br />

k<br />

˜R∗ 0)<br />

A, (15)<br />

Span([w k+s−1 , w k+s−2 ,...,w k ]) is the Krylov subspace of order s generated by à <strong>and</strong> Ãv k .<br />

Proof. We first ( prove by induction that<br />

Span [s k+ j+1 ,...,s k+1 ] ) + Span(S k ) = ( Span [w k+ j ,...,w k ] ) + Span(S k ).<br />

Note that<br />

s k+ j+1 = r k+ j+1 − r k+ j =−ωAv k+ j + v k+ j − r k+ j ∈−ωAv k+ j + Span(S k+ j ) ⊂ ( Span [w k+ j ,...,w k ] ) + Span(S k ).<br />

The last inclusion follows by induction.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!