Vous êtes sur la page 1sur 33

Module : Analyse Numériques & Algorithmique

Filière SMP : S3
Mohammed MOUSSA

Université Ibn Tofail

19 octobre 2015
Introduction
Méthodes directes
Méthodes Itératives

Programme

Programme
1 Chapitre 1 : Systèmes linéaires
2 Chapitre 2 Zéros de fonctions non-linéaires.
3 Chapitre 3 Approximation polynômiale.
4 Chapitre 4 Intégration numérique.

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Introduction

Système Linéaire
On appelle système linéaire d'ordre n (n entier positif), une expression de
la forme
Ax = b;
où A = (aij ), 1 ≤ i; j ≤ n, désigne une matrice de taille n × n de
nombres réels ou complexes, b = (bi ),1 ≤ i ≤ n, un vecteur colonne réel
ou complexe et x = (xi ),1 ≤ i ≤ n, est le vecteur des inconnues du
système. La relation précédente équivaut aux équations
n
X
aij xj = bi; i = 1; . . . ; n
j=1

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Introduction
Système Linéaire
La matrice A est dite régulière (ou non singulière) si detA 6= 0 ; on a
existence et unicité de la solution x (pour n'importe quel vecteur b donné)
si et seulement si la matrice associée au système linéaire est régulière.
Théoriquement, si A est non singulière, la solution est donnée par la
formule de Cramer :
det(Ai)
xi = ; i = 1; . . . ; n,
detA
où Ai est la matrice obtenue en replaçant la i-ème colonne de A par le
vecteur b. Cependant l'application de cette formule est inacceptable pour
la résolution pratique des systèmes, car son coût est de l'ordre de (n + 1)!
"oating-point operations" (ops).

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Méthode A = LU
Pour résoudre Ax = b, on cherche à écrire A = LU où
1 L est une matrice triangulaire inférieure avec des 1 sur la diagonale,
2 U est une matrice triangulaire supérieure.
La résolution de Ax = b est alors ramenée aux résolutions successives des
systèmes échelonnés Ly = b et U x = y .

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Résolution des systèmes triangulaires.

Dénition 2.1
Une matrice A = (aij ) est triangulaire supérieure si

aij = 0, ∀i, j tel que 1 ≤ j < i ≤ n

et triangulaire inférieure si

aij = 0, ∀i, j tel que 1 ≤ i < j ≤ n

Suivant ces cas, le système à résoudre est dit système triangulaire


supérieur ou inférieur.

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Résolution des systèmes triangulaires.
Si la matrice
QnA est régulière et triangulaire alors, comme
det(A) = i=1 aii , on en déduit que aii 6= 0, pour tout i = 1, . . . , n.
Si A est triangulaire inférieure on a
x1 = b1 /a11 ;

et pour i = 2, 3, . . . , n
 
i−1
1  X
xi = bi − aij xj 
aii j=1

Cet algorithme est appelé méthode de descente.

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Résolution des systèmes triangulaires.
Si A est triangulaire supérieure on a
xn = bn /ann ;

et pour i = n − 1, n − 2, . . . , 2, 1
 
n
1  X
xi = bi − aij xj 
aii j=i+1

Cet algorithme est appelé méthode de remontée.


Le nombre de multiplications et de divisions nécessaires dans cet
algorithme est de n(n + 1)/2 et le nombre d'additions et de soustraction
est de n(n − 1)/2, donc l'algorithme nécessite de n2 ops.

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Factorisation LU.
C'est la méthode la plus préférée pour la résolution de systèmes linéaires
comportant une matrice A dense, sans structure et sans quantication
particulière.
On vient de voir qu'il est très simple de résoudre des systèmes
triangulaires. La transformation du système original en un système
triangulaire se fait en choisissant des combinaisons linéaires appropriées
des équations du système.

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Factorisation LU.
Exemple 1 Soit le système

3x1 + 5x2 = 9
6x1 + 7x2 = 4

si l'on multiplie la première équation par 2 et que l'on la soustrait de la


deuxième on obtient

3x1 + 5x2 = 9
− 3x2 = −14

Cette procédure s'appelle élimination de Gauss . Dans la suite on


donnera à ce procédé une formulation matricielle, notamment en termes
de factorisation d'une matrice. On présentera un algorithme qui factorise
une matrice donnée A en une matrice triangulaire inférieure L et une
matrice triangulaire supérieure U , tel que A = LU .
M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Méthode d'élimination de Gauss et décomposition LU.
Exemple 2 Pour la matrice A correspondant à l'exemple précédent la
factorisation A = LU est :
    
3 5 1 0 3 5
=
6 7 2 1 0 −3

La solution du système original Ax = b est alors obtenue en résolvant


deux systèmes triangulaires successivement. On remplace A par sa
factorisation
Ax = LU x = Ly = b
et l'on cherche la solution y à partir du système triangulaire inférieur
Ly = b, puis la solution de x à partir du système triangulaire supérieur
U x = y.

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Formalisation de l'élimination de Gauss.


il s'agit de formaliser une procédure qui transforme une matrice en une
matrice triangulaire supérieure en éliminant, colonne après colonne, les
éléments non nuls en dessous de la diagonale comme illustré dans
l'exemple suivant. Soit la matrice
 
1 4 7
A= 2 5 8 
3 6 10

que l'on veut transformer en une matrice triangulaire supérieure. On


obtient cette forme en deux étapes.

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Formalisation de l'élimination de Gauss.


Lors de la première étape on soustrait 2 fois la première ligne de la
deuxième ligne et 3 fois la première ligne de la troisième ligne, ce qui
peut être
 obtenu, en  multipliant la matrice donnée par la matrice
1 0 0
L1 =  −2 1 0  pour obtenir
−3 0 1
    
1 0 0 1 4 7 1 4 7
 −2 1 0  2 5 8 = 0 −3 −6 
−3 0 1 3 6 10 0 −6 −11

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Formalisation de l'élimination de Gauss.


Lors de la deuxième étape on transforme cette nouvelle matrice en
soustrayant 2 fois la deuxième ligne de la troisième ligne ce qui peut être
obtenu,
 en multipliant
 la matrice donnée par la matrice
1 0 0
L2  0 1 0  pour obtenir
0 −2 1
    
1 0 0 1 4 7 1 4 7
 0 1 0  0 −3 −6  =  0 −3 −6 
0 −2 1 0 −6 −11 0 0 1

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Formalisation de l'élimination de Gauss.


Procédés LU
Nous pouvons résumé le procédé de factorisation comme suit,
     
1 0 0 1 0 0 1 4 7 1 4 7
 0 1 0   −2 1 0  2 5 8 = 0 −3 −6 
0 −2 1 −3 0 1 3 6 10 0 0 1

On a alors
L2 L1 A = U ⇒ A = (L2 L1 )−1 U = L−1 −1
1 L2 U = LU

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Formalisation de l'élimination de Gauss.
Procédés LU
Or    
1 0 0 1 0 0
L1 =  −2 1 0  ⇒ L−1
1 =
 2 1 0 
−3 0 1 3 0 1
et    
1 0 0 1 0 0
L2 =  0 1 0  ⇒ L−1
2 =  0 1 0 
0 −2 1 0 2 1
En eet ;
    
1 0 0 1 0 0 1 0 0
 −2 1 0  2 1 0 = 0 1 0 
−3 0 1 3 0 1 0 0 1

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Formalisation de l'élimination de Gauss.


Procédés LU
De plus,
    
1 0 0 1 0 0 1 0 0
L = L−1 −1
1 L2 = 2 1 0  0 1 0 = 2 1 0 
3 0 1 0 2 1 3 2 1

Nous avons donc factoriser A en LU par


    
1 4 7 1 0 0 1 4 7
A= 2 5 8 = 2 1 0  0 −3 −6 
3 6 10 3 2 1 0 0 1

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Résolution du système
 
1
Résolvons maintenant le système Ax =  3 . On commence par
  6
1
résoudre le système Ly =  3 . Comme L est triangulaire inférieur,
6
on utilise la méthode de la descente, ainsi,
 
 y1 = 1  y1 = 1
y2 = 3 − 2y1 ⇒ y2 = 1
y3 = 6 − 3y1 − 2y2 y3 = 1
 

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Résolution du système
 
1
nous terminerons par résoudre le système U x =  1 . Comme U est
1
triangulaire supérieur, on utilise la méthode de la remonté, ainsi,

x3 = 1
 10
 x1 = 3
 

 1 7 
x2 = (1 + 6x3 ) = − ⇒ 7
−3 3 x2 = −
 x = 1 − 7x − 4x = 10 3

 


1 3 2
3 x3 = 1

On a bien,  10 
   
1 4 7  3  1
 2 5 8  7 = 3 
 − 
3 6 10 3 6
1
M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Exemple 1. n=4.
 
−2 1 −1 1
 2 0 4 −3 
Soit la matrice A = 
 −4
, alors on a
−1 −12 9 
−2 1 1 −4

1 0 0 0
 1 1 0 0
successivement, L1 =  ,

 −2 0 1 0 
−1 0 0 1
   
−2 1 −1 1 1 0 0 0
 0 1 3 −2  0
 , L2 = 
 1 0 0 
,
A(1) = L1 A =  0 −3 −10 7   0 3 1 0 
0 0 2 −5 0 0 0 1
 
−2 1 −1 1
 0 1 3 −2 
A(2) = L2 A(1) = L2 L1 A =  
 0 0 −1 1 
0 0
M. MOUSSA
2 −5
An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes
Exemple 1. n=4.
 
1 0 0 0
 0 1 0 0 
Finalement L3 = 
 0
, par suite
0 1 0 
0 0 2 1 
−2 1 −1 1
 0 1 3 −2 
, et
U = M3 A(2) = L3 L2 L1 A = 
 0 0 1 1 
0 0 0 −3
 
1 0 0 0
 −1 1 0 0 
L= .
 2 −3 1 0 
1 0 −2 1

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Exemple 1. n=4.
C'est à dire
  
1 0 0 0 −2 1 −1 1
 −1 1 0 0   0 1 3 −2 
A = LU =   
 2 −3 1 0  0 0 1 1 
1 0 −2 1 0 0 0 −3

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes

Méthode d'élimination de Gauss et décomposition LU.


Le coût de cette méthode de factorisation est de l'ordre de 2n3 /3 ops.
En fait, pour passer de A(k) à A(k + 1) on modie tous les éléments de
A(k) sauf les premières k lignes et les premières k colonnes, qui ne
changent pas ; pour chaque élément de A(k+1) il faut faire une
multiplication et une soustraction ; on a donc 2(n − k)2 opérations à
faire. Au total, pour fabriquer A(n) il faut
n−1 n−1
X X n(n + 1)(2n + 1) 2n3
2(n − k)2 = 2j 2 = 2 ∼
6 3
k=1 k=1

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Condition D'existence
Proposition 2.1
La factorisation LU de la matrice carrée A de taille n par la méthode de
Gauss existe si et seulement si les sous-matrices principales Ai = (ahk ),
h, k = 1, . . . , i sont non-singulières. Cette propriété est satisfaite en
particulier dans les cas qui suivent :
1 A est une matrice symétrique dénie positive ;
2 A est une matrice à diagonale dominante stricte par lignes,
c'est-à-dire pour tout i = 1, . . . , n
n
X
|aii | > |aij |
j=1,j6=i

3 A est une matrice à diagonale dominante stricte par colonnes,


c'est-à-dire pour tout i = 1, . . . , n
n
X
|ajj | > |aij |
M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes : Décomposition de Cholesky

Décomposition de Choleski RRT .


Soit A une matrice qui admet une décomposition en LU , si en plus, A
est symétrique, c'est à dire A = AT et uii > 0, pour tout 1 ≤ i ≤ n, on
peut écrire la matrice A sous la forme A = LDDT M où D est la matrice
diagonale avec d2ii = uii et M est la matrice triangulaire supérieure dont
les mii = 1 et mij = uij , pour j 6= i. On a alors décomposer A sous la
forme a = RRT car dans ce cas M T = L avec R = LD

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes : Décomposition de Cholesky


Décomposition de Choleski : Algorithme.
Étudions l'exemple suivant,
 
1 2 3
A= 2 5 10 
3 10 26

Comme A = RRT , on a alors


  
r11 0 0 r11 r21 r31
A =  r21 r22 0  0 r22 r32 
r31 r32 r33 0 0 r33
2
 
r11 r11 r21 r11 r31
2 2
A =  r11 r21 r11 + r22 r21 r31 + r22 r32 
2 2 2
r11 r31 r21 r31 + r22 r32 r31 + r32 + r33

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes directes : Décomposition de Cholesky


Décomposition de Choleski : Algorithme.
On obtient alors le système échelonné suivant,
 2 

 r11 = 1 
 r11 = 1
r11 r21 = 2 r21 = 2

 


 

r11 r31 = 3 r31 = 3
 
2 2 ⇒

 r21 + r22 = 5 
 r22 = 1
r21 r31 + r22 r32 = 10 r32 = 4

 


 

 2 2 2
r31 + r22 + r33 = 26 r33 = 1

Finalement on a bien,
    
1 2 3 1 2 3 1 0 0
A= 2 5 10  =  0 1 4  2 1 0 
3 10 26 0 0 1 3 4 1

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes Itératives : Méthode de Jacobi


Exemple.
Pour résoudre le système Ax = b, parfois on préfère utiliser des méthodes
itératives (d'approximation) qui consistent à approcher la solution et non
pas de trouver la solution exacte, pour cela on écrit la matrice de la
manière suivante : A = G − H avec G inversible. Le système devient
alors, Ax = b ⇔ Gx = Hx + b ⇔ x = M x + b0 où M = G−1 H et
b0 = G−1 b on est ramené à un problème de point xe. On dénit alors la
suite récurrente xk+1 = M xk + b0 avec x0 choisi de façon arbitraire. Si la
suite converge, la limite est la solution du système.
Dans la pratique, il faudra décomposer A = G − H de façon que la suite
soit convergente et que G−1 se déduisent facilement de G ou plus
simplement que le système Gxk+1 = Hxk + b se résolve simplement. On
choisira pour G une matrice diagonale (Jacobi) ou triangulaire inférieure
Gauss-Seidel

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes Itératives : Méthode de Jacobi


Algorithme de Jacobi
On écrit A = D − E − F où D est la partie diagonale de A, E (resp. F )
la partie triangulaire inférieure (resp. supérieure) de A. On suppose que
tous les aii sont non nuls, donc D est inversible, on choisit G = D et
H = E + F . On a alors alors
M = D−1 (E + F ) = D−1 (D − A) = I − D−1 A. Le calcul eectif se fait
en résolvant directement le système
Dxk+1 = (E + F )xk + b

Soit,
j=n
X
bi − aij xkj
j=1, j6=i
xk+1
i =
aii

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes itératives : Méthode de Jacobi


Exemple.
Soit à résoudre le système suivant,

 3x1 + x2 − x3 = 2
x1 + 5x2 + 2x3 = 17
2x1 − x2 − 6x3 = −18

La matrice est à diagonale strictement dominante donc, la méthode de


Jacobi converge vers la solution du système. Suivant la formule décrite
précédemment, la méthode de Jacobi s'écrit dans ce cas pour la première
itération à partir d'un vecteur x(0) = (0, 0, 0)T : Première itération
donne :
1 2


 x11 = (2 − 0 + 0) =

 3 3
1 17

x12 = (17 − 0 − 0) =
 5 5


 x13 1
= − (−18 − 0 + 0) = 3

6
M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes itératives : Méthode de Jacobi

Exemple
La deuxième itération donne :
1 8

2 − 17


 x21 = 5 +3 =

 3 15
1 31

17 − 23 − 2 × 3

x22 = =
 5 15
 1 239
− −18 − 2 × 23 + 17
 
 x23

= =
6 5 90

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Exemple Suite .....


On continue à itérer jusqu'à l'estimation souhaité, par exemple si on
demande à s'arrêter une fois |x −x | < 10−2 on s'arrêtera à la 10 ème
k+1 k

itération (voir tableau ci-dessous) : la solution exacte est (1, 2, 3)


k xk1 xk2 xk3
0 0 0 0
1 0.66667 3.40000 3.00000
2 0.53333 2.06667 2.65556
3 0.86296 2.23111 2.83333
4 0.86741 2.09407 2.91580
5 0.94057 2.06020 2.94012
6 0.95997 2.03583 2.97016
7 0.97811 2.01994 2.98069
8 0.98691 2.01210 2.98938
9 0.99242 2.00686 2.99362
10 0.99558 2.00407 2.99633

M. MOUSSA An-Num-S3
Introduction
Méthodes directes
Méthodes Itératives

Méthodes Itératives : Méthode de Gauss-Seidel

Algorithme de Gauss-Seidel
On écrit A = D + E − F où D est la partie diagonale de A, E (resp. F )
la partie triangulaire inférieure (resp. supérieure) de A. On suppose que
D + E est inversible, on choisit G = D + E et H = F . On a alors alors.
Le calcul eectif se fait en résolvant directement le système
(D + E)xk+1 = F xk + b

Soit, X X
bi − aij xk+1
j − aij xkj
1≤j≤k k+1≤j≤n
xk+1
i =
aii

M. MOUSSA An-Num-S3

Vous aimerez peut-être aussi