Universit´
e Pierre et Marie Curie
Ann´
ee universitaire 2011-2012
LM 335 : Calcul num´
erique matriciel
Travaux pratiques (Scilab)
5 M´
ethode du gradient conjugu´
e
Exercice 5.1 On se propose de r´
esoudre le syst`
eme Ax =b, o`
uAest une matrice r´
eelle sym´
etrique
d´
efinie positive de taille n×net bun vecteur de Rn, par la m´
ethode du gradient conjugu´
e. La m´
ethode
de gradient utilis´
ee pour r´
esoudre le syst`
eme Ax =bpeux aussi ˆ
etre vue comme une m´
ethode pour
minimiser la fonction fd´
efinie par
x∈Rn, f(x) = 1
2hAx, xi−hb, xi.
La m´
ethode du gradient conjugu´
e est d´
efinie comme suit : Soit x0∈Rndonn´
e. On construit les suites
de vecteurs de Rn(xk)k,(rk)ket (pk)kpar p0=r0=b−Ax0, puis, pour k≥0,
xk+1 =xk+αkpk,
rk+1 =rk−αkApk,
pk+1 =rk+1 +βkpk,
(1)
o`
uαk=krkk2
<Apk,pk>et βk=krk+1k2
krkk2. Les it´
erations (1) sont r´
ep´
et´
ees jusqu’a ce qu’un crit`
ere d’arrˆ
et soit
satisfait.
1. Programmer la m´
ethode de gradient conjugu´
e dans une fonction
[x, iter] = GradientConj(A, b, tol, iterMax, x0)
o`
ux0est le vecteur initial, xest la solution propos´
ee par la m´
ethode du gradient conjug´
e au
bout d’un nombre d’it´
erations iter. Les it´
erations de la m´
ethode du gradient conjugu´
e s’arrˆ
etent
si ||b−Ax||2≤tol ou si le le nombre maximal d’it´
erations iterMax est atteint.
2. On souhaite maintenant voir l’impact du condionnement de la matrice A sur la performance
de la m´
ethode du gradient conjugu´
e. On s’int´
eressera plus particuli`
erement `
a la r´
esolution du
syst`
eme Ax = (0,...,0). La solution de ce syst`
eme est xexact = (0,...,0). On construit la
matrice Ade la fac¸on suivante :
A=U∗diag(α0= 1, . . . , α
i−1
n−1, . . . , α)U ,
o`
uUest une matrice orthogonale, i.e., U∗=U−1et α≥1. On a donc
cond2(A) = cond2(diag(1 = α0, . . . , α(i−1)/(n−1), . . . , α)) = α .
R´
esoudre le syst`
eme Ax = (0,...,0) pour plusieurs conditionnements i.e. plusieurs valeurs
de αpuis tracer le nombre d’it´
erations iter n´
ecessaires pour atteindre la tol´
erance tol (On
prendra iterMax assez grand pour assurer que l’arrˆ
et de l’algorithme du gradient conjugu´
e soit
uniquement dˆ
u au fait que la tol´
erance tol soit atteinte).
1