Vous êtes sur la page 1sur 26

Chapitre 5

Résolution numérique de systèmes


linéaires

5.1 Introduction
Un système d’équations linéaires est un ensemble d’équations portant sur les mêmes
inconnues.
En général, un système de m équations linéaires à n inconnues peut être écrit sous la forme
suivante : 

 a1,1 x1 + a1,2 x2 + · · · + a1,n xn = b1



 a2,1 x1 + a2,2 x2 + · · · + a2,n xn = b2
.. .. .. (5.1)

 . . .




am,1 x1 + am,2 x2 + · · · + am,n xn = bm

Les données sont les coefficients ai, j (1 ≤ i ≤ m et 1 ≤ j ≤ n) du système qui appartiennent


à un corps K avec K = R ou C ainsi que les coefficients du second membre b1 , · · · , bm .
Les inconnues sont x1 , x2 , · · · , xn qui appartiennent à K.
On peut utiliser la notation matricielle, qui est beaucoup plus pratique et surtout plus
compacte. On écrit alors le système (5.1) sous la forme matricielle

Ax = b (5.2)

où A est une matrice de taille m × n, x est un vecteur de taille n et b est un vecteur de taille
m.      
a1,1 a1,2 · · · a1,n x1 b1
 a2,1 a2,2 · · · a2,n   x2   b2 
     
A =  .. .. . . ..  x =  ..  b =  .. 
 . . . .   .   . 
am,1 am,2 · · · am,n xn bm

35
Chapitre 5. Résolution numérique de systèmes linéaires

Remarque 5.1.

– Un système est dit homogène si son second membre est nul c’est-à-dire si tous les
bi sont nuls
– Si m > n on dit que le système est surdéterminer.
– Si m = n alors la matrice est carrée d’ordre n et le système et dit carrée.

Dans tout ce qui suit, on considérera une matrice carrée A ∈ Mn (R) et un vecteur b
contenant n réels.
Seulement trois cas sont possibles pour le système linéaire (5.2) :
– Le système n’a pas de solution.
– Le système a une solution unique.
– Le système a une infinité de solutions.

Exemple 5.2. Considèrons les systèmes suivants

( ( (
2x1 + 6x2 = 4 x1 + 3x2 = 7 4x1 − 3x2 = 14
(S1 ) (S2 ) et (S3 )
−4x1 − 12x2 = −8 2x1 − x2 = 0 16x1 − 12x2 = 2

Le système (S1 ) admet une infinité de solution,S2 admet une solution unique et S3
n’admet pas de solution.

Si la matrice A est inversible alors le système linéaire (5.2) admet une unique solution
x = A−1 b où A−1 est la matrice inverse de A. Ainsi théoriquement le problème revient à
calculer A−1 . Mais en pratique ce calcul est difficile. Il existe plusieurs méthodes clas-
siques pour résoudre le système linéaire (5.2) sans calculer A−1 . Le choix de la méthode
dépend fortement du type (forme) de la matrice A.
Les méthodes de résolution des systèmes linéaires se groupent dans deux grandes
catégories :
– Les méthodes directes : une méthode est dite directe si elle permet d’obtenir
la solution exacte de système (5.2) en un nombre fini d’opérations élémentaires
(×, +, −, ÷).
– Les méthodes itératives : une méthode est dite itérative si elle permet de construire
une suite (xn )n qui converge vers la solution x de (5.2).

5.2 Méthodes directes


5.2.1 Méthode de résolution pour les systèmes triangulaires inférieurs
Définition 5.3. Une matrice carrée (ai, j )1≤i, j≤n est dite triangulaire inférieure (ou trigo-
nale inférieure) si tous les éléments situés au-dessus de la diagonale principale sont nuls,
36
Chapitre 5. Résolution numérique de systèmes linéaires

c’est à dire si
∀ (i, j) ∈ {1, · · · , n}2 , i < j =⇒ ai, j = 0

Une matrice triangulaire inférieure a la forme suivante :


 
a1,1 0 · · · · · · 0
 a2,1 a2,2 0 · · · 0 
 . .. 
 ... ... 
A =  .. . 
 . . 
 .. .. 0 
an,1 an,2 · · · · · · an,n
n
Remarque 5.4. Si une matrice A est triangulaire inférieure alors det(A) = ∏ ai,i .
i=1
On en déduit que A est inversible si et seulement si ai,i 6= 0 pour tout i = 1, . . . , n.

Algorithme de résolution pour les systèmes triangulaires inférieures

Considérons un système inversible 3 × 3 triangulaire inférieur


    
l1,1 0 0 x1 b1
l2,1 l2,2 0  x2  = b2 
l3,1 l3,2 l3,3 x3 b3

La matrice étant inversible, ses termes diagonaux li,i , i = 1, 2, 3 sont non nuls. On peut
donc déterminer successivement les valeurs inconnues xi pour i = 1, 2, 3.

 x = b1 /l1,1
 1 
x2 = b2 − l2,1 x1 /l2,2

 
x3 = b3 − l3,1 x1 − l3,2 x2 /l3,3

Cet algorithme peut être étendu aux systèmes n × n. Dans le cas d’un système Lx = b, où
L est une matrice triangulaire inférieure d’ordre n (n ≥ 2), la méthode s’écrit


 x1 = b1 /l1,1

i−1 

 x = b − ∑ li, j x j /li,i, i = 2, . . . , n
 i i
j=1

37
Chapitre 5. Résolution numérique de systèmes linéaires

x1 = b1 /l1,1 ;
Pour i de 2 à n faire

" i−1 
xi = bi − ∑ li, j x j /li,i
j=1
Fin Pour

Algorithme 1: Algorithme de descente d’un système triangulaire


inférieur
Exemple 5.5. Considérons le système triangulaire inférieure suivant
    
3 0 0 x1 9
    
1 2 0 x2  =  7 
3 2 1 x3 14
En utilisant l’algorithme de descente, on obtient


 x1 = b1 /l1,1 = 9/3 = 3

 " 
x2 = b2 − l2,1 x1 /l2,2 = (7 − 1 × 3)/2 = 2


 x = "b − l x − l x /l = (14 − 3 × 3 − 2 × 2)/1 = 1

3 3 3,1 1 3,2 2 3,3

5.2.2 Méthode de résolution pour les systèmes triangulaires supé-


rieures
Définition 5.6. Une matrice carrée (ai, j )1≤i, j≤n est dite triangulaire supérieure (ou tri-
gonale supérieure) si tous les éléments situés au-dessous de la diagonale principale sont
nuls, c’est à dire si

∀ (i, j) ∈ {1, · · · , n}2 , i > j =⇒ ai, j = 0

Une matrice triangulaire supérieure a la forme type


 
a1,1 a1,2 · · · · · · a1,n
 0 a2,2 · · · · · · a2,n 
 . .. 
 .. .. 
A =  .. . . . 
 . . . . 
 .. .. .. .. 
0 · · · · · · 0 an,n
Remarque 5.7. Une matrice triangulaire supérieure est simplement la transposée d’une
n
matrice triangulaire inférieure. Alors det(A) = det(t A) = ∏ ai,i .
i=1
On en déduit que A est inversible si et seulement si ai,i 6= 0 pour tout i = 1, . . . , n.
38
Chapitre 5. Résolution numérique de systèmes linéaires

Algorithme de résolution pour les systèmes triangulaires supérieures

Considérons un système inversible 3 × 3 triangulaire inférieur


    
u1,1 u1,2 u1,3 x1 b1
 0 u2,2 u2,3  x2  = b2 
0 0 u3,3 x3 b3

La matrice étant inversible, ses termes diagonaux ui,i , i = 1, 2, 3 sont non nuls. On peut
donc déterminer successivement les valeurs inconnues xi pour i = 1, 2, 3.

 x = b3 /u3,3
 3 
x2 = b2 − u2,3 x3 /u2,2

 
x1 = b1 − u1,2 x2 − u2,3 x3 /u3,3
Cet algorithme peut être étendu aux systèmes n × n. Dans le cas d’un système Ux = b, où
U est une matrice triangulaire supérieure d’ordre n (n ≥ 2), la méthode s’écrit


 x = bn /un,n
 n
n 

 x i = b i − ∑ ui, j x j /ui,i, i = n − 1, . . . , 1

j=i+1

xn = bn /ln,n ;
Pour i de n-1 à 1 faire
n 
xi = bi − ∑ ui, j x j /ui,i
j=i+1
Fin Pour

Algorithme 2: Algorithme de remontée d’un système triangulaire


supérieur
Exemple 5.8. Considérons le système triangulaire supérieur suivant
    
2 5 3 x1 49
    
0 4 2 x2  = 30
0 0 7 x3 21
En utilisant l’algorithme de remontée, on obtient


 x3 = b3 /u3,3 = 21/7 = 3

 
x2 = b2 − u2,3 x3 /u2,2 = (30 − 2 × 3)/4 = 6


 x = b − u x − u x /u = (49 − 5 × 6 − 3 × 3)/2 = 5

1 1 1,2 2 2,3 3 3,3

39
Chapitre 5. Résolution numérique de systèmes linéaires

Exercice 5.9. Donner la complexité de cet algorithme.


Le calcul de xn requiert 1 division (div) dans dans l’algorithme 5.2.2.
Pour i fixé dans {1, . . . , n − 1}, le calcul de xi par l’algorithme 5.2.2 demande 1 divi-
sion (div), i − 1 additions (add) et i − 1 multiplications (mult). Au total le coût CU de
l’algorithme 5.2.2 est
n−1  
CU = 1 div + ∑ (i − 1) add + (i − 1) mult + 1 div
i=1
n−1 n−1 n−1
= 1 div + ∑ 1 div + ∑ k add + ∑ k mult
i=1 k=1 k=1
(n−1)n (n−1)n
= 2 add + 2 mult + n div

Le nombre d’opérations élémentaires CU est de l’ordre de n2 , i.e. CU = O (n2 ).

Exercice 5.10. Soit D = (di,i )i=1,...,n une matrice diagonale d’ordre n > 0.
 
d1,1
 



..
. 0 


D= di,i 
 

 0 ..
.


dn,n
– Donner une condition nécessaire et suffisante pour que D soit inversible.
– Donner un algorithme qui permet de résoudre l’équation d’inconnue x :

D x = b.

5.2.3 Méthode d’élimination de Gauss


La méthode d’élimination de Gauss a pour but de transformer le système A x = b en
un système équivalent (c’est-à-dire ayant la même solution) de la forme U x = e
b, où U est
une matrice triangulaire supérieure et e
b est un second membre convenablement modifié.
Ce dernier système peut être alors résolu par la méthode de remontée.
Au cours de la transformation, on utilise essentiellement la propriété selon laquelle
on ne change pas la solution du système quand on ajoute à une équation donnée une
combinaison linéaire des autres équations.
Considérons une matrice inversible A ∈ Mn (R) dont le terme diagonal a1,1 est supposé
non nul, sinon on permute les lignes ou les colonnes dans A de facon à avoir a1,1 6= 0. Le
nombre a1,1 est le premier pivot de l’élimination de Gauss.
On pose A(1) = A et b(1) = b et on introduit les multiplicateurs
(1)
ai,1
mi,1 = (1)
, i = 2, 3, . . . , n.
a1,1
40
Chapitre 5. Résolution numérique de systèmes linéaires

(1)
où les ai, j désignent les éléments de A(1) . On peut éliminer l’inconnue x1 des lignes
i = 2, . . . , n en leur retranchant mi,1 fois la première ligne et en faisant de même pour le
membre de droit. On définit alors
(2) (1) (1)
ai, j = ai, j − mi,1 a1, j , i, j = 2, . . . , n,
(2) (1) (1)
bi = bi − mi,1 b1 , i = 2, . . . , n.
(1)
où les bi sont les composantes de b(1) et on obtient un nouveau système de la forme
 
(1) (1) (1)    (1) 
a1,1 a1,2 · · · a1,n x 1 b1
   
  
 0 a(2) · · · a(2)   x2   (2) 
 2,2 2,n   
  b2  
  = 
 . . .   . 
 .. .. ... ..   ..   .. 
    . 


 
(2) (2) xn (2)
0 an,2 · · · an,n bn

que l’on note A(2) x = b(2) et qui est équivalent au système de départ.
On peut à nouveau transformer ce système de façon à éliminer l’inconnue x2 des lignes
3, . . . , n. En poursuivant ainsi, on obtient une suite finie de systèmes

A(k) x = b(k) , 1 ≤ k ≤ n,

où, pour k ≥ 2, la matrice A(k) est de la forme suivante


 (1) (1) (1) (1)

a1,1 a1,2 · · · a1,k · · · a1,n
 
 
 0 a(2) (2)
2,2 · · · a2,k · · ·
(2)
a2,n 
 
 
 .. .. .. .. .. 
 . . . . . 
 
 
 (k) (k) 
 0 · · · 0 ak,k · · · ak,n 
 
 . .. .. .. 
 .. . . . 
 
 
(k) (1)
0 · · · 0 ak,k · · · an,n

Il est clair que pour k = n on obtient alors le système triangulaire supérieur A(n) x = b(n)
suivant  (1) (1) (1)     (1) 
a1,1 a1,2 · · · a1,n x1 b
    1 
 (2)    
 0 a(2)  x   b(2) 
2,2 · · · a2,n   2 
  2 
 
=
 
 .. .. .. ..   ..   .. 
 . . . .  .   . 
   
(n) x (n)
0 · · · 0 an,n n bn
(k)
Les termes ak,k de A(n) sont appelés pivots et doivent être évidemment non nuls pour
k = 1, . . . , n − 1.
41
Chapitre 5. Résolution numérique de systèmes linéaires

Afin d’expliciter les formules permettant de passer du kième système au (k + 1)ième ,


(k)
pour k = 1, . . . , n − 1, on suppose que ak,k 6= 0 et on définit les multiplicateurs

(k)
ai,k
mi,k = (k)
, i = k + 1, . . . , n
ak,k

On pose alors
(k+1) (k) (k)
ai, j = ai, j − mi,k ak, j , i, j = k + 1, . . . , n,
(k+1) (k) (k)
bi = bi − mi,k bk , i = k + 1, . . . , n.
Puisque les composantes de x n’intervient pas dans l’élimination de Gauss, on peut consi-
e ∈ Mn,n+1 (K) (appelée matrice augmentée de A) définie par :
dérer la matrice A
 
a11 · · · a1n b1
e=
A .
 .. . . . ..
. .. 
.
an1 · · · ann bn

Les composantes bi peuvent se noter aussi ai,n+1 et on effectue le processus d’élimination


e
de Gauss sur la matrice A

Exemple 5.11.
Soit à résoudre le système suivant :
    
2 −1 2 x1 15
    
4 3 −3 x2  = −25
−2 2 1 x3 −4
On a.  
2 −1 2 15
e(1) =  4
A 3 −3 −25
−2 2 1 −4
(1)
Le premier pivot de l’élimination de Gauss est donc a1,1 = 2 6= 0. On effectue alors pour
toute ligne Li pour i = 2, 3
(1)
ai,1
Li ←− Li − (1)
L1
a1,1
On obtient  
2 −1 2 15
e(2) = 0 5 −7 −55
A
0 1 3 11
(2)
Le deuxième pivot est a2,2 = 5 6= 0. On effectue la transformation :

1
L3 ←− L3 − L2
5
42
Chapitre 5. Résolution numérique de systèmes linéaires

On obtient finalement  
2 −1 2 15
e(3) = 0 5 −7 −55
A
0 0 22
5 22
D’où : 
 x1 = 1/2
x2 = −4

x3 = 5
On donne maintenant l’algorithme d’élimination de Gauss. On admettra que les termes
(k)
(pivots) ak,k doivent être évidemment non nuls pour k = 1, . . . , n.

Pour k de 1 à n-1 faire


Pour i de k+1 à n faire
mi,k = ai,k /ak,k
bi = bi − mi,k bk
ai,k = 0
Pour j de k+1 à n faire
ai, j = ai, j − mi,k ak, j
Fin Pour
Fin Pour
Fin Pour

֒→ Résolution du système triangulaire supérieur

Algorithme 3: Algorithme d’élimination de Gauss


Exemple 5.12.
Résoudre le système : 
 10−4 x + y = 1
(5.3)
 x+y = 2
Dont la solution exacte est 
 x = 1.0001
(5.4)
 y = 0.9999

On peut prendre a11 = 10−4 comme pivot, d’où :


! !
10−4 1 1 10−4 1 1
−→
1 1 2 0 −9999 −9998

La solution trouvée est y = 1, x = 0 trés éloignée de la solution exacte. Par contre si l’on
permute les deux équations, c’est à dire si le pivot est a21 = 1, on trouve la solution :
x = 1 et y = 1.

43
Chapitre 5. Résolution numérique de systèmes linéaires

Cette exemple montre que des erreurs d’arrondi (provvenant des divisions par des pivots
"trop petits") ont un effet négatif sur la solution c’est pourquoi on utilise l’une des deux
stratégies suivantes :

1. Stratégie du pivot partiel :


On choisit comme ligne de pivot parmis les n − k + 1 lignes restantes celui qui a
le plus grand élément en valeur absolue en colonne k et on le permute avec la kime
ligne.
2. Stratégie du pivot total :
On choisit comme pivot le plus grand élément en valeur absolue dans la matrice
d’ordre n − k + 1 restante et on permute la kime colonne et celle du pivot. Ce qui
modifiera l’ordre des composantes de la solution x.
Il faudra remettre dans l’ordre initial (x1 , x2 , ..., xn ) les composantes de la solution.

Exemple 5.13.
Résoudre par la méthode de Gauss avec pivot totale le système :


 x+y+z = 5


2x − y + 3z = 1 (5.5)



 4x − 2y + 8z = 1

   
1 1 1 5
   
⇒ A = 2 −1 3 et b = 1
4 −2 8 1
|a33 | = 8 = maxi, j |ai j |
D’où :  
8 −2 4 1
e=
A

3 −1 2 1 les solutions qu’on va obtenir sont : x3 , x2 et x1 .
1 1 1 5

Remarque 5.14. Le nombre total des opérations de la méthode de Gauss est :

4n3 + 9n2 − 7n
NG = si n = 5 on a NG = 115, et si n = 10 on a NG = 805
6

5.2.4 La méthode de décomposition LU


Le principe de la méthode est de se ramener à deux systèmes triangulaires.
On cherche à décomposer la matrice A en deux matrices L (triangulaire inférieure) et U
(triangulaire supérieure) telles que le produit LU soit égal à A.

44
Chapitre 5. Résolution numérique de systèmes linéaires

Si la matrice A peut s’écrire sous la forme A = LU, où L et U sont des matrices triangu-
laires inférieure et supérieure respectivement, alors le système Ax = b peut se décomposer
en deux sous-systèmes Ly = b et Ux = y.
Les matrices L et U étant triangulaires, la résolution de chacun de ces deux sous-
systèmes est immédiate :
Ly = b : on calcule y1 , y2 , . . . , yn (Algorithme de descente), Ux = y : on calcule xn , xn−1 , . . . , x1
(Algorithme de remontée).
Reste maintenant à savoir comment faire cette décomposition LU.
Supposons qu’on ne s’intéresse plus à l’effet des erreurs d’arrondi dans la méthode de
Gauss et que, par conséquent, on ne cherche pas à appliquer de stratégie particulière
de pivot. Alors on a A1 = A et A(2) = E1 A(1) et de proche en proche on obtient A(n) =
En−1 En−2 ...E1 A(1) = MA(1) . Donc A = A(1) = M −1 An .
On a A(n) est triangulaire superieur et on verifier facilement que M −1 est triangulaire
inferieur avec des 1 sur la diagonale.
Si on pose L = M −1 et U = A(n) on a alors A = LU

Exemple 5.15.
Soit la matrice :  
4 −9 2
 
A = A(1) =  2 −4 4
−1 2 2
En effectuant les opérations suivantes :

L2 = L2 − 21 L1
L3 = L3 + 14 L1

On obtient
   
4 −9 2 1 0 0
   
A(2) = 0 12 3  = E1 A(1) avec E1 = − 12 1 0
0 − 14 29 1
4 0 1

En refaisant la même procédure

L3 = L3 + 12 L2

On obtient :
   
4 −9 2 1 0 0
   
A(3) = 0 12 3 = E2 A(2) avec E2 = 0 1 0
0 0 4 0 12 1

Alors on a
A(3) = E2 E1 A
45
Chapitre 5. Résolution numérique de systèmes linéaires

donc A = E1−1 E2−1 A(3)


     
1 0 0 1 0 0 1 0 0
     
E1−1 =  12 1 0 , E2−1 = 0 1 0 et E1−1 E2−1 =  21 1 0
− 41 0 1 0 − 12 1 − 41 − 12 1
On en déduit la factorisation A = LU avec
   
1 0 0 4 −9 2
   
L =  21 1 0 et U = A(3) = 0 12 3
− 41 − 21 1 0 0 4
II reste à donner des conditions suffisantes pour qu’il n’y ait pas lieu d’effectuer
d’échanges de lignes ou de colonne dans la méthode de Gauss, c’est-à-dire pour qu’on
puisse factoriser une matrice sous la forme du produit d’une matrice triangulaire infé-
rieure L par une matrice triangulaire supérieure U. On va même établir qu’une telle fac-
torisation LU est unique si l’on impose la valeur 1 aux éléments diagonaux de la matrice
L (c’est précisément la valeur trouvée avec la construction précédente), ce qui permet de
définir sans ambiguïté une telle factorisation.

Théorème 5.16.
Soit A une matrice inversible d’ordre n dont les mineurs principaux sont non nuls. Alors
il existe une unique matrice L = (li j )i j triangulaire inférieure avec lii = 1 et une unique
matrice U triangulaire supérieure telles que A = LU.

Rappelons que le mineur principal d’ordre i de A est le déterminant des premières


lignes et premières colonnes

a1,1 a1,2 · · · a1,i


· · · a2,i
 a2,1 a2,2
det(A) i = .
.. .. . . . ..
. .

ai,1 ai,2 · · · ai,i
La démonstration du théorème se fait par récurrence sur n

Proposition 5.17.
La factorisation LU de la matrice A de taille n par la méthode de Gauss existe si l’une
des conditions suivantes est vérifiée :
– La matrice A est définie positive.
– La matrice A est à diagonale strictement dominante.

Définition 5.18. Une matrice carrée A = (ai j ) est dite à diagonale strictement dominante
si et seulement si
n
∀ i ∈ {1, 2, ..., n} |aii | > ∑ |ai j |.
j=1, j6=i

46
Chapitre 5. Résolution numérique de systèmes linéaires

On peut s’inspirer de ce qui précede pour donner l’algorithme suivant :

u1,1 = a1,1 ;
Pour j de 2 à n faire
u1, j = a1, j ;
l j,1 = a j,1 /u1,1 ;
Fin Pour
Pour i de 2 à n-1 faire
i−1
ui,i = ai,i − ∑ li,k uk,i
k=1
Pour j de i+1 à n faire
i−1
ui, j = ai, j − ∑ l j,k uk, j
k=1
" i−1 
l j,i = a j,i − ∑ l j,k uk, j /ui,i
k=1
Fin Pour
Fin Pour
n−1
un,n = an,n − ∑ ln,k uk,n
k=1

Algorithme 4: Algorithme de factorisation LU


Exemple 5.19. Déterminer, par cette méthode, la décomposition LU de la matrice sui-
vante :  
1 4 −3
 
A = −2 8 5 
3 4 7

5.2.5 Méthode de Cholesky


La méthode de Cholesky est une alternative à la factorisation LU qui s’applique aux
matrices symétriques et définie positives. Elle est fondée sur le théorème suivant

Théorème 5.20.
Si A ∈ Mn (R) une matrice symétrique définie positive alors il existe au moins une ma-
trice triangulaire inférieure L telle que A = LLT . Si les éléments diagonaux li,i de L sont
strictement positifs alors la décomposition est unique.

La méthode de Cholesky ne s’applique qu’aux matrices réelles symétriques définies


positives. Elle consiste en une factorisation A = LLT , où L est une matrice triangulaire
inférieure, dans le but de ramener la résolution de l’équation linéaire Ax = b à la résolution
de deux équations Ly = b et tLx = y. Ceci est intéressant lorsqu’on a à résoudre plusieurs
47
Chapitre 5. Résolution numérique de systèmes linéaires

systèmes avec la même matrice et différents second membres car la décomposition est
effectuée une fois pour toutes.

Algorithme de la factorisation de Cholesky

Soit A une matrice symétrique définie positive à coefficients réels, mettons A sous la
forme A = LLT . Les coefficients Li,i de L peuvent être calculés comme suit :


l1,1 = a1,1 ;
Pour i de 2 à n faire
li,1 = ai,1 /l1,1 ;
Fin Pour
Pour j des 2 à n-1 faire
j−1
l j, j = a j, j − ∑ l 2j,k
k=1
Pour i de j+1 à n faire
j−1 
li, j = ai, j − ∑ li,k l j,k /l j, j
k=1
Fin Pour
Fin Pour
s
n−1
2
ln,n = an,n − ∑ ln,k
k=1

Algorithme 5: Algorithme de la factorisation de Cholesky

On résout ensuite le système Ly = b puis LT x = y par les algorithmes de descente et


de remontée, respectivement.

Exemple 5.21. Soit A une matrice définie positive tel que


 
4 2 −2
 
A =  2 10 2 
−2 2 3

On a
√ √
l1,1 = a1,1 = 4=2

l2,1 = a2,1 /l1,1 = 1

l3,1 = a3,1 /l1,1 = −1

48
Chapitre 5. Résolution numérique de systèmes linéaires

q
l2,2 = 2 =3
a2,2 − l2,1

l3,2 = a3,2 − l3,1 l2,1 /l2,2 = 1
q
l3,3 = a3,3 − (l3,22 + l2 ) = 1
2,1
Donc matrice L est :  
2 0 0
 
L =  1 3 0
−1 1 1
Résolvant maintenant le système Ax = b avec b = t(1, 1, 1).Le système Ax = b est équi-
valent à résoudre les deux systèmes suivants :

 L y = b (1)
Ax = b ⇐⇒ LtLx = b ⇐⇒
 tL x = y (2)

La solution du système (1) est


 
1/2
 
 
 1/6 
 
4/3
    
2 1 −1 x1 1/2
t     
Lx = y ⇐⇒ 0 3 1  x2  = 1/6
0 0 1 x3 4/3
La solution du système (2) est  
10/9
 
x = −7/18
4/3
Exemple 5.22. On considère la matrice suivante :
 
2 −1 0
 
A = −1 2 −1
0 −1 1
Montrer que cette matrice est symétrique définie positive. Déterminer sa factorisation de
Cholesky.
Remarque 5.23.

n
2
1. Comme la matrice A s’écrit sous la forme A = LLT donc det(A) = ∏ li,i .
i=1
2. Le nombre d’opépations qu’utilise la méthode de Cholesky est :
2n3 + 15n2 + n
NC = , pour n = 5 on a NC = 105 et pour n = 10 on a NC = 585
6
49
Chapitre 5. Résolution numérique de systèmes linéaires

5.2.6 Conditionnement d’un système linéaire


Les algorithmes que nous avons vu aux paragraphes précedentes ne donne pas en
générale une solution exacte du système lnénaire

Ax = b A ∈ Mn (K) et b ∈ Kn

Cela est dû à differentes genres d’erreurs. Parmis ces erreurs il ya : les erreurs d’arrondi
et les erreurs de conditinnement

Erreur d’arrondi

Les calcules sont éxécutés avec une arithmétique à précision finie. En effet les ordi-
nateurs ont une arithmétique à précision limité.
Exemple 5.24.
Différences de grands nombres voisins.
x = a − b = 0 avec a = 123456718 105 et b = 123456719 100 alors que x = −105

A chaque étape de calcule donnée chaque résultats d’opération est forcement arrondi,
d’où les erreurs d’arrondi.

Erreur de conditionnement

Considérons le système linéaire :


      
10 7 8 7 u1 32 1
 7 5 6 5  u2  23 1
      
 8 6 10 9  u3  = 33 de solution 1
7 5 9 10 u4 31 1
Considérons le système perturbé où les seconds membres ont été trés légérement modifiés
et la matrice restant inchangée :
      
10 7 8 7 u1 + δu1 32.1 9.2
 7 5 6 5  u2 + δu2  22.9  
  =  de solution −12.6
 8 6 10 9  u3 + δu3  33.1  4.5 
7 5 9 10 u4 + δu4 30.9 −11
Considérons également le système perturbé où cette fois ce sont les éléments de la matrice
A qui ont été trés légérement modifiés.
      
10 7 8.1 7.2 u1 + δu1 32 −81
7.08 5.04 6 5       
  u2 + δu2  = 23 de solution  137 
 8 5.98 9.89 9  u3 + δu3  33 −34
6.99 4.99 9 9.98 u4 + δu4 31 22
On remarque qu’une petite variation sur les données ( la matrice A et le vecteur b) modifie
complétement la solution du système linéaire.
50
Chapitre 5. Résolution numérique de systèmes linéaires

Définition 5.25.
Soit A une matrice carrée inversible. Le nombre

Cond(A) = kAkkA−1 k.

S’appelle le conditionnement de la matrice A relativement à la norme matricelle induite


k.k

Théorème 5.26.
Soit A une matrice invervsible et soit u et (u + δu) les solutions des systèmes linéaires

Au = b et A(u + δu) = b + δu

On suppose que b 6= 0, alors on a :

kδuk kδbk
≤ Cond(A)
kuk kbk

Démonstration. Des égalités b = Au et δu = A−1 δb, on déduit

kδuk ≤ kA−1 k.kδbk et kbk ≤ kAk.kuk

d’où
kδuk kδbk kδbk
≤ kAk.kA−1 k = Cond(A)
kuk kbk kbk

Théorème 5.27. Soit A une matrice inversible et soient u et (u + δu) les solutions des
systèmes linéaires :
Au = b et (A + ∆A)(u + ∆u) = b
On suppose que b 6= 0, alors on a :

k∆uk k∆Ak
≤ Cond(A)
ku + ∆uk kAk

Démonstration. Des deux systèmes linéaires, on déduit :

∆u = −A−1 ∆A(u + ∆u)

d’où
k∆uk ≤ kA−1 k.k∆Ak.ku + ∆uk
Ce qui peut s’écrire :
k∆uk k∆Ak
≤ kAk.kA−1 k.
ku + ∆uk kAk

51
Chapitre 5. Résolution numérique de systèmes linéaires

Remarque 5.28. les inégalités des deux théorèmes précédentes montrent que Cond(A)
mesure la sensibilité de la solution u du système linéaire Au = b vis à vis des variations
des données A et b. Donc un système sera bien ou male conditionné selon que le condi-
tionnement de la matrice est petit ou grand.

Théorème 5.29.

1. Pour toute matrice A

Cond(A) ≥ 1 (5.6)
−1
Cond(A) = Cond(A ) (5.7)
Cond(αA) = Cond(A) ∀ α 6= 0 (5.8)

2. Si A et une matrice normale alors :


maxi |λi (A)|
Cond2 (A) = kAk2 kA−1 k2 =
mini |λi (A)|
où les nombres λi (A) sont les valeurs propres de la matrice A.
3. Le conditionnement Cond2 (A) d’une matrice A unitaire ou orthogonale vaut 1.

Démonstration.
en exercice.

Remarque 5.30.

1. L’inégalité Cond(A) ≥ 1 jointe au deux théorèmes précédentes montre qu’un sys-


tème linéaire est mieux conditionné que le nombre Cond(A) est voisin de 1.
2. La propriété 3. montre que les systèmes à matrice orthogonale (unitaire) sont trés
bien conditionnés puisque Cond2 = 1
3. La propriété Cond(αA) = Cond(A) montre qu’on ne peut pas amméliorer le condi-
tionnement d’un système en multipliant tout ces équations par le même scalaire.

5.3 Méthode itératives


Les méthodes directes sont très coûteuses en termes de nombre d’opérations, donc de
temps de calcul lorsque la taille du système linéaire est assez élevée. On peut alors avoir
recours à des méthodes où la solution est obtenue par itérations successives et où chaque
itération consiste à résoudre un système linéaire moins coûteux.
On considère une matrice A ∈ Mn (R) inversible, un vecteur b ∈ Rn et un système
linéaire
(S) : Ax = b
52
Chapitre 5. Résolution numérique de systèmes linéaires

Résoudre le système linéaire (S) par une méthode itérative consiste à construire une
suite de vecteurs (x(k) )k de Rn qui converge vers la solution exacte x = A−1 b, c’est-à-dire

lim x(k) = x (5.9)


k→+∞

pour n’importe quelle donnée initiale x(0) ∈ Rn .


La suite (x(k) )k est obtenu, à partir d’un vecteur initial arbitraire x(0) , par une relation de
récurrence de la forme
x(k+1) = Bx(k) +C, ∀k ∈ N. (5.10)

où B est une matrice bien choisi (dépendant de A) appelée matrice d’itération de la mé-
thode et C est un vecteur (dépendant de A et b), qui vérifient la relation de consistance

x = Bx +C, ∀k ∈ N (k ≥ 0) (5.11)

Comme x = A−1 b, ceci implique C = (In − B)A−1 b

5.3.1 Convergence des méthodes itératives


Définition 5.31. On appelle erreur (resp résidu) d’ordre k, k ∈ N, de la méthode d’ité-
ration le vecteur e(k) = x(k) − x (resp r(k) = b − Ax(k) ), où x = A−1 b est la solution de
Ax = b.

La méthode itérative converge si x(k) −→ x = A−1 b pour tout x(0)


x(k) = Bx(k−1) +C et x = Bx +C
Donc e(k) = x(k) − x = B(x(k−1) − x) = Be(k) = Bk e(0)
La méthode est convergente si :

e(k) −→ 0 ⇔ lim Bk e(0) = 0


k→+∞

Lemme 5.32.
Si la méthode itérative (5.10) est convergente et si on note x = A−1 b la solution exacte du
système linéaire (S), alors
x(k) − x = Bk (x(0) − x)

Définition 5.33.
Une matrice B est dite convergente si limk→+∞ Bk = 0

Le résultat suivant nous donne des critères pour tester la convergence de la méthode
itérative (5.10).

Théorème 5.34.
Les assertions suivantes sont équivalentes :
1. La méthode itérative (5.10) est convergente.
53
Chapitre 5. Résolution numérique de systèmes linéaires

2. Pour tout y ∈ Rn , limk→+∞ Bk y = 0.


3. ρ(B) < 1.
4. Il existe une norme matricielle || · || induite telle que kBk < 1.

Démonstration.
La méthode itérative est convergente si et seulement si limk→∞ e(k) = 0 pour tout vecteur
e0 = x(0) − x
Ce qui est équivalent à limBk e(0) = 0

limBk e(0) = 0 ⇔ ρ(B) < 1 ⇔ ∃ k.k telle que kBk < 1 (voir chap.4)

Théorème 5.35.

1. B est convergente si et seulement la serie géométrique I + B + B2 + ... est conver-


gente.
On pose Sn = ∑ Bk .
2. Si B est convergente alors (I − A) est inversible et (I − B)−1 = ∑ Bk

Démonstration.
1) Si la serie est convergente alors lim Bk = 0 donc B est convergente.
Si B est convergente alors ρ(B) < 1 et il existe une norme matricielle k.k telle que kBk < 1
donc la serie Sn = ∑ Bk est absolument convergente donc convergente.
2) On pose

S= ∑ Bk
k=0

(I − B)Sn = Sn − ASn = Sn − Sn+1 + I = I − An+1 −→ I quand n −→ ∞


De même S(I − A) = I d’où le résultat.
Remarque 5.36.
Soit ε l’erreur comise. On arrête les calculs dés que

kAxk − bk < ε

Vitesse de convergence

Soit la méthode itérative défine par x(k+1) = Mx(k) +C.


Définition 5.37.
La vitesse de convergence (asymptotique) de la méthode est :

V (M) = −Log(ρ(M))
54
Chapitre 5. Résolution numérique de systèmes linéaires

Remarque 5.38.
Soient M1 matrice d’itération de la méthode x(k+1) = M1 xk +C1
M2 matrice d’itération de la méthode x(k+1) = M2 xk +C2
Si ρ(M1 ) < ρ(M2 ) alors V (M1 ) > V (M2 )
On dit que M1 est plus rapide que M2 .
(k) (k)
Donc e1 −→ 0 plus rapidement que e2
Une méthode itérative est plus rapide si sa vitesse de convergence est plus grande (i.e
ρ(B) est petit).

5.3.2 Quelques méthodes itératives


Comment construire une méthode itérative ?

Une technique générale pour construire des méthodes itératives est basée sur une dé-
composition (splitting) de la matrice A sous la forme A = M − N, où M et N sont des
matrices à déterminer avec M non singulière. La matrice M est appelée matrice de pré-
conditionnement. Plus précisément, x(0) étant donné, on peut calculer x(k) , pour k ≥ 1, en
résolvant le système
Mx(k+1) = Nx(k) + b, k ≥ 0 (5.12)
Clairement, la solution exacte x satisfait Mx = Nx + b et donc Ax = b. Le système (5.12)
peut être écrit également sous la forme (5.10), avec B = M −1 N, et C = M −1 b. Une relation
de récurrence équivalente à (5.12) est la suivante :
" 
M x(k+1) − x(k) = r(k) , k ≥ 0 (5.13)

où r(k) = b − Ax(k) est le résidu à l’itération k.


Nous allons maintenant considérer deux exemples classiques : les méthodes de Jacobi,
et Gauss-Seidel. Le point de départ de chacune de ces méthodes est l’unique décomposi-
tion de la matrice A = (ai, j )1≤i, j≤n sous la forme A = D − E − F avec :
1. D = (di, j )1≤i, j≤n diagonale, telle que di,i = ai,i et di, j = 0 pour i 6= j ;
2. E = (ei, j )1≤i, j≤n triangulaire inférieure stricte telle que ei, j = −ai, j si i > j et ei, j =
0 si i ≤ j ;
3. F = ( fi, j )1≤i, j≤n triangulaire supérieure stricte telle que fi, j = −ai, j si i < j et
fi, j = 0 si i ≥ j.
Exemple 5.39. Considérons le système
 
2 −1 1
 
A= 2 2 2
−1 −1 2
55
Chapitre 5. Résolution numérique de systèmes linéaires

La décomposition de A sous la forme A = D − E − F décrite ci-dessus s’écrit alors


       
2 −1 1 2 0 0 0 0 0 0 1 −1
       
2 2 2 = 0 2 0 − −2 0 0 − 0 0 −2
−1 −1 2 0 0 2 1 1 0 0 0 0
| {z } | {z } | {z } | {z }
A D E F

On supposera de plus que D est inversible et on distingue les deux méthodes suivantes :
1. Méthode de Jacobi : M = D, N = E + F ;
2. Méthode de Gauss-Seidel : M = D − E, N = F ;

Méthode de Jacobi

On considère un système linéaire (S) : Ax = b avec A inversible. On pose A = M − N


avec M = D inversible et N = E + F. Le schéma itératif s’écrit alors
 (0)  (0)
x ∈ Rn x ∈ Rn
⇐⇒
Dx(k+1) = (E + F)x(k) + b, ∀k ≥ 0. x(k+1) = D−1 (E + F)x(k) + D−1 b, ∀k ≥ 0.

Chaque itération consiste donc à résoudre un système linéaire diagonal.

Définition 5.40. La matrice BJ = D−1 (E + F) s’appelle la matrice de Jacobi associée à


A.

On calcul x(k+1) par l’algorithme suivant


n
(k+1) (k) 
xi = bi − ∑ ai, j x j /ai,i , i = 1, . . . , n.
j=1
j6=i

56
Chapitre 5. Résolution numérique de systèmes linéaires

Données : A, b, x0 , n, ε et Nmax
Pour i de 1 à n faire
xinew ← xi0
Fin Pour
nb ← 0
Tant que (||Axnew − b|| > ε et nb < Nmax ) faire
nb ← nb+1
Pour i de 1 à n faire
xiold ← xinew
Fin Pour
Pour i de 1 à n faire
" n 
xinew ← bi − ∑ ai, j xold
j /ai,i
j=1
j6=i
Fin Pour
Fait

Algorithme 6: Algorithme de la méthode de Jacobi


Exemple 5.41. Considérons le système
    
4 2 1 x 4
    
−1 2 0 y = 2
2 1 4 z 9

mis sous la forme 



 x = 1 − y/2 − z/4
y = 1 + x/2


z = 9/4 − x/2 − y/4
Soit x(0) = (0, 0, 0) le vecteur initial, en calculant les itérées on trouve

x(1) = (1, 1, 9/4) x(2) = (−1/16, 3/2, 3/2)


x(3) = (−1/8, −1/32, 3/2) x(4) = (5/128, 15/16, 265/128)
x(5) = (7/512, 261/256, 511/256)

La suite x(k) converge vers la solution du système (0, 1, 2).

Théorème 5.42. La méthode de Jacobi converge si et seulement si ρ(BJ ) < 1.

Exemple 5.43. Pour la matrice A donnée par 5.39, on obtient :


    
1
2 0 0 0 1 −1 0 21 − 21
"      
BJ = D−1 E + F =  0 21 0  −2 0 −2 = −1 0 −1 
0 0 12 1 1 0 1
2
1
2 0
57
Chapitre 5. Résolution numérique de systèmes linéaires

√ √
5 5
Les valeurs propres de la matrices BJ sont 0 et ± i . On a donc ρ(BJ ) = 2 > 1 et la
2
méthode de Jacobi diverge.

Méthode de Gauss-Seidel

Dans la méthode de Gauss-Seidel, on choisi M = D − E et N = F ce qui conduit à


considérer la relation de récurrence
 (0) (
x ∈ Rn x(0) ∈ Rn
⇐⇒ −1 (k) −1
(D − E)x(k+1) = Fx(k) + b, ∀k ≥ 0. x(k+1) = D − E Fx + D − E b, ∀k ≥ 0.
−1
Définition 5.44. La matrice BGS = D − E F s’appelle la matrice de Gauss-Seidel
associée à A.

On calcul x(k+1) par l’algorithme suivant


i−1 n
(k+1) (k+1) (k) 
xi = bi − ∑ ai, j x j − ∑ ai, j x j /ai,i , i = 1, . . . , n.
j=1 j=i+1

Remarque 5.45. La méthode de Gauss-Seidel est une amélioration de la méthode de


jacobi dans laquelle les vecteurs calculés sont utilisées au fur et à mesure du calcul et
non à l’issue d’une itération comme dans la méthode de Jacobi. On améliore ainsi la
vitesse de convergence.

Données : A, b, x0 , n, ε et Nmax
Pour i de 1 à n faire
xinew ← xi0
Fin Pour
nb ← 0
Tant que (||Axnew − b|| > ε et nb < Nmax ) faire
nb ← nb+1
Pour i de 1 à n faire
xiold ← xinew
Fin Pour
Pour i de 1 à n faire
i−1 n 
xinew ← bi − ∑ ai, j xnew
j − ∑ ai, j xold
j /ai,i
j=1 j=i+1
Fin Pour
Fait

Algorithme 7: Algorithme de la méthode de Gauss-Seidel

58
Chapitre 5. Résolution numérique de systèmes linéaires

Exemple 5.46. Considérons le système




 x = 1 − y/2 − z/4
y = 1 + x/2


z = 9/4 − x/2 − y/4

Partant du point x(0) = (0, 0, 0), on calcule successivement

x(1) = (1, 3/2, 11/8) x(2) = (−3/32, 61/64, 527/256)


x(3) = (9/1024, 2047/2048, 16349/8192)

Cet ensemble de points converge vers la solution exacte (0, 1, 2).

Théorème 5.47. La méthode de Gauss-Seidel converge si et seulement si ρ(BGS ) < 1.

Exemple 5.48. Pour la matrice A donnée par 5.39, on obtient :


 −1    
2 0 0 0 1 −1 0 21 − 12
−1      
BGS = D − E F = 2 2 0 0 0 −2 = 0 − 21 − 12 
−1 −1 2 0 0 0 0 0 − 12

1
Les valeurs propres de la matrices BGS sont 0 et − (de multiplicité 2). On a donc
2
1
ρ(BGS ) = < 1 donc la méthode de Gauss-Seidel converge.
2

5.3.3 Résultats de convergence dans des cas particuliers


Nous allons maintenant examiner la convergence de ces méthodes itératives dans le
cas d’une matrice symétrique définie positive.

Théorème 5.49. Soit A une matrice symétrique définie positive et soit A = M − N une
décomposition de A où M est inversible. On suppose que la matrice tM + N est symétrique
définie positive. Alors, la méthode itérative Mx(k+1) = Nx(k) + b converge.

Remarque 5.50. Soit A une matrice symétrique définie positive. Alors la méthode de
Gauss-Seidel converge.

Corollaire 5.51. Soit A une matrice symétrique définie positive telle que 2D − A soit
définie positive. Alors, la méthode de Jacobi converge.

Théorème 5.52. Soit A une matrice à diagonale strictement dominante. Alors A est in-
versible. De plus, les méthodes de Jacobi et de Gauss-Seidel convergent.

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


cobi.

59
Chapitre 5. Résolution numérique de systèmes linéaires

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 :

||x(k+1) − x(k) ||

||x(k) ||

Une autre alternative est de tester le résidu :

||Ax(k+1) − b|| < ε

60

Vous aimerez peut-être aussi