Vous êtes sur la page 1sur 16

Méthodes itératives pour la résolution de

systèmes linéaires

2020 - 2021
Introduction 2/16
On cherche à résoudre une équation de la forme : Ax = b.
Pour les systèmes linéaires de grande taille, les méthodes
directes peuvent s’avérer trop coûteuses en temps de calcul ou
en place mémoire.
L’idée est de ne pas chercher à résoudre exactement le
système linéaire mais d’approcher sa solution par une suite de
vecteurs, construite à l’aide d’une formule de récurrence
simple.
Définition : Une méthode est itérative si elle génère une séquence
de solutions approchées du problème considéré (en l’occurrence un
système régulier d’équations linéaires).
itération 1 itération 2 itération k itération k + 1
x (0) −−−−−−→ x (1) −−−−−−→ . . . −−−−−−→ x (k) −−−−−−−−→

Le point de départ x (0) est une approximation de x obtenue


par exemple par une méthode directe.
Pour construire cette suite, on utilise la linéarité pour
décomposer la matrice A en une partie facilement inversible et
un reste.
Principe général 3/16

Considérons le système linéaire Ax = b


où A est une matrice carrée d’ordre n, inversible.

Supposons que l’on puisse écrire A = M − N où M est une


matrice inversible, facile à inverser.

L’équation Ax = b s’écrit encore Mx = Nx + b.

Étant donnée une solution initiale x (0) ∈ Rn , on calcule


successivement x (1) , x (2) , . . . en résolvant successivement :

Mx (1) = Nx (0) + b,
Mx (2) = Nx (1) + b,
......
Mx (k+1) = Nx (k) + b, k = 0, 1, . . . .
Principe général 4/16
On calcule la suite de vecteurs (x (k) )k∈N ⊂ Rn à partir d’un
vecteur x (0) choisi arbitrairement et de la relation :
Mx (k+1) = Nx (k) + b ⇐⇒ x (k+1) = M −1 Nx (k) + M −1 b.
C’est à dire
(
x (0) donné,
x (k+1) = M −1 Nx (k) + M −1 b.
Posons C = M −1 N et d = M −1 b. Nous devons donc étudier
la suite récurrente :
(
x (0) donné,
x (k+1) = Cx (k) + d.
Avec x est point fixe de la fonction linéaire
x 7→ Cx + d.

Cette fonction est C ∞ .


Il faut démontrer que c’est une fonction contractante.
Critère de convergence 5/16

Sous quelles conditions la suite va-t-elle converger ?

Cela dépend-il de C ou d ?

On définit la norme :
n
X 1
kxk := xi2 2
.
i=1

On dit que la méthode itérative :

Mx (k+1) = Nx (k) + b, k = 0, 1, . . .

converge s’il existe un vecteur x tel que :

lim kx (k) − xk = 0
k−→∞

pour tout vecteur initial x (0) ∈ Rn .


Critère de convergence 6/16
Définition : Soit A ∈ Mn (C), on appelle rayon spectral de la
matrice A le nombre réel :
ρ(A) = max |λi |
1≤i≤n

où λi sont les valeurs propres de A.


Propriétés :
Pour toute norme matricielle k.k et pour toute matrice A :
ρ(A) ≤ kAk.
∀A ∈ Mn (C), ∀ε ∈ R+ , ∃ une norme matricielle induite k.k∗
telle que
ρ(A) ≤ kAk∗ ≤ ρ(A) + ε.
Théorème : Les propositions suivantes sont équivalentes :
,→ La méthode itérative x (k+1) = Cx (k) + d, k = 0, 1, . . .
converge.
,→ ρ(C ) < 1.
,→ Il existe une norme matricielle induite telle que kC k < 1.
Comment choisir M et N ? 7/16

On écrit A sous la forme A = D + L + U, où


( ( (
aij si i = j aij si i > j aij si i < j
dij = 0 sinon , lij = 0 sinon , uij = 0 sinon

Exemple :
       
a11 a12 a13 a11 0 0 0 0 0 0 a12 a13
a21 a22 a23  =  0 a22 0 +a21 0 0+0 0 a23  .
a31 a32 a33 0 0 a33 a31 a32 0 0 0 0
Méthode de Jacobi 8/16

Dx (k+1) + Lx (k) + Ux (k) = b,


ou encore
(k+1) 1 X (k)
xi = (bi − aij xj ) 1 ≤ i ≤ n si aii 6= 0.
aii
j6=i

Ainsi
Mx (k+1) = Nx (k) + b.

Dx (k+1) = −(L + U)x (k) + b.


i.e.
M = D, N = −(L + U).
Méthode de Jacobi : exemple 9/16
  
 2x1 −x2 = 1 0
−x1 +2x2 −x3 = 1 avec x (0) =  0 .
−x2 +x3 = 1 0

Une itération de la méthode de Jacobi :



(k+1) (k)
 x1

 = 12 (1 + x2 )
(k+1) (k) (k)
x2 = 12 (1 + x1 + x3 )

 (k+1) (k)
x3 = 1 + x2

et donc
       
0 0.5 0.75 2.95 . . .
 0  =⇒  0.5  =⇒  1.25  =⇒ . . . =⇒  4.93 . . .  .
0 1 1.5 5.91 . . .
| {z } | {z } | {z } | {z }
x (0) x (1) x (2) x (30)

3
La vraie solution est x =  5  .
6
Méthode de Gauss-Seidel 10/16

Dx (k+1) + Lx (k+1) + Ux (k) = b,


ou encore
(k+1) 1 X (k+1)
X (k)
xi = (bi − aij xj − aij xj ) 1 ≤ i ≤ n si aii 6= 0.
aii
j<i j>i

Ainsi
Mx (k+1) = Nx (k) + b.

(D + L)x (k+1) = −Ux (k) + b.


i.e.
M = D + L, N = −U.
Méthode de Gauss-Seidel : exemple 11/16
  
 2x1 −x2 = 1 0
−x1 +2x2 −x3 = 1 avec x (0) =  0 .
−x2 +x3 = 1 0

Une itération de la méthode de Gauss-Seidel :



(k+1) (k)
 x1

 = 12 (1 + x2 )
(k+1) (k+1) (k)
x2 = 21 (1 + x1 + x3 )

 (k+1) (k+1)
x3 = 1 + x2

et donc
       
0 0.5 0.875 2.94
 0  =⇒  0.75  =⇒  1.81 . . .  =⇒ . . . =⇒  4.92  .
0 1.75 2.81 . . . 5.92
| {z } | {z } | {z } | {z }
x (0) x (1) x (2) x (15)

3
La vraie solution est x =  5  .
6
Méthode de relaxation 12/16

On peut encore modifier la méthode de Gauss-Siedel pour essayer


d’améliorer la vitesse de convergence. Pour cela, on introduit un
paramètre ω (paramètre de relaxation) et on décompose
A = M − N avec M = ω1 D − L , N = U − (1 − ω1 )D.

1 1−ω
( D + L)x (k+1) = ( D − U)x (k) + b, k = 0, 1, . . .
ω ω
pour ω > 0.

On retrouve ainsi la méthode de Gauss-Seidel pour ω = 1.

Si ω < 1, on parle de sous-relaxation, elle permet de faire


converger des processus qui ne convergeaient pas.

Si ω > 1, on parle de sur-relaxation, elle permet d’améliorer la


vitesse de convergence de processus qui convergent.
Méthode de Jacobi : convergence 13/16
D’après ce qui précède une condition nécessaire et suffisante
(CNS) est que :
D soit inversible (les éléments diagonaux de A doivent être non
nuls).
et
ρ(J) < 1 avec J = M −1 N = −D −1 (L + U).
Cette CNS est difficile à vérifier, mais il y a deux conditions
suffisantes.
Théorème : Si A est une matrice à diagonale strictement
dominante, alors la méthode de Jacobi est convergente quel que
soit le vecteur initial x (0) .
Théorème : Si A et 2D − A sont symétriques définies positives,
alors la méthode de Jacobi converge.
Rmq : Une matrice A est dite à diagonale strictement dominante
X n
si : ∀i, 1 ≤ i ≤ n, |aii | > |aij |.
j=1, j6=i
Méthode de Gauss-Seidel : convergence 14/16

D’après ce qui précède une condition nécessaire et suffisante


(CNS) est que :
D + L est inversible (les éléments diagonaux de A doivent être
non nuls).
et
ρ(GS) < 1 avec GS = M −1 N = −(D + L)−1 U.

Il y a aussi deux conditions suffisantes.


Théorème : Si A est une matrice à diagonale strictement
dominante, alors la méthode de Gauss-Seidel est convergente quel
que soit le vecteur initial x (0) .
Théorème : Si A est une matrice symétrique définie positive alors
la méthode de Gauss-Seidel est convergente quel que soit le
vecteur initial x (0) .
Méthode de relaxation : convergence 15/16

Théorème : Si la matrice de relaxation est une matrice carrée


réelle d’ordre n et un paramètre ω réel, alors 0 < ω < 2.
C-à-d, la méthode de relaxation ne peut converger que si
0 < ω < 2.
Théorème : Si A est à diagonale strictement dominante, alors la
méthode de relaxation avec 0 < ω < 1 converge.
Théorème : Si A est symétrique définie positive, la méthode de
relaxation avec 0 < ω < 2 converge.
Quelques remarques 16/16
L’utilisation des méthodes itératives est généralement plus
avantageuse lorsque celles-ci convergent.

La méthode de Gauss-Seidel converge généralement plus vite


et plus souvent que la méthode de Jacobi.

La méthode de relaxation nécessite la connaissance d’une


valeur optimale du paramètre de relaxation ω.

La convergence des méthodes itératives se teste généralement


en utilisant un paramètre de tolérance ε. On arrête ainsi les
calculs dès que l’erreur relative est assez petite :

kx (k+1) − x (k) k
< ε.
kx (k) k

Une autre alternative est de tester le résidu :

kAx (k+1) − bk < ε.

Vous aimerez peut-être aussi