Академический Документы
Профессиональный Документы
Культура Документы
Chapitre 2 :
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.
a11x1+a12x2+….+a1nxn=b1
a21x1+a22x2+….+a2nxn=b2
. (1)
.
an1x1+an2x2+….+annxn=bn
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
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 :
1/ 2
r n
où r k = ∑ ri k ( ) 2
est la norme euclidienne de rk.
i =1
Remarque 1:
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
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
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 derkdonne 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
A=E-F
Ex=Fx+b
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
c=Fxk+b
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.
A=D-L-U
Schématiquement on a :
.
. −U
A= D
−L .
.
Théorème1 :
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
E= D et F= L+U
E x k+1=D x k+1= c
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
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 :
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
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
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
E x k+1=(D-L) x k+1= c
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
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
9 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives
1 1- ω
A= D-L-( D + U)
ω ω
-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
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 :
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
Exemple 2:
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
12 H. TOUIR 2007-2008
Chapitre 2 : Résolution des systèmes linéaires par les méthodes itératives
ANNEXES
% 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)
% 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