M ´ ETHODES IT ERATIVES DE R ´ ESOLUTION DE SYST ´ EMES LIN ` EAIRES ´
David Ryckelynck
Centre des Mat ´eriaux, Mines ParisTech
8 octobre 2015
Plan du cours
1
Motivations
2
La m ´ethode de Gauss Seidel
3
Les m ´ethodes de descente
4
M ´ethodes multigrilles
5
Exercice
Mast `ere DMS 2015, Sch ´emas d’int ´egration temporelle 2/16
Motivations
Le passage `a l’ ´echelle pour le calcul parall `ele est plus facile avec les m ´ethodes it ´eratives qu’avec les m ´ethodes directes.
Pas de probl `eme de num ´erotation des inconnues `a optimiser.
Mais :
La convergence en un nombre
raisonnable
d’it ´erations, n’est pas toujours acquise, elle d ´epend de la structure de la matrice, du point de d ´epart, du crit `ere d’arr ˆet... A ´etudier au cas par cas.
Peu adapt ´e `a la r ´esolution de probl `emes `a second membres multiples, si ceux-ci sont tr `es diff ´erents les uns des autres.
Il existe des m ´ethodes de factorisation L.U multifrontales tr `es performantes en calcul
parall `ele (voir MUMPS http://mumps.enseeiht.fr/index.php?page=doc).
La m ´ethode de Gauss Seidel
On cherche q ∈ R
Ntel que :
K.q = F
avec la s ´eparation de K en sa diagonale D, sa partie inf ´erieure L et sa partie sup ´erieure U : K = L + D + U
On choisit q
(o)et on construit l’it ´er ´e q
(i+1)tel que :
(L + D).q
(i+1)= F − U.q
(i)Il s’agit d’un syst `eme lin ´eaire `a matrice triangulaire inf ´erieure. Sa r ´esolution se fait progressivement de l’indice 1 `a l’indice N. c’est une op ´eration dite de descente.
Le nombre d’op ´erations que l’on peut traiter en parall `ele n’est pas tr `es important. Surtout au d ´ebut du calcul de q
(i+1). Il y a peu d’additions et de multiplications `a r ´ealiser en parall `ele.
C’est une m ´ethode de point fixe associ ´ee au probl `eme x = (L + D)
−1.(F − U.x). Il faut que le rayon spectral de (L + D)
−1.U soit inf ´erieur `a 1 pour qu’il y ait convergence. Si K est sym ´etrique d ´efinie positive, ou strictement `a diagonale dominante (|K
ii| > P
j6=i
|K
ij|), la m ´ethode converge.
Mast `ere DMS 2015, La m ´ethode de Gauss Seidel Sch ´emas d’int ´egration temporelle 4/16
Les m ´ethodes de descente
On cherche q ∈ R
Ntel que :
K.q = F On suppose K sym ´etrique d ´efinie positive (SPD en Anglais).
K.q = F ⇔ q = arg min
q?
J(q
?) avec
J(q
?) = 1
2 q
?T.K.q
?− q
?T.F
Convexit ´e :
J(q
b) ≥ J(q
a) + (q
b− q
a)
T.∇J(q
a)
∇J(q
a) = K.q
a− F Preuve :
J(q
b) = J(q
a) + (q
b− q
a)
T.∇J(q
a) + 1
2 (q
b− q
a)
T.K.(q
b− q
a) Donc le minimum local est le minimum global :
∇J(q) = 0
La plus forte pente (Steepest Descent)
En q
ala plus forte pente est dans la direction du gradient : r = −∇J(q
a)
donc r = F − K.q
a, c’est le r ´esidu du syst `eme lin ´eaire `a r ´esoudre.
Le probl `eme de minimisation dans la direction r s’ ´ecrit : trouver α ∈ R tel que α = arg min
α?
J(q
a+ α
?r)
On obtient :
α = r
T.r r
T.K.r
Mast `ere DMS 2015, Les m ´ethodes de descente Sch ´emas d’int ´egration temporelle 6/16
M ´ethode de la plus forte pente
A chaque ´etape on minimise J dans la direction de la plus forte pente :
Initialisation avec q
(o)donn ´e. On en d ´eduit r
(o)= F − K.q
(o). y
(i)= K.r
(i)α
(i)=
r(i)T.r(i)r(i)T.y(i)
q
(i+1)= q
(i)+ α
(i)r
(i)r
(i+1)= r
(i)− α
(i)y
(i)Arr ˆet des it ´erations si kr
(i+1)k <
tol.
P ´eriodiquement, le r ´esidu exacte est recalcul ´e pour r ´eduire la propagation d’erreurs d’arrondi.
Toutes ces op ´erations sont facilement parall ´elisables sur plusieurs coeurs de processeurs.
Propri ´et ´e de la m ´ethode de la plus forte pente
Les directions de descente successives sont orthogonales : r
(i+1)T.r
(i)= r
(i)T.r
(i)− r
(i)T.r
(i)r
(i)T.y
(i).y
(i)T.r
(i)= 0
Mast `ere DMS 2015, Les m ´ethodes de descente Sch ´emas d’int ´egration temporelle 8/16
M ´ethode du gradient conjugu ´e
On souhaite une orthogonalit ´e des directions de descente au sens de la matrice K (directions K-conjugu ´ees) pour ´eviter des effets zig-zag lors de la convergence.
Initialisation avec q
(o)donn ´e. On en d ´eduit r
(o)= F − K.q
(o), d
(o)= r
(o). y
(i)= K.d
(i)α
(i)=
d(i)T.r(i)d(i)T.y(i)
q
(i+1)= q
(i)+ α
(i)d
(i)r
(i+1)= r
(i)− α
(i)y
(i)β
(i+1)=
krkr(i+1)(i)kk22d
(i+1)= r
(i+1)+ β
(i+1)d
(i)Arr ˆet des it ´erations si kr
(i+1)k <
tol.
Propri ´et ´e :
r
(i+1)T.d
(i)= 0
Propri ´et ´e de convergence de la m ´ethode du gradient conjugu ´e
Apr `es N it ´erations, deux cas de figure se pr ´esentent : Soit le r ´esidu est nul r
(N)= 0, donc il y a convergence.
Soit il est orthogonal aux N directions de descente d
(o), . . . , d
(N−1). Or ces directions sont K-orthogonales. Elles constituent une base de R
N. Donc le r ´esidu est nul. Il y a convergence.
La convergence est plus rapide selon les modes ”locaux” que selon les modes ”globaux” ( `a grande longueur de variation).
Mast `ere DMS 2015, Les m ´ethodes de descente Sch ´emas d’int ´egration temporelle 10/16
M ´ethode du gradient conjugu ´e pr ´econditionn ´e
Initialisation avec q
odonn ´e. On en d ´eduit r
(o)= F − K.q
(o), d
(o)= M
−1r
(o), g
(o)= d
(o). z
(i)= K.d
(i)α
(i)=
r(i)T.g(i)d(i)T.z(i)
q
(i+1)= q
(i)+ α
(i)d
(i)r
(i+1)= r
(i)− α
(i)z
(i)g
(i+1)= M
−1.r
(i+1)β
(i+1)=
r(i+1)T.g(i+1)r(i)T.g(i)
d
(i+1)= g
(i+1)+ β
(i+1)d
(i)Arr ˆet des it ´erations si kr
(i+1)k <
tol. Pr ´econditionneur de Jacobi : M = diag(K
ii).
Pr ´econditionneur par factorisation incompl `ete de Cholesky : On cherche G triangulaire inf ´erieure aussi creuse que possible tel que :
kK − G.G
Tk < ∆
tol, M = G.G
TOn peut choisir G
−1tel que la structure creuse de cette matrice soit celle de la matrice M.
La m ´ethode GMRES (Generalized Minimum Residual Saad & Schultz 1986)
L’objectif est d’ ´etendre l’algorithme de gradient conjugu ´e au traitement des syst `emes `a matrice non sym ´etrique.
La solution approch ´ee donn ´ee par l’algorithme du Gradient Conjugu ´e appartient `a un sous-espace de Krylov :
e q − q
(o)∈ span{r
(o), K.r
(o), K
2.r
(o), . . . , K
m.r
(o)}
Pour GMRES, on cherche le minimum de la norme des r ´esidus dans un sous-espace : e q = arg min
q?∈q(o)+
span
{v(1),v(2),...,v(m)}kF − K.q
?k
o `u (v
(k))
mk=1est une base orthogonale du sous-espace de Krylov
span{r
(o), K.r
(o), K
2.r
(o), . . . , K
m−1.r
(o)}. Cette base est construite par la m ´ethode d’Arnoldi : v
(1)= r
(o)/kr
(o)k. Puis, de j = 1 `a m − 1
H
ij= (K.v
(j))
T.v
(i), i = 1, . . . , j b v
(j+1)= K.v
(j)− P
ji=1
v
(i)H
ijH
j+1j= k b v
(j+1)k
Si H
j+1j= 0 alors on arr ˆete les it ´erations, sinon v
(j+1)= b v
(j+1)/H
j+1jPropri ´et ´e :
K.[v
(1), . . . , v
(m)] = [v
(1), . . . , v
(m+1)].H
Mast `ere DMS 2015, Les m ´ethodes de descente Sch ´emas d’int ´egration temporelle 12/16
Quelques remarques sur la convergence des modes propres `a grande valeur propre
Consid ´erons le cas d’une matrice exprim ´ee dans la base de ses modes propres :
K =
λ
10 0
0 . . . 0
0 0 λ
N
Soit q la solution exacte de K.q = F.
Alors
r
(o)=
λ
10 0
0 . . . 0
0 0 λ
N
.(q − q
(o))
et
α
(1)= P
Ni=1
λ
2i(q
i− q
i(o))
2P
Ni=1
λ
3i(q
i− q
i(o))
2Les modes aux valeurs propres ´elev ´ees jouent un r ˆole plus important que les autres dans le calcul de α. On constate que la vitesse de convergence de la solution est plus rapide pour les
composantes port ´ees par ces modes.
M ´ethodes multigrilles
On associe au probl `eme `a r ´esoudre un probl `eme `a grille grossi `ere, ne contenant pas les modes `a valeurs propres ´elev ´ees du probl `eme d’origine. On note K, b b q et b F, la matrice, la solution et le second membre du probl `eme grossier. Ce probl `eme a N b inconnues, avec N b < N.
On d ´efinit un op ´erateur de restriction R ∈ R
N×Nbtel que : b F = R.F On d ´efinit un op ´erateur de prolongement P ∈ R
N×bNtel que :
e q = P.b q avec, pour F et b q quelconques :
e q
T.F = b q
T. F b ⇒ R = P
TDans le cadre de la m ´ethode des ´el ´ements finis P est construit par une m ´ethode d’interpolation.
Mast `ere DMS 2015, M ´ethodes multigrilles Sch ´emas d’int ´egration temporelle 14/16
M ´ethodes multigrilles
Apr `es quelques ´etapes du gradient conjugu ´e on peut am ´eliorer la convergence sur les modes `a valeurs propres basses en traitant un probl `eme directe `a l’ ´echelle grossi `ere :
r = F − K.q
(ν)K.δb b q = R.r q
(ν+1)= q
(ν)+ P.δb q Puis refaire ν ´etapes de gradient conjugu ´e. Il s’agit d’un cycle en V.
On peut aussi commencer par une ´etape directe sur le probl `eme grossier. Il s’agit alors d’une
approche Full-Multigrid.
Exercice
D ´ecouverte de :
scipy.sparse.linalg.cg(A, b, x0=None, tol=1e-05) scipy.sparse.linalg.gmres(A, b, x0=None, tol=1e-05)
http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.
linalg.cg.html
Sur quel type de matrice peut-on comparer ces deux m ´ethodes ?
Comparer la pr ´ecision pour un nombre d’it ´erations fix ´ees ( `a l’aide du maximum d’it ´eration).
Comparer le temps d’ex ´ecution pour une pr ´ecision donn ´ee.
Comparer la forme des r ´esidus pour une pr ´ecision donn ´ee.
Retrouver dans le code source
Mast `ere DMS 2015, Exercice Sch ´emas d’int ´egration temporelle 16/16