Vous êtes sur la page 1sur 18

Chapitre 1

Résolution de systèmes linéaires

Rappelons qu’un système linéaire est un système de la forme :


Ax = b, (1.1)
où A ∈ Mn (R) avec Mn (R) l’ensemble des matrices carrées d’ordre n, et x, b des
vecteurs de Rn , A et b étant donnés.

On peut résoudre un système linéaire à l’aide de différentes méthodes que l’on


peut séparer en deux catégories : les méthodes directes et les méthodes itératives.

Définition 1 (Méthodes directes). On appelle méthode directe de résolution de


(1.1) une méthode qui donne exactement x (A et b étant connus) solution de (1.1)
après un nombre fini d’opérations élémentaires.

Pour chacune des méthodes présentées, nous nous intéresserons également à leur
coût en terme d’opérations à effectuer et donc de temps de calcul mais aussi en
terme de place mémoire. Nous verrons ainsi que certaines sont plus efficaces que
d’autres en terme de coût d’opérations et que d’autres nécessitent moins de place
mémoire. Les capacités des machines étant fixées, il sera opportun de connaître ces
coûts. Notons que la taille des systèmes que l’on peut résoudre a considérablement
augmenté ces dernières années. En effet, elle est liée aux capacités des machines qui
ont énormément évolué dans les 20 dernières années et qui continuent encore de
s’améliorer. En 1980, la taille maximale des systèmes que l’on pouvait résoudre était
de n = 102 pour une matrice pleine (matrice dont tous les coefficients sont non nuls)
et n = 106 pour une matrice creuse. En 2000 elle était passée à n = 106 pour une
matrice pleine et n = 108 pour une matrice creuse !
Remarque 1. La méthode à ne jamais utiliser pour résoudre un système linéaire
est l’inversion de la matrice.

5
6 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

1 Algorithme de Gauss
L’algorithme de Gauss ayant été vu au semestre précédent, je ne vais ici que
rappeler les grands principes.

1.1 Algorithme d’élimination de Gauss sans recherche de


pivot
Considérons une matrice A ∈ Mn (R) inversible et b ∈ Rn . On cherche à calculer
la solution x du système Ax = b. Le principe de la méthode de Gauss consiste
à se ramener par des opérations simples (combinaisons linéaires), à un système
triangulaire équivalent (i.e. qui a les mêmes solutions) qui sera facile à résoudre.
La méthode se décompose en trois grandes étapes : factorisation (étape corres-
pondant à la transformation de la matrice en une matrice triangulaire supérieure),
descente (étape correspondant à la transformation du second membre) et remontée
(étape correspondant au calcul de la solution exacte).

Étapes de factorisation et de descente : Les étapes de factorisation et de


descente s’écrivent de la façon suivante à l’étape (i) : pour k > i, en supposant que
ai,i ̸= 0, on pose :
ak,i
ak,j = ak,j − ai,j , pour j = 1, · · · , n, (1.2)
ai,i
ak,i
bk = bk − bi . (1.3)
ai,i
Remarquons qu’à chaque étape, on ne conserve en mémoire que la nouvelle
matrice. Le coefficient ai,i de l’étape i est appelé le i-ème pivot. Si tous les pivots
sont non nuls, on obtient par ce procédé un nouveau système linéaire, équivalent
au système de départ dont la matrice est triangulaire supérieure !

Notons que si l’un des pivots est nul, l’algorithme s’arrête !

Étape de remontée : Cette étape consiste simplement au calcul de la solution d’un


système triangulaire supérieur qui est donnée par :

bn

xn = ,





 an,n
bn−1 − an−1,n xn



xn−1 = ,



an−1,n−1 (1.4)



 ···

b1 − a1,2 x2 − ... − a1,n xn



x1 = .



a1,1

1. ALGORITHME DE GAUSS 7

Exercice 1. Appliquons l’algorithme de Gauss pour résoudre le système suivant :

2 −1 3 2 4
   
3 3 3 2  6
A= , b=  .
   
3 −1 −1 2  6
3 −1 3 −1 6

Exercice 2. Donner les algorithmes en pseudo langage des étapes de factorisation


et de descente ainsi que de l’étape de remontée.

1.2 Décompositions LU et LDU


Si le système Ax = b doit être résolu pour plusieurs seconds membres b, il est
évident qu’on a intérêt à ne faire qu’une seule fois l’étape de factorisation alors que
les deux autres étapes (descente et remontée) seront faites pour chaque vecteur b
donné. L’étape de factorisation peut se faire en décomposant la matrice A sous la
forme LU comme précisé dans le théorème ci-dessous que l’on admettra.
Théorème 1
Soit A ∈ Mn (R). Supposons qu’au cours du processus d’élimination de Gauss
aucun pivot ne soit nul. Alors il existe une matrice triangulaire inférieure L avec
des 1 sur la diagonale et une matrice triangulaire supérieure U inversible telles
que la matrice A admette la décomposition

A = LU.

De plus une telle décomposition est unique.

Les coefficients de la matrice L sont déterminés par l’algorithme d’élimination de


Gauss. En effet, on a le résultat suivant (que l’on admettra également) :
Lemma 1
Le coefficient lk,i de L, pour 1 ≤ i < k ≤ n, est l’opposé du coefficient par lequel
il faut multiplier la i-ème ligne lors de la i-ème
 étape de l’élimination de  Gauss
ak,i
pour éliminer le coefficient de la k-ème ligne =⇒ lk,i = de l’étape i.
ai,i

Exercice 3. Écrire la décomposition LU de la matrice de l’Exercice 1.

Exercice 4. Écrire en pseudo langage une fonction qui pour une matrice A donnée
permet d’obtenir sa décomposition LU .
8 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

Il est possible de donner un caractère « plus symétrique » à la décomposition LU


donnée par l’algorithme de Gauss.

Définition 2. Une matrice A ∈ Mn (R) admet une décomposition LDU s’il existe
une matrice triangulaire inférieure L avec des 1 sur la diagonale, une matrice
triangulaire supérieure U avec des 1 sur la diagonale et une matrice diagonale
inversible D telles que : A = LDU.

On a alors le résultat suivant :


Lemma 2
Une matrice A admet une décomposition LDU si et seulement si elle admet
une décomposition LU . De plus, si elle existe, cette décomposition est unique.

Du point de vue algorithmique, la construction de la décomposition LDU est


entièrement semblable à celle de la décomposition LU avec la différence qu’à chaque
pas on normalise la diagonale de U . La matrice D correspond donc en fait à la
matrice diagonale composée des différents pivots successifs de la décomposition LU.

Exercice 5. Ré-écrire en conséquence la fonction de l’Exercice 4.

1.3 Coût de la méthode de Gauss (nombre d’opérations)


On peut montrer que pour n grand le nombre d’opérations nécessaires pour
effectuer les étapes de factorisation, de descente et de remontée est de l’ordre de
2 3
3
n + O(n2 ). Donc si nous voulons résoudre un système 100 × 100 par la méthode
d’élimination de Gauss cela nous coûtera approximativement 6.6 × 105 opérations.
On ne le fera donc bien sûr pas à la main, mais, avec un ordinateur classique cela
représente un nombre d’opérations tout à fait raisonnable puisque le temps de calcul
sera de quelques millièmes de secondes (un ordinateur classique fait environ 107
opérations par seconde).

1.4 Algorithme d’élimination de Gauss avec recherche de


pivot
La méthode précédente sans recherche de pivot n’est possible que si aucun des
pivots n’est nul. Si l’on trouve un pivot nul, la méthode s’arrête. De plus dans le cas
où le pivot est petit, des problèmes peuvent se poser. Pour résoudre ces problèmes
on utilisera un algorithme de Gauss avec recherche de pivot.
1. ALGORITHME DE GAUSS 9

Effet d’un petit pivot


Si un pivot est très petit, sans être nul, le procédé d’élimination ne s’arrêtera
pas mais le résultat peut être entaché d’erreurs importantes. Pour s’en convaincre,
regardons de plus près le système très simple suivant :
! ! !
ε 1 x 1
= ,
1 2 y 1

avec ε petit.
Appliquons à ce système l’algorithme de Gauss. On obtient :


 εx + y = 1,
1 1
 
 2−
 y =1− .
ε ε
Si on résout ce système à la main, on trouve la solution : x = −1/(1 − 2ε) et
y = (1 − ε)/(1 − 2ε). Lorsque ε tend vers 0, on a donc x tend vers -1 et y tend vers 1.
Mais, si ε est « très petit », pour un ordinateur 1 − 1/ε devient −1/ε et 2 − 1/ε
devient −1/ε et il résolvera donc :


 εx + y = 1,
1 1
 − y=− .

ε ε
Il obtiendra donc y = 1 et x = 0 qui n’a rien à voir avec le résultat attendu ! Il faut
donc faire très attention à ne pas avoir un pivot trop petit !
Regardons maintenant ce qui se passe si nous intervertissons les deux lignes du
système de manière à avoir un plus grand pivot i.e. que l’on considère le système :

 x + 2y = 1,
 εx + y = 1.

Alors par l’algorithme de Gauss, on obtient :



 x + 2y = 1,
 (1 − 2ε)y = 1 − ε.

Ainsi, même si l’ordinateur considère que 1 − ε devient 1 et que 1 − 2ε devient 1, on


aura tout de même y = 1 et x = −1 qui est proche de la solution exacte. Nous avons
donc réglé le problème.
10 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

Pivot (partiel) : description générale et coût


Supposons qu’à l’étape i de l’algorithme de Gauss le pivot soit nul i.e. ai,i = 0.

Algorithme de pivot (partiel) : on choisit alors i0 ∈ i, ..., n tel que

|ai0 ,i | = max{|ak,i |, k = i, ..., n}.

Puis on échange les lignes i et i0 (dans la matrice et dans le second membre) et on


continue la procédure de l’algorithme de Gauss.

Exercice 6. Résoudre le système Ax = b en utilisant la méthode de Gauss avec


recherche de pivot pour :
   
3 3 1 1
A = 1 1 3  , b = 3 .
   

1 3 −1 4

Exercice 7. Donner en pseudo langage l’algorithme du pivot (partiel) à intégrer à


l’algorithme de Gauss.

Coût du pivot
On peut montrer que le coût total du pivot partiel en comparaison et échange est
approximativement de (n2 log2 n)/4.

2 Méthode de Cholesky
La méthode de Cholesky est une méthode directe qui est plus adaptée pour une
certaine classe de matrice.
Dans ce qui précède, il n’y a aucune garantie sur l’existence de la décomposition
LU . Un exemple de matrice symétrique ne possédant pas de décomposition LU est
la matrice suivante :  
0 1
A= .
1 0
De plus, appliquer un pivot partiel à une matrice symétrique détruit sa structure
symétrique et un pivot total demande nettement plus d’opérations. Pour les matrices
symétriques et définies positives, il existe une méthode plus adaptée : la méthode de
Cholesky.
2. MÉTHODE DE CHOLESKY 11

Définition 3 (Matrice définie positive).

1. Une matrice A ∈ Mn (R) est dite définie positive si et seulement si pour tout
vecteur x ∈ Rn \ {0} on a : (Ax, x) > 0.
2. Une matrice A ∈ Mn (R) est dite définie positive si et seulement si toutes ses
valeurs propres sont strictement positives.

Soit A ∈ Mn (R) symétrique et définie positive. La méthode de Cholesky consiste


à trouver une décomposition de A de la forme A = H tH, où H est une matrice
triangulaire inférieure de coefficients diagonaux strictement positifs. On résout alors
le système Ax = b en résolvant tout d’abord le système Hy = b puis le système
t
Hx = y. Une fois la matrice A « factorisée », i.e. la décomposition H tH obtenue, on
effectue les étapes de « descente » et « remontée ».
Étape de descente : Dans cette étape, on résout le système Hy = b, système
triangulaire inférieur dont la résolution est analogue à celle d’un système triangulaire
supérieur.

Exercice 8. Donner les formules liant yi aux coefficients de b et H, et, donner


l’algorithme en pseudo langage de cette étape.

Étape de remontée : Dans cette étape, on calcule x en résolvant le système tHx = y.


Il s’agit cette fois d’un système triangulaire supérieur. On renvoie donc à Section 1.1
pour la forme de la solution d’un tel système.

Existence et unicité de la décomposition


Théorème 2
Soit A ∈ Mn (R) une matrice symétrique définie positive. Alors il existe une
unique matrice H ∈ Mn (R), H = (hi,j )1≤i,j≤n telle que :
— H est triangulaire inférieure,
— hi,i > 0 pour tout i ∈ {1, · · · , n},
— A = H tH.

Il existe une démonstration directe et constructive de ce résultat qu’on ne détaillera


pas entièrement ici. Nous nous attacherons uniquement à la démonstration de l’unicité
qui fait intervenir le calcul de H.
12 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

Preuve de l’unicité de la décomposition.


Soit A ∈ Mn (R) une matrice symétrique définie positive. On suppose démontrée
l’existence d’une matrice H ∈ Mn (R) triangulaire inférieure telle que hi,i > 0 et
A = H tH. On a donc :
n
hi,k hj,k , ∀(i, j) ∈ {1, · · · , n}2 .
X
ai,j =
k=1

1- Calculons tout d’abord les coefficients de la première colonne de H. Pour j = 1,


on a :

a1,1 = h1,1 h1,1 donc h1,1 = a1,1 ,
a2,1
a2,1 = h2,1 h1,1 donc h2,1 = ,
h1,1
ai,1
ai,1 = hi,1 h1,1 donc hi,1 = , ∀ i ∈ {2, · · · , n}.
h1,1

2- En supposant avoir calculé les coefficients des m premières colonnes, calculons


la colonne m + 1.
— Pour i = m + 1, on a :
 1/2
m+1 m
h2m+1,k 
X X
am+1,m+1 = hm+1,k hm+1,k donc hm+1,m+1 = am+1,m+1 − .
k=1 k=1

Notons qu’il est indispensable d’avoir au préalable démontré l’existence


de H pour pouvoir exhiber ce coefficient puisqu’il nécessite que
m
h2m+1,k > 0
X
am+1,m+1 −
k=1

— On procède de la même façon pour i = m + 2, · · · , n. On obtient :


 
m
1 X
hi,m+1 = ai,m+1 − hi,k hm+1,k 
hm+1,m+1 k=1

On calcule ainsi toutes les colonnes de H et on montre donc l’unicité de celle-ci.

Coût de la méthode de Cholesky


On peut montrer que le nombre d’opérations nécessaires au calcul de la matrice L
3 2
est de l’ordre de n3 + n2 + O(n). De plus, les calculs de y (descente) et de x (remontée)
s’effectuent chacun en n2 opérations. Le nombre total d’opérations pour résoudre un
2. MÉTHODE DE CHOLESKY 13

3 2
système linéaire par la méthode de Cholesky est donc de l’ordre de n3 + 5n2 + O(n).
L’étape la plus coûteuse de ce procédé est donc celle de factorisation.
Remarquons qu’au vu des coûts de chacune des méthodes, dans le cas d’une
matrice symétrique définie positive, la méthode de Cholesky est environ deux fois
moins coûteuse que la méthode de Gauss.
Remarque 2. Dans de nombreuses applications, comme par exemple lors de la
résolution de systèmes linéaires issus de la discrétisation d’équations aux dérivées
partielles, la matrice A est creuse, i.e., un grand nombre de ses coefficients sont
nuls. Il est alors intéressant de connaître le profil de la matrice. Dans le cas où la
matrice est symétrique, il est donné par les diagonales contenant des coefficients
non nuls qui sont les plus éloignées de la diagonale principale, i.e. par les indices
ji = min{j ∈ {1, · · · , n} tels que ai,j ̸= 0}. Ce renseignement permet de faire un
stockage « profil » de A, en ne stockant, pour chaque ligne i que la valeur de ji et
des coefficients ai,k . On pourra ainsi avoir un large gain de mémoire.
L’avantage de la méthode de Cholesky est de conserver le profil de la matrice !
Donc si on a adopté un stockage profil pour A, on pourra faire de même pour H.
Exercice 9. Soit :
   
2 −1 0 0 0 1
−1 2 −1 0 0 0
   
   
 0 −1 2 −1 0  ,
A=  b= 0 .
 
 0

0 −1 2 −1 0
 
0 0 0 −1 2 0
Montrer que la matrice A est définie positive puis résoudre le système Ax = b
par la méthode de Cholesky.
Exercice 10. Le but de l’exercice est de résoudre le système linéaire suivant :




9x + 6y + 3z = 39,

6x + 20y + 6z = 86,




3x + 6y + 3z = 27,

1. Écrire le système sous forme matricielle.


2. Soit A la matrice associée au système linéaire à résoudre. Montrer que A est
symétrique définie positive. (Indication : Regarder ce que donne (x + 2y + z)2
quand on le développe).
3. Écrire la décomposition H tH de Cholesky pour la matrice A.
4. Donner la solution du système linéaire.
Exercice 11. Donner l’algorithme en pseudo langage de la méthode de Cholesky.
14 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

3 Conditionnement
3.1 Problème des erreurs d’arrondis
Supposons que les données A et b du système Ax = b soient connues à une erreur
près (ce qui est souvent le cas dans les applications pratiques). Notons δA ∈ Mn (R)
l’erreur commise sur A et δb ∈ Rn celle commise sur b. On aimerait que les erreurs
commises sur les données du problème n’aient pas de conséquence catastrophique
sur le calcul de la solution du système. On cherche donc en fait à évaluer l’erreur
δx ∈ Rn commise sur x, i.e., à évaluer δx avec x + δx solution (si elle existe) de :
(A + δA )(x + δx ) = b + δb .

3.2 Conditionnement et majoration de l’erreur d’arrondis


Définition 4. Soit A ∈ Mn (R) une matrice inversible. On appelle conditionnement
de A le nombre réel positif, noté cond(A), défini par :

cond(A) = ∥A∥∥A−1 ∥.

Voici trois normes matricielles parmi le plus utilisées :


X X
∥A∥1 = max |ai,j |; ∥A∥∞ = max |ai,j |
j i
i j
 1
q 2

a2 
X
∥A∥2 = Tr(tAA) = 
i,j .
i,j

Proposition 1
Propriétés du conditionnement.
Soit A, B ∈ Mn (R) des matrices inversibles et α ∈ R∗ .
• cond(A) ≥ 1.
• cond(αA) = cond(A).
• cond(AB) ≤ cond(A)cond(B).

Théorème 3
Soit A ∈ Mn (R) une matrice inversible et b ∈ Rn , b ̸= 0. Soient δA ∈ Mn (R) et
δb ∈ Rn . On suppose que ∥δA ∥ < 1/∥A−1 ∥. Alors la matrice (A + δA ) est inversible
4. MÉTHODES ITÉRATIVES 15

et si x est solution de Ax = b et (x + δx ) de (A + δA )(x + δx ) = b + δb , alors :


 
∥δx ∥ cond(A) ∥δ ∥ ∥δA ∥ 
 b +
≤ −1
(1.5)
∥x∥ 1 − ∥A ∥∥δA ∥ ∥b∥ ∥A∥

4 Méthodes itératives
Les méthodes directes que nous avons vues donnent la solution exacte du système
linéaire considéré (aux erreurs d’arrondis près). Elles nécessitent toutefois le stockage
de toute la matrice en mémoire vive. Si celle-ci est pleine et assez grosse, cela peut
poser problème au vu des capacités de l’ordinateur. Comme on l’a déjà mentionné
précédemment, si le système a été obtenu à partir de la discrétisation d’une EDP,
la matrice est en général creuse et a souvent une structure de bande (i.e. que les
coefficients non nuls sont localisés sur certaines diagonales) que la méthode de
Cholesky permet de conserver. Cependant, lorsqu’on a à faire à de très gros systèmes
issus de l’ingénierie (calcul des structures, mécanique des fluides...) où n peut être
de l’ordre de quelques milliers, on cherchera tout de même à utiliser des méthodes
nécessitant le moins de mémoire possible. On a alors intérêt à utiliser des méthodes
itératives qui ne font appel qu’à des produits matrice/vecteur et ne nécessitent pas
le stockage du profil de la matrice mais uniquement des termes non nuls.
Ainsi, pour des gros systèmes il est souvent avantageux d’utiliser des méthodes
itératives qui ne donnent pas forcément la solution exacte en un nombre fini d’itéra-
tions mais une solution approchée à moindre coût par rapport à une méthode
directe.

4.1 Description générale


Définition 5 (Méthode itérative). On appelle méthode itérative de résolution du
système linéaire (1.1) une méthode qui construit une suite (x(k) )k∈N (où l’itérée x(k)
est calculée à partir des itérées x(0) , · · · , x(k−1) ) censée converger vers x la solution
de (1.1).

Soit A ∈ Mn (R) inversible. Supposons que :


A = M − N, (1.6)
avec M une matrice inversible (et facile à inverser). On définit la suite de vecteurs
x(k) par la donnée d’un vecteur initial x(0) et la relation de récurrence suivante :
M x(k+1) = N x(k) + b. (1.7)
16 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

On appelle cette méthode une méthode itérative de type II et on appellera M −1 N la


matrice de la méthode.
Supposons maintenant que la suite (x(k) )k converge. Alors en notant x∞ sa limite,
on a : M x∞ = N x∞ + b ou encore Ax∞ = b. La limite de la suite (x(k) )k est donc la
solution du système linéaire qui nous intéresse.
On se posera plusieurs questions sur cette suite. La première est : quels choix peut-
on faire pour décomposer A sous la forme (1.6) ? Plusieurs méthodes sont possibles.
Nous donnerons ici les méthodes de Jacobi, de Gauss–Seidel et de relaxation. Pour
chacune de ces méthodes on se posera les questions suivantes : les suites ainsi
construites sont-elles convergentes ? À quelle vitesse convergent-elles ?
Notons que dans de nombreux cas pratiques, les matrices des systèmes linéaires
à résoudre ont une structure par blocs et on se servira de cette structure lors de
la résolution par une méthode itérative. Afin de simplifier la présentation, nous
n’utiliserons cependant pas ici la structure par blocs des matrices. Dans toute la
suite on considère donc simplement A ∈ Mn (R) sans supposer qu’elle admet une
structure par blocs.

4.2 Méthode de Jacobi

La méthode de Jacobi consiste à prendre pour M le choix le plus simple i.e. une
matrice diagonale, que l’on notera D.


0 0

a1,1 ... ...
..
 
 .. .. 

 0 . . . 

 
 .. .. .. .. 

 . . . . 

D=  .

.. .. .. .. 

 . . . .


 

.. .. ..

. . . 0
 
 
 
0 ... ... 0 an,n

On a alors N = E + F où E et F sont respectivement des matrices triangulaires


4. MÉTHODES ITÉRATIVES 17

inférieure et supérieure données par :



0 0 0

... ...
.. 
 
 .. ..
 −a
 2,1 . . .
 
 . .. .. ..
 ..

 . . . 

E=  ,

.. .. .. .. 

 . . . .

 
 .. .. ..
 
 . . . 0

 
−an,1 . . . . . . −an,n−1 0
et
0 −a1,2 . . . −a1,n
 
...
..
 
 ... .. 
0
 . . 

 
. .. .. ..
 ..

 . . . 

F =  .

.. .. .. .. 

 . . . .


 
 .. .. ..
 
. . . −an−1,n 

 
0 ... ... 0 0
On a bien A = M − N et avec D, E et F définies ainsi, la méthode de Jacobi s’écrit :

Dx(k+1) = (E + F )x(k) + b. (1.8)

Dans ce cas la matrice de la méthode, que l’on notera ici J est donnée par
J = D−1 (E + F ).
La méthode s’écrit aussi :
(k+1) X (k) X (k)
ai,i xi =− ai,j xj − ai,j xj + bi , i ∈ 1, · · · , n. (1.9)
i<j i>j

Exercice 12. Donner l’algorithme en pseudo langage de la méthode de Jacobi.

4.3 Méthode de Gauss–Seidel


Cette méthode est une modification de la méthode de Jacobi. L’idée est d’utiliser
le calcul des composantes de l’itérée (k + 1) dès qu’il est effectué. Plus précisément
(k+1)
il s’agit, par exemple, pour le calcul de la deuxième composante x2 , de x(k+1) ,
(k+1) (k)
d’utiliser la valeur de x1 que l’on vient de calculer au lieu de celle de x1 . Pour
(k+1) (k+1) (k+1)
celui de la troisième composante x3 on utilisera les valeurs de x1 et x2 au
18 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

(k) (k)
lieu de x1 et x2 , et ainsi de suite. Finalement cette idée revient donc à remplacer
(k) (k+1)
dans (1.9) xj par xj pour j < i et on obtient ainsi :
(k+1) X (k) X (k+1)
ai,i xi =− ai,j xj − ai,j xj + bi , i ∈ 1, · · · , n, (1.10)
i<j i>j

ou encore sous forme matricielle :

(D − E)x(k+1) = F x(k) + b. (1.11)

Ici la matrice de la méthode, que l’on notera L1 , est donnée par L1 = (D − E)−1 F.

Exercice 13. Donner l’algorithme en pseudo langage de la méthode de Gauss–Seidel.

4.4 Méthode de relaxation


D’après (1.11), dans la méthode de Gauss–Seidel, on peut voir que toute la matrice
D porte sur x(k+1) . La méthode de relaxation consiste à introduire un paramètre α,
que l’on notera également 1/ω, de sorte qu’une partie de la matrice D porte sur le
vecteur x(k+1) et le reste sur le vecteur x(k) . On écrit donc :

(αD − E)x(k+1) + ((1 − α)D − F )x(k) = b,

ou encore    
D 1−ω
 − E x(k+1) =  D + F x(k) + b. (1.12)
ω ω
La matrice de cette méthode, que l’on notera Lω est donnée par :
 −1  
D 1−ω
Lω =  − E  D + F .
ω ω

Notons que pour ω = 1, on retrouve la matrice de Gauss–Seidel.

Exercice 14. Donner l’algorithme en pseudo langage de la méthode de relaxation.


4. MÉTHODES ITÉRATIVES 19

4.5 Convergence des différentes méthodes


Théorèmes généraux

Théorème 4
Soit la méthode itérative définie par (1.6) et (1.7). Supposons que l’on ait
∥M −1 N ∥ < 1 (où ∥ · ∥ est soit ∥ · ∥1 soit ∥ · ∥∞ soit ∥ · ∥2 ). Alors pour toute donnée
initiale x(0) , la suite (x(k) )k converge vers la solution du problème (1.1).

Il s’agit ici d’un théorème donnant une condition suffisante de convergence. Il


existe un autre théorème, plus « fin » qui donne une condition nécessaire et suffisante
de convergence mais qui est souvent peu applicable. Ce résultat est le suivant :

Théorème 5
La méthode itérative définie par (1.6) et (1.7) converge pour toute donnée initiale
x(0) , si et seulement si ρ(M −1 N ) < 1, où ρ(M −1 N ) est le rayon spectral de la
matrice M −1 N .

Définition 6 (Rayon spectral). On appelle rayon spectral de A la quantité ρ(A) =


max{|λ| : λ ∈ R, λ valeur propre de A}.
Le rayon spectral satisfait en particulier

ρ(A) ≤ min(∥A∥∞ , ∥A∥1 , ∥A∥2 ).

Pour le cas particulier des matrices symétriques on a le résultat suivant :


Théorème 6
Soit A une matrice symétrique définie positive, admettant la décomposition
A = M − N avec M inversible. Si M + tN (qui est toujours symétrique) est définie
positive, alors la méthode itérative (1.7) converge.

Quelques conditions de convergence pour les méthodes itératives présen-


tées précédemment
En appliquant les critères de convergence ci-dessus, on obtient les résultats
suivants :
Théorème 7
Soit A une matrice à diagonale strictement dominante. Alors la méthode de
20 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

Jacobi converge.

Définition 7. Soit A ∈ Mn (R). A est une matrice à diagonale strictement domi-


nante si et seulement si :
n
X
|ai,i | > |ai,j |, ∀ i = 1, · · · , n.
j=1
j̸=i

Théorème 8
Soit A une matrice symétrique définie positive. Si ω ∈]0, 2[, la méthode de
relaxation converge.
Théorème 9
Soit A une matrice tridiagonale. Alors les rayons spectraux des matrices de
Jacobi et de Gauss–Seidel sont liés par la relation

ρ(L1 ) = ρ(J)2 ,

de sorte que les deux méthodes convergent et divergent en même temps.

Remarque 3. Lorsqu’elles convergent, la méthode de Gauss–Seidel convergera plus


rapidement que la méthode de Jacobi.
Théorème 10
Soit A une matrice tridiagonale telle que toutes les valeurs propres de la matrice
de Jacobi J soient réelles. Alors la méthode de Jacobi et la méthode de relaxation
convergent ou divergent simultanément pour 0 < ω < 2.

Enfin nous terminerons par un théorème donnant une minoration du rayon


spectral de la matrice Lω qui conduit à une condition suffisante de divergence de la
méthode de relaxation.
Théorème 11
Pour tout ω ̸= 0, on a :
ρ(Lω ) ≥ |ω − 1|.

Exercice 15. On considère le système Ax = b avec :


   
10 1 0 9
A =  1 10 1  , b = −10 .
   

0 1 10 −11
4. MÉTHODES ITÉRATIVES 21

1. Les méthodes de Jacobi et de Gauss–Seidel convergent-elles ?


 
1
2. À partir de x(0) = 
1, calculer pour les deux méthodes les itérées x(1) , x(2) , x(3) .

1
Exercice 16. Soit a ∈ R et :
 
1 a a
a 1 a .
A= 

a a 1

Montrer que A est symétrique définie positive si et seulement si −1/2 < a < 1. Puis
montrer que la méthode de Jacobi converge si et seulement si −1/2 < a < 1/2.

Exercice 17. On se donne la matrice A et le vecteur b suivant :


3 1 0 0 1
   
1 3 1 0 0
A= ,

b=  .
 
0 1 3 1 0

0 0 1 3 0

Montrer que les méthodes itératives de Jacobi et de relaxation (pour 0 < ω < 2),
appliquées à ce système linéaire, sont convergentes.
22 CHAPITRE 1. RÉSOLUTION DE SYSTÈMES LINÉAIRES

À savoir
Méthodes directes
— Résoudre un système linéaire donné en appliquant l’algorithme de Gauss
— Écrire l’algorithme de Gauss en pseudo-code
— Calculer la décomposition LU ou LDU d’une matrice donnée
— Écrire l’algorithme de la décomposition LU ou LDU en pseudo-code
— Résoudre un système linéaire donné à l’aide de la décomposition LU ou LDU
— Écrire l’algorithme de résolution d’un système linéaire à l’aide de la décomposi-
tion LU ou LDU en pseudo-code
— Connaître les limites/cas d’applications des différentes méthodes directes
(Gauss, LU/LDU , Cholesky)
— Connaître l’ordre de grandeur du nombre d’opérations élémentaires des mé-
thodes directes de résolution de systèmes linéaires

Méthodes itératives
— Connaître le principe général d’une méthode itérative (A = M − N , forme des
itérées, etc.)
— Connaître la matrice des méthodes de Jacobi, Gauss–Seidel et sa relaxation
— Écrire la décomposition et calculer quelques itérées des différentes méthodes
itératives à une matrice donnée
— Écrire les algorithmes des méthodes de Jacobi, Gauss–Seidel et sa relaxation
en pseudo-code
— Situer l’efficacité des 3 méthodes itératives les unes par rapport aux autres
— Connaître les principaux résultats de convergence des 3 méthodes itératives
(Théorèmes 4 à 8 sauf le 5) et vérifier s’ils sont applicables à une matrice donnée

Compétences transversales
— Étant donnée une méthode algorithmique donnée de manière formelle, être
capable de
— l’appliquer à un exemple précis
— écrire l’algorithme en pseudo-code
— compter le nombre d’opérations élémentaires

Vous aimerez peut-être aussi