M´ ethodes it´ eratives pour la r´ esolution des syst` emes lin´ eaires
4.2 M´ ethodes it´ eratives lin´ eaires
Une technique g´en´erale pour d´efinir une m´ethode it´erative lin´eaire consistante est bas´ee sur la d´ecomposition, ou splitting, de la matrice A sous la forme A=P−N, o`u P est une matrice inversible. Pour des raisons qui s’´eclairciront dans les prochaines sections, P est appel´eematrice de pr´econditionnementou pr´econditionneur.
On se donnex(0), et on calculex(k)pour k≥1, en r´esolvant le syst`eme Px(k+1)= Nx(k)+b, k≥0. (4.6) La matrice d’it´eration de la m´ethode (4.6) est B = P−1N, et f = P−1b. On peut aussi ´ecrire (4.6) sous la forme
x(k+1)=x(k)+ P−1r(k), (4.7) o`u
r(k)=b−Ax(k) (4.8)
d´esigne ler´esidu`a l’it´erationk. La relation (4.7) montre qu’on doit r´esoudre un syst`eme lin´eaire de matrice P `a chaque it´eration. En plus d’ˆetre inversible, P doit donc ˆetre “facile `a inverser” afin de minimiser le coˆut du calcul. Remarquer que si P est ´egale `a A et N=0, la m´ethode (4.7) converge en une it´eration, mais avec le mˆeme coˆut qu’une m´ethode directe.
Citons deux r´esultats qui garantissent la convergence de (4.7), sous des hypoth`eses convenables concernant lesplittingde A (voir p. ex. [Hac94] pour les d´emonstrations).
Propri´et´e 4.1 Soit A = P−N, avec A etP sym´etriques d´efinies positives.
Si la matrice 2P−A est d´efinie positive, alors la m´ethode it´erative(4.7)est convergente pour toute donn´ee initialex(0) et
ρ(B) = B A= B P<1.
De plus, la convergence de la suite est monotone pour les normes · Pet · A
(i.e. e(k+1) P< e(k) P et e(k+1) A< e(k) A,k= 0,1, . . .).
Propri´et´e 4.2 Soit A = P−N avec A sym´etrique d´efinie positive. Si la matrice P + PT −A est d´efinie positive, alors P est inversible, la m´ethode it´erative(4.7)converge de mani`ere monotone pour la norme · Aet ρ(B)≤
B A<1.
4.2.1 Les m´ethodes de Jacobi, de Gauss-Seidel et de relaxation Dans cette section, nous consid´erons quelques m´ethodes it´eratives lin´eaires classiques.
Si les coefficients diagonaux de A sont non nuls, on peut isoler l’inconnue xi dans lai-`eme ´equation, et obtenir ainsi le syst`eme lin´eaire ´equivalent
xi= 1
Dans lam´ethode de Jacobi, pour une donn´ee initiale arbitrairex0, on calcule x(k+1)selon la formule
Cela revient `a effectuer la d´ecomposition suivante de la matrice A : P = D, N = D−A = E + F,
o`u D est la matrice diagonale compos´ee des coefficients diagonaux de A, E est la matrice triangulaire inf´erieure de coefficientseij =−aij sii > j,eij = 0 si i≤j, et F est la matrice triangulaire sup´erieure de coefficients fij =−aij si j > i, fij = 0 sij≤i. Ainsi, A = D−(E + F).
La matrice d’it´eration de la m´ethode de Jacobi est donc donn´ee par BJ= D−1(E + F) = I−D−1A. (4.11) Une g´en´eralisation de la m´ethode de Jacobi est lam´ethode de sur-relaxation (ou JOR, pourJacobi over relaxation), dans laquelle on se donne un param`etre de relaxationω et on remplace (4.10) par
x(ik+1)= ω
La matrice d’it´eration correspondante est
BJω=ωBJ+ (1−ω)I. (4.12)
Sous la forme (4.7), la m´ethode JOR correspond `a x(k+1)=x(k)+ωD−1r(k).
Cette m´ethode est consistante pour toutω= 0. Pourω= 1, elle co¨ıncide avec la m´ethode de Jacobi.
La m´ethode de Gauss-Seidel diff`ere de la m´ethode de Jacobi par le fait qu’`a lak+ 1-i`eme ´etape les valeursx(ik+1) d´ej`a calcul´ees sont utilis´ees pour mettre `a jour la solution. Ainsi, au lieu de (4.10), on a
x(ik+1)= 1
Cette m´ethode revient `a effectuer la d´ecomposition suivante de la matrice A : P = D−E, N = F,
et la matrice d’it´eration associ´ee est
BGS= (D−E)−1F. (4.14)
En partant de la m´ethode de Gauss-Seidel et par analogie avec ce qui a ´et´e fait pour les it´erations de Jacobi, on introduit la m´ethode de sur-relaxation successive(ou m´ethode SORpoursuccessive over relaxation)
x(ik+1)= ω d’o`u on d´eduit la matrice d’it´eration
B(ω) = (I−ωD−1E)−1[(1−ω)I +ωD−1F]. (4.17)
Elle est consistante pour tout ω = 0 et elle co¨ıncide avec la m´ethode de Gauss-Seidel pour ω = 1. Si ω ∈]0,1[, la m´ethode est appel´ee m´ethode de sous-relaxation, et m´ethode de sur-relaxation si ω >1.
4.2.2 R´esultats de convergence pour les m´ethodes de Jacobi et de Gauss-Seidel
Il existe des cas o`u on peut ´etablir des propri´et´es de convergencea prioripour les m´ethodes examin´ees `a la section pr´ec´edente. Voici deux r´esultats dans ce sens.
Th´eor`eme 4.2 Si A est une matrice `a diagonale dominante stricte, les m´ e-thodes de Jacobi et de Gauss-Seidel sont convergentes.
D´emonstration.Nous prouvons la partie du th´eor`eme concernant la m´ethode de Jacobi et nous renvoyons `a [Axe94] pour la m´ethode de Gauss-Seidel. La matrice A ´etant `a diagonale dominante, |aii|>n
j=1|aij| pouri= 1, . . . , n etj =i. Par cons´equent, BJ∞ = max
i=1,...,n
n j=1,j=i
|aij|/|aii|<1, la m´ethode de Jacobi est donc
convergente. 3
Th´eor`eme 4.3 Si Aet 2D−A sont sym´etriques d´efinies positives, alors la m´ethode de Jacobi est convergente etρ(BJ) = BJ A= BJ D.
D´emonstration.Le th´eor`eme d´ecoule de la Propri´et´e 4.1 en prenant P=D. 3 Dans le cas de la m´ethode JOR, on peut se passer de l’hypoth`ese sur 2D−A, comme le montre le r´esultat suivant.
Th´eor`eme 4.4 QuandAest sym´etrique d´efinie positive, la m´ethode JOR est convergente si 0< ω <2/ρ(D−1A).
D´emonstration.Il suffit d’appliquer la Propri´et´e 4.1 `a la matrice P = ω1D. La matrice 2P−A ´etant d´efinie positive, ses valeurs propres sont strictement positives :
λi(2P−A) =λi 2
ωD−A
= 2
ωdii−λi(A)>0.
Ce qui implique 0< ω <2dii/λi(A) pouri= 1, . . . , n, d’o`u le r´esultat. 3 En ce qui concerne la m´ethode de Gauss-Seidel, on a le r´esultat suivant : Th´eor`eme 4.5 Si A est sym´etrique d´efinie positive, la m´ethode de Gauss-Seidel converge de mani`ere monotone pour la norme · A.
D´emonstration.On peut appliquer la Propri´et´e 4.2 `a la matrice P=D−E. V´ eri-fions pour cela que P + PT−A est d´efinie positive. En remarquant que (D−E)T = D−F, on a
P + PT−A = 2D−E−F−A = D.
On conclut en remarquant que D est d´efinie positive (c’est la diagonale de A). 3 Enfin, si A est tridiagonale sym´etrique d´efinie positive, on peut montrer que la m´ethode de Jacobi est convergente et que
ρ(BGS) =ρ2(BJ). (4.18)
Dans ce cas, la m´ethode de Gauss-Seidel converge plus rapidement que celle de Jacobi. La relation (4.18) est encore vraie si A poss`ede laA-propri´et´e:
D´efinition 4.3 Une matrice M telle que les valeurs propres de αD−1E + α−1D−1F pourα = 0 ne d´ependent pas de α (o`u D est la diagonale de M, et E et F ses parties triangulaires resp. inf´erieure et sup´erieure) poss`ede la A-propri´et´e si on peut la d´ecomposer en 2×2 blocs de la forme
Pour des matrices g´en´erales, l’Exemple 4.2 montre qu’on ne peut tirer aucune conclusion a priori sur la convergence des m´ethodes de Jacobi et de Gauss-Seidel.
Exemple 4.2 Consid´erons les syst`emes lin´eaires 3×3 de la forme Aix =bi. On choisit bi de mani`ere `a ce que la solution du syst`eme soit le vecteur unit´e, et les matrices Ai sont donn´ees par
A1= contrairement `a celle de Gauss-Seidel. C’est exactement le contraire qui se produit pour A2 (ρ(BGS) = 1.¯1). La m´ethode de Jacobi converge plus lentement que celle de Gauss-Seidel pour la matrice A3 (ρ(BJ) = 0.44 etρ(BGS) = 0.018), alors que la m´ethode de Jacobi est plus rapide pour A4 (ρ(BJ) = 0.64 etρ(BGS) = 0.77). •
Concluons cette section avec le r´esultat suivant :
Th´eor`eme 4.6 Si la m´ethode de Jacobi converge, alors la m´ethode JOR converge pour 0< ω≤1.
D´emonstration.D’apr`es (4.12), les valeurs propres de BJω sont µk=ωλk+ 1−ω, k= 1, . . . , n,
o`uλk sont les valeurs propres de BJ. Alors, en posantλk=rkeiθk, on a
|µk|2=ω2rk2+ 2ωrkcos(θk)(1−ω) + (1−ω)2≤(ωrk+ 1−ω)2,
qui est strictement inf´erieur `a 1 si 0< ω≤1. 3
4.2.3 R´esultats de convergence pour la m´ethode de relaxation Sans hypoth`ese particuli`ere sur A, on peut d´eterminer les valeurs de ω pour lesquelles la m´ethode SOR ne peut pas converger :
Th´eor`eme 4.7 On a ρ(B(ω)) ≥ |ω−1| ∀ω ∈ R. La m´ethode SOR diverge donc siω≤0 ouω≥2.
D´emonstration. Si {λi} d´esigne l’ensemble des valeurs propres de la matrice d’it´eration de SOR, alors
%n i=1
λi =det
(1−ω)I +ωD−1F=|1−ω|n.
Par cons´equent, au moins une valeur propreλi est telle que |λi| ≥ |1−ω|. Pour avoir convergence, il est donc n´ecessaire que|1−ω|<1, c’est-`a-dire 0< ω <2. 3 Si on suppose A sym´etrique d´efinie positive, la condition n´ecessaire 0< ω <2 devient suffisante pour avoir convergence. On a en effet le r´esultat suivant (voir p. ex. [Hac94] pour la preuve) :
Propri´et´e 4.3 (Ostrowski) Si A est sym´etrique d´efinie positive, alors la m´ethode SOR converge si et seulement si0< ω <2. De plus, sa convergence est monotone pour · A.
Enfin, si A est`a diagonale dominante stricte, SOR converge si 0< ω≤1.
Les r´esultats ci-dessus montrent que SOR converge plus ou moins vite se-lon le choix du param`etre de relaxation ω. On ne peut donner de r´eponses satisfaisantes `a la question du choix du param`etre optimal ωopt (i.e. pour lequel le taux de convergence est le plus grand) seulement dans des cas par-ticuliers (voir par exemple [Axe94], [You71], [Var62] ou [Wac66]). Nous nous contenterons ici de citer le r´esultat suivant (dont la preuve se trouve dans [Axe94]).
Propri´et´e 4.4 Si la matriceAposs`ede la A-propri´et´e et si les valeurs propres de BJ sont r´eelles, alors la m´ethode SOR converge pour toute donn´ee initiale x(0) si et seulement siρ(BJ)<1et 0< ω <2. De plus,
ωopt= 2
1 +
1−ρ(BJ)2 (4.19)
et le facteur de convergence asymptotique est donn´e par
ρ(B(ωopt)) = 1−
1−ρ(BJ)2 1 +
1−ρ(BJ)2.
4.2.4 Matrices par blocs
Les m´ethodes des sections pr´ec´edentes font intervenir lescoefficients de la matrice. Il existe aussi des versions par blocsde ces algorithmes.
Notons D la matrice diagonale par blocs dont les ´el´ements sont les blocs diagonaux m×mde la matrice A (voir Section 1.6). On obtient la m´ethode de Jacobi par blocsen prenant encore P=D et N=D-A. La m´ethode n’est bien d´efinie que si les blocs diagonaux de D sont inversibles. Si A est d´ecompos´ee enp×pblocs carr´es, la m´ethode de Jacobi par blocs s’´ecrit
Aiix(ik+1)=bi− p
j=1
j=i
Aijx(jk), i= 1, . . . , p,
o`u l’on a aussi d´ecompos´e la solution et le second membre en blocs de tailles p not´es respectivement xi et bi. A chaque ´etape, la m´ethode de Jacobi par blocs n´ecessite la r´esolution depsyst`emes lin´eaires associ´es aux matrices Aii. Le Th´eor`eme 4.3 est encore vrai en rempla¸cant D par la matrice diagonale par blocs correspondante.
On peut d´efinir de mani`ere analogue les m´ethodes de Gauss-Seidel et SOR par blocs.
4.2.5 Forme sym´etrique des m´ethodes SOR et de Gauss-Seidel Mˆeme pour une matrice sym´etrique, les m´ethodes SOR et de Gauss-Seidel conduisent `a des matrices d’it´eration en g´en´eral non sym´etriques. Pour cette raison, nous introduisons dans cette section une technique permettant de sy-m´etriser ces algorithmes. L’objectif `a terme est de construire des pr´ econdi-tionneurs sym´etriques (voir Section 4.3.2).
Remarquons tout d’abord qu’on peut construire l’analogue de la m´ethode de Gauss-Seidel en ´echangeant simplement E et F. On d´efinit alors l’algorithme suivant, appel´em´ethode de Gauss-Seidel r´etrograde,
(D−F)x(k+1)= Ex(k)+b,
dont la matrice d’it´eration est donn´ee par BGSb= (D−F)−1E.
On obtient lam´ethode de Gauss-Seidel sym´etriqueen combinant une it´eration de Gauss-Seidel avec une it´eration de Gauss-Seidel r´etrograde. Plus pr´ecis´ e-ment, lak-i`eme it´eration de la m´ethode de Gauss-Seidel sym´etrique est d´efinie par
(D−E)x(k+1/2)= Fx(k)+b, (D−F)x(k+1)= Ex(k+1/2)+b.
En ´eliminantx(k+1/2), on obtient le sch´ema suivant x(k+1)= BSGSx(k)+bSGS, BSGS= (D−F)−1E(D−E)−1F, bSGS= (D−F)−1[E(D−E)−1+ I]b.
(4.20)
La matrice de pr´econditionnement associ´ee `a (4.20) est PSGS = (D−E)D−1(D−F).
On peut alors prouver le r´esultat suivant (voir [Hac94]) :
Propri´et´e 4.5 Si Aest une matrice sym´etrique d´efinie positive, la m´ethode de Gauss-Seidel sym´etrique est convergente. De plus, BSGS est sym´etrique d´efinie positive.
On peut d´efinir de mani`ere analogue la m´ethode SOR r´etrograde (D−ωF)x(k+1)= [ωE + (1−ω)D]x(k)+ωb,
et la combiner `a chaque pas `a la m´ethode SOR pour obtenir la m´ethodeSOR sym´etriqueouSSOR
x(k+1)= Bs(ω)x(k)+bω, o`u
Bs(ω) = (D−ωF)−1(ωE + (1−ω)D)(D−ωE)−1(ωF + (1−ω)D), bω=ω(2−ω)(D−ωF)−1D(D−ωE)−1b.
La matrice de pr´econditionnement de cet algorithme est PSSOR(ω) =
1 ωD−E
ω 2−ωD−1
1 ωD−F
. (4.21)
Quand A est sym´etrique d´efinie positive, la m´ethode SSOR est convergente si 0< ω <2 (voir [Hac94] pour la preuve). Typiquement, la m´ethode SSOR avec un choix optimal de param`etre de relaxation converge plus lentement que la m´ethode SOR correspondante. N´eanmoins, la valeur deρ(Bs(ω)) est moins sensible au choix deωautour de la valeur optimale (voir le comportement des rayons spectraux des deux matrices d’it´eration sur la Figure 4.1). Pour cette raison, on choisit g´en´eralement pour SSOR la valeur deωoptimale pour SOR (voir [You71] pour plus de d´etails).
4.2.6 Impl´ementations
Nous pr´esentons des impl´ementations MATLAB des m´ethodes de Jacobi et Gauss-Seidel avec relaxation.
Le Programme 15 propose la m´ethode JOR (l’algorithme de Jacobi est obtenu comme cas particulier en prenantomega=1). Le test d’arrˆet contrˆole la norme euclidienne du r´esidu divis´ee par sa valeur initiale.
Remarquer que chaque composante x(i) de la solution peut ˆetre calcul´ee ind´ependamment. Cette m´ethode est donc facilement parall´elisable.
0 0.5 1 1.5 2 0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
ω
ρ
SSOR
SOR
Fig. 4.1. Rayon spectral de la matrice d’it´eration des m´ethodes SOR et SSOR en fonction du param`etre de relaxationω, pour la matrice tridiag10(−1,2,−1)
Programme 15 - jor: M´ethode JOR function [x,iter]=jor(A,b,x0,nmax,tol,omega)
%JOR M´ethode JOR
% [X,ITER]=JOR(A,B,X0,NMAX,TOL,OMEGA) tente de r´esoudre le syst`eme
% A*X=B avec la m´ethode JOR. TOL est la tol´erance de la m´ethode.
% NMAX est le nombre maximum d’it´erations. X0 est la donn´ee initiale.
% OMEGA est le param`etre de relaxation.
% ITER est l’it´eration `a laquelle la solution X a ´et´e calcul´ee.
[n,m]=size(A);
if n ˜= m, error(’Seulement les syst`emes carr´es’); end iter=0;
r = b-A*x0; r0=norm(r); err=norm(r); x=x0;
while err>tol & iter<nmax iter = iter + 1;
for i=1:n s = 0;
for j = 1:i-1, s=s+A(i,j)*x(j); end for j = i+1:n, s=s+A(i,j)*x(j); end
xnew(i,1)=omega*(b(i)-s)/A(i,i)+(1-omega)*x(i);
end
x=xnew; r=b-A*x; err=norm(r)/r0;
end return
Le Programme 16 propose la m´ethode SOR. En prenantomega=1, on ob-tient l’algorithme de Gauss-Seidel.
Contrairement `a la m´ethode de Jacobi, ce sch´ema est compl`etement s´equentiel (les composantes de la solution ne sont plus calcul´ees ind´ependamment les unes des autres). En revanche, on peut l’impl´ementer efficacement sans stocker la solution de l’it´eration pr´ec´edente, ce qui permet d’´economiser de la m´emoire.
Programme 16 - sor: M´ethode SOR function [x,iter]=sor(A,b,x0,nmax,tol,omega)
%SOR M´ethode SOR
% [X,ITER]=SOR(A,B,X0,NMAX,TOL,OMEGA) tente de r´esoudre le syst`eme
% A*X=B avec la m´ethode SOR. TOL est la tol´erance de la m´ethode.
% NMAX est le nombre maximum d’it´erations. X0 est la donn´ee initiale.
% OMEGA est le param`etre de relaxation.
% ITER est l’it´eration `a laquelle la solution X a ´et´e calcul´ee.
[n,m]=size(A);
if n ˜= m, error(’Seulement les syst`emes carr´es’); end iter=0; r=b-A*x0; r0=norm(r); err=norm(r); xold=x0;
while err>tol & iter<nmax iter = iter + 1;
for i=1:n s=0;
for j = 1:i-1, s=s+A(i,j)*x(j); end for j = i+1:n, s=s+A(i,j)*xold(j); end
x(i,1)=omega*(b(i)-s)/A(i,i)+(1-omega)*xold(i);
end
xold=x; r=b-A*x; err=norm(r)/r0;
end return