Académique Documents
Professionnel Documents
Culture Documents
Exercice 1.
Algorithme du double gradient conjugué (BiCG).
1. Soit A = A∗ > 0, b1 = b2 , et x01 = x02 , montrer que le BiCG est identique à
l’algorithme du CG dans le cas complexe.
On reprend l’algorithme du BiCG :
Données : x01 , x02
r10 = b1 − A∗ x02 ;
r20 = b2 − Ax01 ;
d01 = r10 ;
d02 = r20 ;
pour k = 0, . . . faire
(rk , rk )
αk = k2 1 k ;
(d2 , Ad1 )
x1 = xk1 + αk dk2 ;
k+1
xk+1
2 = xk2 + αk dk1 ;
r1k+1 = r1k − αk Adk2 ;
r2k+1 = r2k − αk A∗ dk1 ;
(rk+1 , rk+1 )
βk+1 = 2 k 1k ;
(r2 , r1 )
dk+1
1 = r1
k+1
+ βk+1 dk1 ;
dk+1
2 = r2k+1 + βk+1 dk2 ;
fin
Et on le modifie avec les hypothèses de départ. Si A = A∗ et x02 = x01 , alors r10 = r20 ,
donc d01 = d02 .
On a également
r1k ,r1k
• αk = (dk1 ,Ad1 )
• xk+1
1 = xk+1
2
• r1k+1 = r2k+1
(r1k+1 ,r1k+1 )
• βk = (r1k ,rk )
• dk+1
1 = dk+1
2
1
2. Soit A est une matrice symétrique complexe avec A = At (non hermitienne)
inversible, b1 = b2 et x01 = x02 . Montrer que le BiCG est identique à un algorithme
du CG appliqué directement au cas complexe.
Données : x01 , x02
t
r10 = b2 − A x01 ;
r20 = b2 − Ax01 ;
d01 = r10 ;
0
d02 = r20 = d1 ;
r10 = r02 ;
x02 = x01 ;
pour k = 0, . . . faire
(rk , rk )
αk = k1 1 k ;
(d1 , Ad1 )
x1 = xk1 + αk dk2 ;
k+1
k
xk+1
2 1 ;
= xk1 + αk d2 = xk+1
Abandon;
fin
Non équivalent. Il faut prendre le produit scalaire et non le produit hermitien.
3. Soit A une matrice inversible, supposons qu’il existe b 6= 0 tel que (b, Ab) = 0.
Montrer que l’initialisation x01 = x02 = 0 et b1 = b2 = b du BiCG conduit à un
Breakdown.
Données : x01 , x02
r10 = b − A∗ x01 ;
r20 = b − Ax02 ;
d01 = r10 = b;
d02 = r20 = b;
pour k = 0 faire
(r0 , r0 ) (b, b)
α0 = 02 1 0 = ;
(d2 , Ad1 ) b, Ab
fin
Impossible.
Exercice 2.
Soit la matrice A = Id +αB avec Id la matrice identité, α ∈ R et B anti-symétrique
(B T = −B).
(Ax, x)
1. Monter que = 1 pour x 6= 0.
(x, x)
On a B = −B T . ∀x ∈ Rn ,
(Bx, x) = (x, B T x)
= −(x, Bx)
= −(Bx, x)
2
donc
(Bx, x) = −(Bx, x)
⇔(Bx, x) = 0
⇔α(Bx, x) = 0
pour tout α ∈ R.
Donc :
Données : r0 6= 0
0
v 1 = krr0 k ;
pour j = 0, . . . faire
hi,j = (Avj , vi ) avec 1 ≤ i ≤ j;
ṽj+1 = Avj − ji=1 hi,j vi ;
P
hj+1,j = kṽj+1 k;
ṽj+1
vj+1 = ;
kṽj+1 k
fin
Pour i = j = 1 :
Pour i = 2, j = 1, on a
3
αBv1
v2 =
ν2
Pour i = 1, j = 2
h12 = (Av2 , v1 )
= (v2 , v1 ) + α(Bv2 , v1 )
(BBv1 , v1 )
= 0 + α2
ν2
(Bv 1 , −Bv 1)
= α2
ν2
α2
= − kBv1 k2 = −ν2
ν2
Pour i = 2 = j :
Pour i = 2, j = 3 :
2
X
v˜3 = Av2 − hi,2 vi
i=1
= Av2 − ν2 v1 − v2
= (Id +αB)v2 − ν2 v1 − v2
= αBv2 − ν2 v1
h3,2 = kαBv2 − ν2 v1 k = ν3
Supposons
On a
hi,j+1 = (Avj+1 , vi )
= ((Id +αB)vj+1 , vi )
= (vj+1 , vi ) + α(Bvj+1 , vi )
α
=0+ (B(αvj + νj vj−1 ), vi )
νj+1
α
= ((αBvj , vi ) + (Bνj vj−1 , vi ))
νj
4
Anwar réessaye :
r
v1 =
krk
h1,1 = (Av1 , v1 ) = 1
ṽ2 = Av1 − h12 v1 = (Id +αB)v1 − v1 = αBv1
p
h2,1 = kṽ2 k = |α| (Bv1 , Bv1 ) = ν2
v2 = ṽ2 (?)
h1,2 = (Av2 , v1 )
1
= α(ABv2 , v2 ) ×
ν2
α
= (Bv1 , At v2 )
ν2
α
= (Bv1 , v1 − αBv1 )
ν2
α α2
= (Bv1 , v1 ) − kBv1 k2
ν2 ν2
α
= − kBv1 k2 = −ν2
ν2
h2,2 = (Av2 , v2 ) = 1
v˜3 = Av2 − v2 + ν2 v1 = αBv2 + ν2 v1
h3,2 = kṽ3 k = kαBv2 + ν2 v1 k = ν3
pour i < j − 1
hi,j = 0
hj,j = 1
hj−1,j = −νj
hj+1,j = kαBvj + νj vj−1 k = νj+1
1
vj+1 = (αBvj + νj vj1 ) ×
νj+1
hi,j+1 = (Avj+1 , vi )
= (vj+1 , At vi )
1
= (αBvj + νj vj+1 , vi − αBvi ) ×
νj+1
5
1
α(Bvj , vi ) + (νi vj+1 , vi ) − α2 (Bvj , Bvi ) − α(νj vj−1 , Bvi )
=
νj+1
α
=− (vj + αBvj + νj vj−1 , Bvi )
νj+1
α
=− (Avj + νj vj−1 , Bvi )
νj+1
1
vi+1 = (αBvi + νi vi−1 )
νi+1
Cas i < j :
1
hi,j+1 = − (νi+1 (Avj , vi+1 ) −νi (Avj , vi−1 ) + νj−1 , vi+1 (vj−1 , vi+1 ) − νj−1 νi (vj−1 , vi−1 ))
νj+1 | {z } | {z }
=0 =0
−λ 0 . . . 1
1 −λ . . . 0
det(A − λ In ) = det .. . . ..
. . . . . .
0 . . . 1 −λ
6
−λ 1 −λ . . . 0
0 ... 0
.. . . . . . . ..
1 −λ . 0 .
n
= −λ det .. . . . . . . .. − (−1) det .
.. . . . −λ
. .
0 . . . 1 −λ 0 ... ... 1
n−1
Y
= −λ (−λ) − (−1)n
i=1
= (−λ) − (−1)n = 0
n
⇒ (−λ)n = (−1)n
⇒ λn = 1
r0 b − Ax0 b
v1 = = = = b = e1
kr0 k kb − Ax0 k kbk
Pour j = 1 :
h1,1 = (e2 , e1 ) = 0
ṽ2 = Av1 − h1,1 v1 = Av1 = e2
h2,1 = ke2 k = 1
v2 = ṽ2 = e2
Pour j = 2 :
Av2 = e3
7
h1,2 = (Av2 , v1 ) = 0
h2,2 = (Av2 , v2 ) = (e3 , e2 ) = 0
ṽ3 = Av2 − 0 = e3
v3 = ṽ3 = e3