Vous êtes sur la page 1sur 14

École Supérieure Privée d’Ingénierie et de Technologies

Analyse numérique
Chapitre 1 : Résolution numérique des systèmes d’équations linéaires
Niveau : 3 A B Année universitaire : 2021-2022

1 Introduction
1.1 Exemple introductif
On considère le circuit, donné ci-dessous, pour lequel on donne : U1 = 110V, U2 = 105V, U3 =
90V, R1 = 0.5Ω, R2 = 0.25Ω, et R3 = 0.5Ω, où V et Ω désignent respectivement Volt et Ohm.

Question : Calculer les intensités du courant (en Ampères A) i1 , i2 et i3 ?


Pour calculer les courants i1 , i2 et i3 , on leur choisit un sens, ce qui permet de flécher les tensions
aux bornes des résistances. En appliquant la loi des nœuds en A, on a

i1 + i2 − i3 = 0 (1)

Il y a 3 mailles, donc on choisit 2 mailles indépendantes afin de compléter le système à résoudre :


Maille 1 : A, R1 , U1 , B, U2 , R2 , A, avec le sens de parcours indiqué, l’application de la loi des
mailles donne :
R1 · i1 − U1 + U2 − R2 · i2 = 0

En remplaçant R1 , R2 , U1 et U2 par ses valeurs, on obtient

0.5 · i1 − 0.25 · i2 + 0 · i3 = 5 (2)

1
Maille 2 : A, R2 , U2 , B, U3 , R3 , A avec le sens de parcours indiqué, l’application de la loi des
mailles donne :
R2 · i2 − U2 + U3 + R3 · i3 = 0

En remplaçant R2 , R3 , U2 et U3 par ses valeurs, on obtient

0 · i1 + 0.25 · i2 + 0.5 · i3 = 15 (3)

Ainsi, d’après les equations (1), (2) et (3), On obtient le système d’équations linaires suivant :

i + i2 − i3 =0
1


(S) 0.5 · i1 − 0.25 · i2 + 0 · i3 =5


0 · i + 0.25 · i + 0.5 · i

= 15
1 2 3

où i1 i2 et i3 sont les inconnues.


Le système linéaire (S) peut s’écrit sous la forme matricielle : RI = U , où la matrice R et les
vecteurs I et U sont définis par
     
1−1 1 i1 0
R = 0.5 −0.25 0  , I = i2  et U =  5 
     

0 0.25 0.5 i3 15

−0.25 0 1 −1
det R = − 0.5 = −0.5 6= 0, ainsi le système (S) est de Cramer et admet

0.25 0.5 0.25 0.5
une solution unique :
0 1 −1




5
−0.25 0



15 0.25 0.5

• i1 = det R ' 15 A

1 0 −1



0.5 5 0


0 15 0.5

• i2 = det R ' 10 A

1 1 0



0.5 −0.25 5


0 0.25 15

• i3 = det R ' 25 A

Le lecteur peut se demander pourquoi le problème de la résolution d’un tel système se pose alors
que les formules de Cramer nous donnent la solution d’un tel système (S).

2
Pour comprendre le problème, supposons qu’on a un circuit complexe qui contient plus de 100
mailles et on souhaite de calculer les valeurs de l’intensité ik , 1 ≤ k ≤ 100 ! ! !
Essayons de compter le nombre d’opérations nécessaires pour calculer la solution en utilisant ces
formules de Cramer. Nous devons calculer n + 1 déterminants de taille n. Le calcul de det(A) se
ramène à n!−1 additions et n!(n−1) multiplications soit au total n!−1+n!(n−1) = nn!−1 opérations
à virgule flottante. Comme nous avons n + 1 déterminants à calculer, le nombre d’opérations
nécessaires pour résoudre le système à l’aide des formules de Cramer est de (n+1)(nn!−1) opérations
à virgule flottante qui est équivalent quand la dimension n tend vers l’infini à n(n + 1)!. Essayons
d’évaluer cette quantité lorsque n = 100 on trouve 9, 4 · 10161 .
Par exemple, avec ordinateur fonctionnant à 100 mégaflops (flops = opérations à virgule flottante
par secondes), il faudrait environ 3 · 10146 années pour résoudre notre système !
On en déduit donc qu’il est impossible d’utiliser les formules de Cramer pour des systèmes de grande
taille. En pratique, Il existe deux grandes familles de méthodes de résolution pour des systèmes de
dimension peu élevée :
I Méthodes directes qui permettent d’obtenir la solution en un nombre fini d’opérations
soit par triangularisation ou soit par décomposition de la matrice A. Les méthodes directes
que nous allons étudier sont : Pivot de Gauss et La méthode de décomposition LU
I Méthodes itératives qui consistent à construire une suite (xn )n qui converge vers la solu-
tion. Les méthodes itératives que nous allons étudier sont : La méthode de Jacobi et la
méthode de Gauss-Seidel

Méthodes de
résolution
AX = b

Méthodes Méthodes
directes itératives

Décomposition
Pivot de Gauss Jacobi Gauss-Seidel
LU

1.2 Système d’équations linéaires


1.2.1 Définition d’un système d’équations linéaires

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

3
suivante : 


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


a2,1 x1 + a2,2 x2 + · · · + a2,n xn = b2






··· ··· ··· ···




 ··· ··· ··· ···


··· ··· ··· ···






a x + a x + · · · + a x

= bn ,
n,1 1 n,2 2 n,n n

où x1 , x2 , · · · , xn sont les inconnues.

1.2.2 Formes matricielles d’un système linéaire

Un système d’équations linéaires peut aussi s’écrire sous la forme matricielle : AX = b,


où A est une matrice de taille n est un vecteur de taille n et b est un vecteur de taille n :
   
  x1 b1
a1,1 · · · an,1
 x2 b 
   
 . . .
A =  .. .. ..  et b =  .2 
 
 , X =  .. .
  
 . .


an,1 · · · an,n
xn bn

1.2.3 Existence des solutions

Activité 1 Les systèmes suivants ont il une solution unique, une infinité de solution ou pas de
solution ?
  
x + x =1 x + x =1 x + x =1
1 2 1 2 1 2
(S1 ) , (S2 ) , (S3 )
−x + x =1 x + x =3 2x + 2x =2
1 2 1 2 1 2

Correction :
• (S1 ) s’écrit sous la forme matricielle suivante :
! ! !
1 1 x1 1
=
−1 1 x2 1
!
1
(S1 ) admet une solution unique X = . Le déterminant de la matrice vaut 2 6= 0 et
−1
dans ce cas on dit que (S1 ) est un système de Cramer.

4
• (S2 ) s’écrit sous la forme matricielle suivante :
! ! !
1 1 x1 1
=
1 1 x2 3

(S2 ) n’admet pas des solutions. Le déterminant de la matrice vaut 0.


• (S3 ) s’écrit sous la forme matricielle suivante :
! ! !
1 1 x1 1
=
2 2 x2 2
!
1 − x2
(S3 ) admet une infinité de solutions X = où x2 est l’inconnue auxiliaire qui peut
x2
prendre une valeur arbitraire. Le déterminant de la matrice vaut 0 .

Résultat fondamental :
Un système linéaire possède zero, une ou une infinité de solutions.

(S) : AX = b
A ∈ Mn (R)

det A 6= 0 det A = 0

(S) admet
(S) admet (S) n’admet pas
une infinité
unique solution des solution
de solutions

L’objectif de ce cours est de résoudre des systèmes de Cramer utilisant des méthodes numériques
(à travers des algorithmes).

2 Résolution avec les méthodes directes


2.1 Méthode du pivot de Gauss
La méthode du pivot de Gauss est une méthode pour transformer un système en un autre
système équivalent (ayant les mêmes solutions) qui est triangulaire et est donc facile à résoudre.
Les opérations autorisées pour transformer ce système sont :
• Permutation de deux lignes : Li ↔ Lj .

5
• Multiplication d’une ligne Li par un scalaire λ non nul : Li ←− λLi .
• Addition d’un multiple d’une ligne à une autre ligne. : Li ←− Li + λLj .

Étude d’un exemple

Résoudre avec la méthode du pivot de Gauss le système (S) suivant :



3x + x2 + x3 =1
 1


(S) x1 − 3x2 + x3 = −3


x + x − 3x

=1
1 2 3

Le système (S) peut s’écrire sous la forme matricielle : AX = b où


     
3 1 1 x1 1
A = 1 −3 1  , X = x2  b = −3 ,
     

1 1 −3 x3 1

A représente la matrice des coefficients de (S), X représente la solution de (S) et b représenter le


second membre du système.
Dans notre exemple, la matrice A est inversible ( car det(A) = 32 6= 0 ), ainsi le système (S) admet
une unique solution.
Nous décrivons le principe de cette méthode par les opérations suivantes :
• Opération 1 : Écrire la matrice élargie relative à (S), notée par (A|b), et déterminer un
premier pivot non nul.
3
 
1 1 1
(A|b) =  1 −3 1 −3 
 

1 1 −3 1
Remarque 1 Si le coefficient a11 = 0, il faut permuter la premier ligne L1 avec une ligne
Li telle que ai1 6= 0, i = 1, · · · , 3.
• Opération 2 : Annuler tous les coefficients situant en dessous du premier pivot.
 
1
L2 ←− L2 − L1
3
 
1
L3 ←− L3 − L1
3
 
3 1 1 1
∼ ∼
(A| b) =  0 −10/3 2/3
(−10)/3 
 

0 2/3 −10/3 2/3

6
• Opération 3 : Passer au pivot suivant, vitrifier qu’il est non nul et annuler tous les coefficients
situant en dessous du deuxième pivot.
 
1
L3 ←− L3 + L1
5
 
3 1 1 1
∼ ∼
(A| b) =  0 -10/3 2/3 (−10)/3 
 

0 0 (−48)/15 0

Ainsi on obtient un système triangulaire supérieur équivalent au système (S) :



3x + x2 + x3 =1
 1


− 10 2
3 x2 + 3 x3 = − 10
3


− 48 x


15 3 =0

Le nouveau système triangulaire supérieur est très simple à résoudre :


(L3 ) donne : x3 = 0.
3 x2 + 3 x3 = − 3 donc x2 = 1.
Puis dans (L2 ) : − 10 2 10

Enfin dans (L1 ) : 3x1 + x2 + x3 = 1 donc x1 = 0 .


Conclusion : On a trouvé la solution du système (S) : (x1 , x2 , x3 ) = (0, 1, 0).

2.2 Méthode de décomposition LU


. Le principe de la méthode est de se ramener à deux systèmes triangulaires.
Soit le système linéaire suivant : AX = b, où A est une matrice dont tous les mineurs
principaux sont non nuls, alors pour la résolution on procède par les étapes suivantes :
1. Décomposition de A : A = LU avec L est triangulaire inférieure à diagonale unité et
U triangulaire supérieure.
2. Résolution du système triangulaire inférieur : LY = b (descente)
3. Résolution du système triangulaire supérieur : U X = Y (remontée)

Décomposition LU
LY = b
AX = b −−−−−−−−−−−−−−−−→ A = L |{z}
UX = b →
U X = Y
Y

. L’existence de la décomposition LU est assurée par le théorème suivant :

Théorème 1 Soit A ∈ Mn (R) une matrice dont tous les mineurs principaux sont non nuls.
Il existe un unique couple de matrices (L, U ), avec U triangulaire supérieure, et L triangulaire
inférieure à diagonale unité (i.e. li,i = 1), tel que A = LU .

7
Étude d’un exemple

Soit A la matrice suivante :  


3 1 1
A = 1 −3 1
 

1 1 −3
A est une matrice dont tous les mineurs principaux sont non nuls. En effet,



det(3) = 3 6= 0

  
3 1





det   − 8 6= 0
1 −3


 


 3 1 1

  
det −3  = det A = 32 6= 0
  


 1 1

  
1 1 −3

Donc, A admet une décomposition LU .

Résoudre le système linéaire AX = b avec b = (1, −3, 1)T et X = (x1 , x2 , x3 )T se ramène par la
méthode de décomposition LU à procéder par trois étapes :

Étape 1 : Calculons d’abord les deux matrices L et U de la factorisation de A.


D’après ce qui précède A = LU avec L matrice triangulaire inférieure de diagonale unité et U ma-
trice triangulaire supérieure :
   
1 0 0 u1,1 u1,2 u1,3
L = l2,1 1 0 , U =  0 u2,2 u2,3 
   

l3,1 l3,2 1 0 0 u3,3


Alors par identification :
• 1 × u1,1 = 3 ⇒ u1,1 = 3
• 1 × u1,2 = 1 ⇒ u1,2 = 1
• 1 × u1,3 = 1 ⇒ u1,3 = 1
• l2,1 × 3 = 1 ⇒ l2,1 = 1
3
• 1
3 × 1 + 1 × u2,2 = −3 ⇒ u2,2 = − 10
3
• 1
3 × 1 + 1 × u2,3 = 1 ⇒ u2,3 = 2
3
• 3 × l3,1 = 1 ⇒ l3,1 = 1
3
• 1
3 × 1 + l3,2 × − 10 1
3 = 1 ⇒ l3,2 = − 5
• 1
3 ×1− 1
5 × 2
3
48
+ 1 × u3,3 = −3 ⇒ u3,3 = − 15

8
On obtient :    
1 0 0 3 1 1
L = 1/3 0 , U = 0 −10/3
1 2/3 
   

1/3 −1/5 1 0 0 −48/15


 
y1
Étape 2 : Cherchons Y = y2  la solution du système linéaire LY = b.
 

y3

       
y1 1 y1 1
L y2  = b = −3 ⇒ y2  = − 10
       
3 
y3 1 y3 0

Étape 3 : Après avoir calculer le vecteur Y il reste à trouver la solution du système


linéaire
   
x1 1
U X = Y ⇒ U x2  = − 10
   
3 
x3 0
Alors,     
3 1 1 x1 1
0 −10/3 2/3  x2  = − 10
    
3 
0 0 −48/15 x3 0
 
0
Ce qui implique X = 1
 

Remarque 2 De Gauss à LU
• La matrice U est exactement égale à la matrice triangulaire supérieure obtenue en appliquant
la méthode de pivot de Gauss.
• La matrice L est une matrice triangulaire supérieure avec des 1 à la diagonale et les coeffi-
cients l2,1 , l3,1 et l3,2 s’obtiennent à partir des transformations de ligne de gauss précédentes
de la manière suivante :  
1 1
L2 ←− L2 − L1 y l2,1 =
3 3
 
1 1
L3 ←− L3 − L1 y l3,1 =
3 3
 
1 1
L3 ←− L3 + L2 y l3,2 = −
5 5

9
Pour des systèmes de grande taille, les méthodes directes (LU , Gauss) deviennent coûteuse en
temps de calcul ou en place mémoire. L’idée est d’approcher la solution X du système AX = b par
une suite de vecteurs (Xn )n .

3 Résolution avec les méthodes itératives


Les méthodes itératives pour résoudre (S) : AX = b, consiste à décomposer A comme
A = D − E − F , ou D est une matrice diagonale, (−E) est une matrice triangulaire inférieure et
(−F ) est une matrice triangulaire supérieure.
     
a1,1 0 · · · 0 0 ··· ··· 0 0 −a1,2 · · · −a1,n
. . .  . .. .. ..
.. .. ..  ..
   
 0
  −a2,1
0   0 . . . 
A= . −  − .
   
 .. .. ..  .. .. .. . ..
  
 . .   .
0  . . 0  .
  . −an−1,n 

0 · · · 0 an,n −an,1 · · · −an,n−1 0 0 ··· ··· 0
| {z } | {z } | {z }
D E F

3.1 Méthode de Jacobi


Description de la méthode

On transforme le système (S) : AX = b de la façon suivante :

AX = b

DX − (E + F )X = b

DX = (E + F )X + b

Itération de Jacobi

On définit une suite de vecteurs X (k) par la formule

DX (k+1) = (E + F )X (k) + b

On espère que X (k) converge vers une solution de (S), sous de bonne hypothèse concernant la
matrice A, c’est effectivement le cas :
  (k+1)    (k) 
 
a1,1 0 0 x1 0 −a1,2 −a1,3 x1 b1
  (k+1)     (k)   
 0 a2,2 0  x2  = −a2,1 0 −a2,3  x2  + b2 

(k+1) (k)
0 0 a3,3 x3 −a3,1 −a3,2 0 x3 b3

10
 (k) (k)
(k+1) b1 −a1,2 x2 −a1,3 x3
x =
 1 a1,1


(k) (k)
(k+1) b2 −a2,1 x1 −a2,3 x3
x2 = a2,2

 (k) (k)
x(k+1) =
 b3 −a3,1 x1 −a3,2 x2
3 a3,3

La méthode nécessite aii 6= 0 pour i = 1, · · · , n. Dans le cas générale et pour des matrice d’ordre n,
les composantes du vecteur x(k+1) sont données par :
 
n
(k+1) 1  X (k)
xi = bi − aij xj  , i = 1, · · · , n
aii
j=1,j6=i

(k) (k+1)
L’algorithme de Jacobi nécessite le stockage des deux vecteurs xj et xj .

3.2 Méthode de Gauss Seidel


Description de la méthode

On transforme le système (S) : AX = b de la façon suivante :

AX = b

DX − (E + F )X = b

(D − E)X = F X + b

Itération de Gauss Seidel

On définit une suite de vecteurs X (k) par la formule

(D − E)X (k+1) = F X (k) + b

On espère que X (k) converge vers une solution de (S), sous de bonne hypothèse concernant la
matrice A, c’est effectivement le cas :
  (k+1)     (k)   
a1,1 0 0 x1 0 −a1,2 −a1,3 x1 b1
  (k+1)     (k)   
−a2,3 a2,2 0  x2  = 0 0 −a2,3  x2  + b2 

(k+1) (k)
−a3,1 −a3,2 a3,3 x3 0 0 0 x3 b3
 (k) (k)
(k+1) b1 −a1,2 x2 −a1,3 x3
x =
 1 a1,1


(k+1) (k)
(k+1) b2 −a2,1 x1 −a2,3 x3
x2 = a2,2

 (k+1) (k+1)
x(k+1) =
 b3 −a3,1 x1 −a3,2 x2
3 a3,3

11
La méthode nécessite aii 6= 0 pour i = 1 · · · n . Dans le cas générale et pour des matrice d’ordre n
les composantes du vecteur x(k+1) sont données par :
 
i−1 n
(k+1) 1  X (k+1)
X (k)
xi = bi − aij xj − aij xj  , i = 1, · · · , n.
aii
j=1 j=i+1

L’algorithme de Gauss-Seidel ne nécessite qu’un vecteur de stockage, X (k) étant remplacé par X (k+1)
au cours de l’itération. Il est en général plus rapide que l’algorithme de Jacobi, donc préférable.

3.3 Convergence
Théorème 2 Soit A une matrice à diagonale strictement dominante alors les méthodes de Jacobi
et Gauss Seidel appliquées au système (S) : AX = b sont convergentes pour tous X (0) .

Définition : On dit que A est à diagonale strictement dominante lorsque le module de


chaque terme diagonal est supérieur strictement à la somme des modules des autres termes de sa
ligne.
n
X
Si A = (ai,j )(i,j)∈[1,n]2 , on a alors : |ai,i | > |ai,j |, ∀i ∈ [1, n].
j=1
j6=i

Remarque 3 Le critère d’arrêt des méthode itératives est donnée par :

||AX (k) − b|| ≤ ε, avec ε très petit .

On dit que ε est une tolérance.

3.4 Étude d’un exemple


On considère le système d’équations linéaires (S), dont l’écriture matricielle est donnée par :
AX = b avec :      
5 2 −1 x1 6
A = 1 6 −3 , X = x2  et b = 4
     

2 1 4 x3 7
1. Convergence

On a : 
|a | > |a1,2 | + |a1,3 | ( car |5| > |2| + | − 1|)
 1,1


|a2,2 | > |a2,1 | + |a2,3 | ( car |6| > |1| + | − 3|)


|a | > |a | + |a | ( car |4| > |2| + |1|)

3,3 3,1 3,2

12
Donc, A est une matrice à diagonale strictement dominante, ainsi, la méthode de Jacobi et la
méthode de Gauss Seidel est convergente.

2. Méthode de Jacobi

• Décomposition de Jacobi : On pose A = D − E − F

(k) 
xk+1
      
5 0 0 1 0 −2 1 6x1
  k+1     (k)   
0 6 0 x2  −1 0 3 x2  4
= +

(k)
0 0 4 xk+1
3 −2 −1 0 x3 7
 (k) (k) (k) (k)
(k+1) b1 −a1,2 x2 −a1,3 x3 6−2x2 +x3
x = =
 1 a1,1 5


(k) (k) (k) (k)
(k+1) b2 −a2,1 x1 −a2,3 x3 4−x1 +3x3
x2 = a2,2 = 6

x(k+1) = b3 −a3,1 x(k) (k) (k) (k)

1 −a3,2 x2 7−2x1 −x2

3 a3,3 = 4
 
0
• Itération de Jacobi : Pour le vecteur initial X (0) = 0,
 

0
 
6/5
— Itération 1 : X (1) = 2/3
 

7/4
 
1, 2833
— Itération 2 : X (2) = 1, 3417
 

0, 9833
 
0, 86
— Itération 3 : X (3) = 0, 9444
 

0.7729
 
0, 9768
— Itération 4 : X (4) = 0, 9098
 

1, 0839

3. Méthode de Gauss Seidel

• Décomposition de Gauss-Seidel : On pose A = D − E − F


  (k)   
xk+1
   
5 0 0 1 0 −2 1 x1 6
  k+1     (k)   
−1 6 0 x2  = 0 0 3 x2  + 4

(k)
−2 −1 4 xk+1
3 0 0 0 x3 7

13
 (k) (k) (k) (k)
(k+1) b1 −a1,2 x2 −a1,3 x3 6−2x2 +x3
x = =
 1 a1,1 5


(k+1) (k) (k+1) (k)
(k+1) b2 −a2,1 x1 −a2,3 x3 4−x1 +3x3
x2 = a2,2 = 6

 (k+1) (k+1) (k+1) (k+1)
x(k+1) =
 b3 −a3,1 x1 −a3,2 x2 7−2x1 −x2
3 a3,3 = 4
 
0
• Itération de Gauss Seidel : Pour le vecteur initial X (0) = 0,
 

0
 
6/5
— Itération 1 : X (1) =  7/15 
 

31/30
 
1, 22
— Itération 2 : X (2) =  0, 98 
 

0, 895
 
1.014
— Itération 3 : X (3) = 1, 014
 

0, 989

14

Vous aimerez peut-être aussi