• Aucun résultat trouvé

M´ ethodes it´ eratives lin´ eaires

Dans le document Méthodes Numériques (Page 129-138)

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< ω <2diii(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=rkek, on a

k|22rk2+ 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)=bip

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

Dans le document Méthodes Numériques (Page 129-138)