Вы находитесь на странице: 1из 15

Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

Chapitre 2 :

Résolution des systèmes linéaires par les méthodes itératives

1. Introduction

Les méthodes directes que nous avons vues dans le chapitre 1 sont très efficaces pour
la résolution des systèmes linéaires. Elles donnent la solution exacte (aux erreurs d'arrondi
près) du système linéaire considéré. Cependant, elles ont l'inconvénient de nécessiter
un grand nombre d’opérations (de l’ordre de n3, ce qui peut être énorme lorsque n est
grand). Dans ce chapitre on analysera d’autres méthodes dites itératives pour résoudre
les systèmes linéaires. Ces méthodes nécessitent un nombre d’opérations de l’ordre de
n. Dans ce chapitre on analysera particulièrement trois méthodes : Jacobi, Gauss-Seidel
et relaxation.

Comme dans le chapitre 1 on considère le système d’équations linéaires:

a11x1+a12x2+….+a1nxn=b1
a21x1+a22x2+….+a2nxn=b2
. (1)
.
an1x1+an2x2+….+annxn=bn

avec aij ∈ R ou C (1≤i≤n ; 1≤j≤n ) ; avec bj ∈ R ou C (1≤j≤n )

En représentation matricielle le système ci-dessus prend la forme suivante :

 a 11 a 12 . . a 1n   x 1   b 1 
a    
a 22 . . a 2n   x 2   b 2 
 21 
 . . . . .  . .  =  . 
     
 . . . . .   .   . 
 a n1 a n2 . . a nn   x n   b n 

Ou d’une manière compacte

A x= b (2)

Où A (aij) est la matrice nxn , x (xi ; 1≤i≤n ) est le vecteur colonne à n éléments et b
(bi ; 1≤i≤n ) est le vecteur colonne à n éléments

1 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

Les méthodes itératives consistent à construire une suite récurrente de vecteurs, xk, telle
que :

lim k+∞ rk =0

avec rk =Axk-b (rk est appelé résidu du système Ax=b)

1/ 2
r  n
où r k =  ∑ ri k ( ) 2 
 est la norme euclidienne de rk.
 i =1 

Dans la pratique, on calcul plutôt la norme euclidienne normalisée de rk


1/ 2
1 n
( )
(=  ∑ ri k
n  i =1
2 
 ) et on arrête les itérations jusqu’à l’obtention d’une valeur, de cette

norme normalisée, inférieur ou égal à une constante très petite ε définie en avance
(i.e., 10-16<=ε< =10-3).

Remarque 1:

Lorsque la précision est de l’ordre du celle du calculateur, la solution est considérée


exacte aux erreurs d'arrondi près, de la même manière que la solution par les méthodes
directes.

Remarque 2:

Le choix de la valeur du test d’arrêt des itérations est souvent dicté par la précision du
calcul ou de la mesure de la grandeur physique du vecteur x. Pour l’exemple de la
mesure de la température, qui ne peut être effectuée dans les meilleurs des cas qu’à
un centième prés, on peut choisir une valeur du test d’arrêt égale à 10-3.

Exemple 1

La figure qui suit montre le comportement typique de ║rk║ en fonction des itérations (k).
Elle montre deux situations : un algorithme rapide avec un nombre d’itérations kmax1
(généralement au plus de l’ordre de n) et algorithme lent avec un nombre d’itérations
kmax2 (généralement supérieur à n)

2 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

rk 

k
kmax1 kmax2

Figure montrant le comportement typique de ║rk║ en fonction des itérations.

Exemple 2 :

La figure qui suit montre le comportement typique de ║rk║ en fonction des itérations
pour un algorithme qui risque de ne pas converge vers 0 (algorithme instable). Elle
présente en effet un minimum local en l. Dans une telle situation le choix d’un vecteur
initial approprié, loin du minimum local, peut conduire à la convergence de
l’algorithme.

rk 

rl 

k
l

Figure montrant le comportement typique de ║rk║ en fonction des itérations pour un


algorithme qui risque de ne pas converge vers 0 (algorithme instable).

3 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

Remarque 2 :

Le calcul de rk est couteau car il fait appel au calcul matriciel de rk (=Axk-b) puis au
calcul de la norme rk.

En pratique, le test de l’arrêt des itérations porte plutôt sur xk-1-xk. Cependant ce test
risque de s’arrêter dans un éventuel minimum local. En effet, au voisinage du minimum
local la quantité xk-1-xk est très petite tandis que la quantité rk est considérable.

Un algorithme optimal et stable utilise le test de l’arrêt des itérations sur xk-1-xk et le
contrôle de la stabilité par rk. A la fin des itérations si le calcul derkdonne une
valeur très faible l’algorithme est stable, si non on change le vecteur initial puis on
répète la boucle des itérations. Ceci est répété jusqu’à l’obtention d’une valeur très
faible de rk.

Définition

Si A est une matrice de valeurs propres complexes λ1, λ2,…, λn, nous appelons rayon
spectral de A la quantité :

ρ ( A ) = max 1≤ i ≤ n λ i

II. Méthodes de Jacobi et de Gauss-Seidel

Les méthodes de Jacobi et de Gauss-Seidel utilisent la technique de décomposition


suivante :

A=E-F

Le système (2) s’écrit :

Ex=Fx+b

Si E est une matrice régulière la solution de (2) s’écrit :

x=E-1Fx+ E-1b (3)

L’égalité (3) suggère la méthode itérative suivante :

v v v
x k +1 = E −1Fx k + E −1b , k= 0, 1, 2,… (4)

4 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

En choisissant x0 quelconque, on construit x1 à l’aide de la relation (4). En suite on


calcule x2 à partir de x1 à l’aide de la relation (4) et ainsi de suite.

Dans la pratique on calcule le vecteur :

c=Fxk+b

Puis on résout le système

Ex k+1= c

Les méthodes de Jacobi et de Gauss-Seidel utilisent une matrice E telle que la résolution
du système Ex k+1= c soit facile.

Les méthodes de Jacobi et de Gauss-Seidel utilisent la technique de décomposition


suivante :

A=D-L-U

Où D est la matrice diagonale formée par: aii, pour i=1,2,….,n


-L est la matrice triangulaire inférieure formée par: -aij; 1≤j<i≤n
-U est la matrice triangulaire supérieure formée par: -aij; ≤i<j≤n

Schématiquement on a :

. 
 . −U 
 
A=  D 
 
 −L . 
 . 

Théorème1 :

Les méthodes de Jacobi et de Gauss-Seidel sont convergentes ssi le rayon spectral


ρ(E-1F) de la matrice E-1F est strictement inférieur à 1.

Théorème 2:

Plus ρ(E-1F) est proche de 0 (resp. 1) plus la convergence est rapide (resp. lente).

5 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

II.1. Méthode de Jacobi

La méthode de Jacobi consiste à poser:

E= D et F= L+U

Ce qui conduit à la résolution du système

E x k+1=D x k+1= c

avec c=F xk+b =(L+U) xk+b

Soit,
ci ci
x ik +1 = = pour 1≤=i≤n
a ii e ii

n n
avec ci = − ∑
a ijx kj + bi = ∑ fijx kj + bi
j=1, j≠ i j=1

La matrice J=E-1F= D-1(L+U) est appelée matrice de Jacobi.

Remarque:

La méthode de Jacobi est une méthode explicite. Elle permet de calculer xk+1 à partir
de xk déjà calculé.

Exemple 1 :

On considère le système Au(tj+1)=u(tj), A étant une matrice nxn définie par :

1 + 2λ − λ 
 −λ . . 
 
A= . . . 
 
 . . −λ 
 − λ 1 + 2λ 

6 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

Où λ=(D∆t)/∆x2

Avec D étant le coefficient de diffusion de la chaleur ; ∆t et ∆x sont respectivement les


pas du temps et de l’espace (l’axe x).

u(tj+1) est le vecteur à n éléments inconnue du problème: u(x1, tj+1), u(x2, tj+1),…., u(xn, tj+1)
u(tj) est le vecteur à n éléments connue du problème: u(x1, tj), u(x2, tj),…., u(xn, tj).

Comme on le verra plus loin dans le cours (chapitre 6), la solution de ce système
représente la une la diffusion de la température dans un barreau métallique en
contacte avec deux réservoirs de chaleur.

Pour n=22, D=10-4, (en cm s-1), u(x,0)=1, ∆t=10 (en s), le profil u(x,10) est obtenu par la
méthode Jacobi en 6 itérations pour le test d’arrêt ε égale à 10-3 et pour un vecteur
initial égale à u(x,0). Quant à la valeur du rayon spectral, elle est égale à 0,4136.

0.95

0.9
u(x,t)

0.85

0.8

0.75
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x

Figure représentant le profil u(x,10) obtenu par la méthode de Jacobi

II.2. Méthode de Gauss-Seidel

La méthode de Gauss-Seidel consiste à poser:

E=D-L et F=U

7 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

Ce qui conduit à la résolution du système triangulaire inférieure :

E x k+1=(D-L) x k+1= c

avec c= Fxk+b =Uxk+b

qui est un système triangulaire inférieur pour l’inconnu xk+1. Appliquons donc la méthode
de substitution progressive (chapitre 1).

c1 c
x 1k +1 = = 1
a 11 e11
n n
avec c1 = ∑ − a1jx kj + b1 = ∑ f1jx kj + b1
j= 2 j=1

et pour i = 2,…,n

1 i −1 1 i −1
x ik +1 = (ci − ∑ a ijx kj +1 ) = (ci + ∑ eijx kj +1 )
a ii j=1 eii j=1

n n
avec ci = ∑ − a ij x kj + b i = ∑ f ij x kj + b i
j = i +1 j =1

Soit

1 n
x k+1
1 = (−∑a1jxkj + b1 )
a11 j=2
n
1
x k +1
2 = ( − a 21 x 1 − ∑ a 2j x kj + b 2 )
k +1

a 22 j= 3

n
1
x k+1
3 = (−a 31x1 − a 32x 2 − ∑a 3jx kj + b3 )
k+1 k+1

a 33 j=4
.
.
etc

8 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

La matrice G=E-1F= (D-L)-1U est appelée matrice de Gauss-Seidel.

Remarque :

La méthode de Gauss-Seidel tient en compte au fur et mesure des valeurs xik+1 déjà
calculées. Elle est a priori plus convergente.

Exemple 2

Pour les données de l’exemple 3, le profil u(x,10) est obtenu par la méthode Gauss-
Seidel en 4 itérations pour le test d’arrêt ε égale à 10-3 et pour un vecteur initial égale à
u(x,0). Quant à la valeur du rayon spectral, elle est égale à 0,1710.

0.95

0.9
u(x,t)

0.85

0.8

0.75
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x

Figure représentant le profil u(x,10) obtenu par la méthode de Gauss-Seidel

Remarquons que le rayon spectral de la matrice de Gauss-Seidel (0,1710) est inférieur


que celui de la matrice de Jacobi (0,4136). Ceci explique la rapidité de l’algorithme
Gauss-Seidel par rapport à celle de Jacobi: 4 itérations pour l’algorithme de Gauss-
Seidel et 6 itérations pour l’algorithme de Jacobi.

9 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

III. Méthode de la relaxation

Dans le cas où la convergence de la méthode de Gauss-Seidel est lente, on peut


accélérer sa convergence en utilisant la décomposition suivante :

1 1- ω
A= D-L-( D + U)
ω ω

Où ω un réel non nul appeler paramètre de relaxation.

Notons que la relaxation de la méthode de Jacobi ne présente aucun avantage.

-1 -1
En posant E=ω D-L et F=ω (1-ω) D+U, la méthode de Gauss-Seidel devient :

Ε x k+1=(ω-1D-L ) x k+1= c

avec c=F xk+b =(ω-1(1-ω) D+U ) xk+b

La valeur optimale du paramètre de relaxation est obtenue en faisant une analyse


spectrale de la matrice :

1 1− ω 
G ω = (E -1 F) = ( D − L) −1  D + U
ω  ω 

Plus Gω est proche de 0 (resp. 1) plus la convergence est rapide (resp. lente).

On peut montrer que les valeurs optimales de ω sont comprises entre 0 et 2 (i.e., 0<ω<2)

Exemple 1 :

Pour les données de l’exemple précédant, le rayon spectral de la méthode de la


relaxation en fonction ω est montré dans la figure qui suit. Le minimum est obtenu pour
1.0500, ce qui donne à priori l’algorithme la plus rapide. En revanche le maximum est
aux voisinages de 0 et 2, ce qui donne à priori un algorithme lent.

10 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

0.9

0.8

0.7

0.6

0.5
ro

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
w

Figure représentant le rayon spectral de la méthode de la relaxation en fonction ω

Exemple 2:

Pour les données de l’exemple précédant, la durée de l’algorithme de la méthode de


la relaxation en fonction ω est montrée dans la figure qui suit. L’algorithme est lent aux
voisinages de 0 et 2 où le rayon spectral est voisin de 1, ce qui corrobore les résultats de
l’exemple 1.

11 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

0.5

0.45

0.4

0.35

0.3
t (s)

0.25

0.2

0.15

0.1

0.05

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
w

Figure représentant le temps de l’algorithme de la méthode de la relaxation en


fonction de ω pour un calculateur muni d’un microprocessus Pentuim IV (2.8 GHz)

12 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

ANNEXES

Le programme MatLab utilisé pour la méthode de Jacobi.

% résolution du Auu=u
L=zeros(n,n);
D=zeros(n,n);
U=zeros(n,n);
for i=1:n
for j=1:n
if i==j,
D(i,j)=A(i,j);
elseif j<i,
L(i,j)=-A(i,j);
else
U(i,j)=-A(i,j);
end;
end;
end;
F=L+U;
E=D;
% u est le vecteur initial
% sauvegarde de la valeur de u
b=u;
for Iter=1:10000
% calcul de c(=F*u+b)
for i=1:n
s=0;
for j=1:n
s=s+(F(i,j)*u(j));
end;
c(i)=s+b(i);
end;
% résolution du sytème D*uu=c
for i=1:n, uu(i)=c(i)/D(i,i); end
% calcul du résidu
for i=1:n
s=0;
for j=1:n, s=s+(A(i,j)*uu(j)); end;
r(i)=s-b(i);
end;
s=0;
for i=1:n, s=s+(r(i)*r(i)); end;
s=s^(1/2)
% test d’arrêt
if s < 1E-3,
break;

13 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

else
for i=1:n, u(i)=uu(i); end;
end;
end;
%calcul du rayon spectral
J=inv(D)*F;
vp=eig(J);
for i=1:n, vp(i)=abs(vp(i)); end
ro=max(vp)

Le programme MatLab utilisé pour la méthode de Gauss-Seidel.

% résolution du Auu=u
L=zeros(n,n);
D=zeros(n,n);
U=zeros(n,n);
for i=1:n
for j=1:n
if i==j,
D(i,j)=A(i,j);
elseif j<i,
L(i,j)=-A(i,j);
else
U(i,j)=-A(i,j);
end;
end;
end;
F=U;
E=D-L;
% u est le vecteur initial
b=u;
for Iter=1:10000
% calcul de c(=F*u+b)
for i=1:n
s=0;
for j=i+1:n, s=s+(F(i,j)*u(j)); end;
c(i)=s+b(i);
end;
% résolution du sytème E*uu=c
uu(1)=c(1)/E(1,1);
for i=2:n
s=0;
for j=1:i-1, s=s+(E(i,j)*uu(j)); end
uu(i)=(c(i)-s) /E(i,i);
end;
% calcul du résidu

14 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives

for i=1:n
s=0;
for j=1:n, s=s+(A(i,j)*uu(j)); end;
r(i)=s-b(i);
end;
s=0;
for i=1:n, s=s+(r(i)*r(i)); end;
s=s^(1/2)
% test d’arrêt
if s < 1E-3,
break;
else
for i=1:n, u(i)=uu(i); end;
end;
end;
%calcul du rayon spectral
GS=inv(E)*F;
vp=eig(GS);
for i=1:n, vp(i)=abs(vp(i)); end
ro=max(vp)

15 H. TOUIR 2007-2008

Вам также может понравиться