Cours D'analyse Numérique 1 (Niveau 3)

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 56

Licence de mathématiques/Élèves ingénieurs en 3ème année

Cours d'analyse numérique I

Eric Ngondiep, PhD


(Mathématiques appliquées/Analyse numérique)
Email: [email protected], [email protected]

Institut de Recherches Géologiques et Minières

Année 2015


c Eric Ngondiep, 2015
Contents

1 Les méthodes de factorisation LU, Choleski et PLU 4


1.1 Quelques rappels d'algèbre linéaire . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Méthodes directes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Méthode de Gauss, méthode LU . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Méthode de Choleski . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 Méthodes itératives pour résolution des systèmes d'équations linéaires 23
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Dénitions et Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Quelques exemples de méthodes itératives . . . . . . . . . . . . . . . . . . . 26
2.3.1 Méthode de Richarson . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.2 Méthode de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.3 Méthode de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.4 Méthodes SOR et SSOR . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.5 Méthodes par blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Méthodes de résolution des équations et systèmes d'équations nonlinéaires 35
3.1 Les méthodes de point xe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.1 Point xe de contraction . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.2 Point xe de monotonie . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Vitesse de convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 Méthode de Newton dans R . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4 Dérivation numérique en dimensions un et deux et introduction aux méth-
odes des diérences nies 46
4.1 Principe d'ordre de précision . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 Notation indicielle: cas 1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3 Schéma d'ordre supérieur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4 Dérivée d'ordre supérieur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.5 Généralisation de la notation indicielle . . . . . . . . . . . . . . . . . . . . . 48
4.6 Quelques schémas en 1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.7 Dérivées croisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.8 Exemple simple 1D avec conditions de Dirichlet . . . . . . . . . . . . . . . . 50
4.9 Exemple simple 1D avec conditions mixtes Dirichlet-Neumann . . . . . . . . 50
4.10 Discrétisation de l'équation de la chaleur 1D . . . . . . . . . . . . . . . . . . 51
4.10.1 Schéma explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.10.2 Schéma implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.11 Discrétisation de l'équation de la chaleur 2D stationnaire . . . . . . . . . . . 53
4.12 Consistence, convergence et stabilité . . . . . . . . . . . . . . . . . . . . . . 55

1
Introduction
Les mathématiques appliquées et le calcul scientique jouent un rôle croissant dans la con-
ception des produits industriels; ce n'est cependant qu'un maillon d'une longue chaîne qui
mobilise des ressources intellectuelles nombreuses et variées pour arriver à concevoir, au
mieux dans des délais impartis le produit désiré. On peut représenter très schématiquement
un processus d'étude et de conception par le diagramme suivant:
• Physique mécanique, modélisation mécanique (aérodynamique, thermique, structure,...)
• Modélisation mathématique (E.D.P.)
• Approximation: Eléments nis, volumes nis...
• Algorithme numérique, méthodes numériques pour la résolution de systèmes linéaires
et non linéaires, optimisation
• Calcul informatique...
• Expérimentation
• Exploitation des produits
La modélisation et l'approximation numérique voient leurs applications dans diérents do-
maines, à titre d'exemples:
• Conception d'avions (aérodynamique, matériaux composites ...)
• Conception de voitures (aérodynamique, écoulement dans les moteurs, crache tests,
commande optimale, structure (pneus, carrosserie, )...
• Ingénierie pétrolière: comprendre la migration des hydrocarbures, améliorer la produc-
tion des gisements pétroliers,...
• Biologie mathématique: propagation d'épidémie, modèle mathématique en cardiologie,
cancer, tissus dentaire, pneumologie,...
• Gestion des stocks, nance, trac routier
• Environnement: pollution air, eau, sol
• Météo: modéliser le monde
• Et bien d'autres applications...
Dans ce cours, nous nous intéressons à l'analyse numérique; cette discipline elle-même
peut être considérée comme partagée en deux grands thèmes:
• Approximation numérique des EDP (Eléments nis, volumes nis, méthodes spec-
trales,...)
• Algorithmes numériques: résolution de grands systèmes linéaires creux, intégration
numérique, résolution numérique des EDO, optimisation.

2
L'objet de ce cours est de d'étudier des méthodes pour calcul de la valeur numérique (exacte
ou approchée) de la solution d'une équation ou d'un système d'équations; en particulier à
l'aide d'un ordinateur.
Le cours est structuré en quatre grands chapitres:
1. Les méthodes de factorisation LU, Choleski et PLU
2. Méthodes itératives pour résolution des grands systèmes linéaires
3. Méthodes de résolution des équations et systèmes d'équations nonlinéaires
4. Dérivation numérique en dimensions un et deux et introduction aux méthodes des dif-
férences nies

Bibiographie
• A. Quarteroni, R. Sacco et F. Saleri, Méthodes Numériques : Algorithmes, Analyse et
Applications, Springer 2006.
• P.G. Ciarlet, Introduction à l'analyse numérique et à l'optimisation, Masson, 1982,
(pour les chapitre 1 à 3 de ce polycopié).
• M. Crouzeix, A.L. Mignot, Analyse numérique des équations diérentielles, Collection
mathématiques appliquées pour la maitrise, Masson, (pour le chapitre 4 de ce poly-
copié).
• E. Ngondiep, S. S. Capizzano, Approximation and spectral analysis for large structured
linear systems, Lap Lambert Academic Publishing, 2011 (pour les chapitres 5 et 6 de
ce livre).
• P. Lascaux et R. Théodor, Analyse numérique matricielle appliquée à l'art de l'ingénieur,
tomes 1 et 2, Masson, 1987.
• L. Sainsaulieu, Calcul scientique cours et exercices corrigés pour le 2ème cycle et les
écoles d'ingénieurs, Enseignement des mathématiques, Masson, 1996.
• P. Lascaux et R. Theodor, Analyse numérique appliquée aux sciences de l'ingénieur,
Paris, (1994).
• G. Golub and C. Van Loan, Matrix computations, The John Hopkins University Press,
Baltimore (chapitre 1).
• R.S. Varga, Matrix iterative analysis, Prentice Hall, Englewood Clis, NJ 1962.

3
Chapter 1
Les méthodes de factorisation LU,
Choleski et PLU
1.1 Quelques rappels d'algèbre linéaire
Cette section rappelle des notions fondamentales que vous devriez connaître à l'issue du
cours d'algèbre linéaire de première année. On va commencer par revisiter le produit ma-
triciel, dont la vision combinaison linéaire de lignes est fondamentale pour bien comprendre
la forme matricielle de la procédure d'élimination de Gauss.
Soient A et B deux matrices carrées d'ordre n, et M = AB. On note aij , bij et mij ,
i, j = 1, ..., n les coecients respectifs de A, B et M. Vous savez bien sûr que
n
(1.1)
X
mij = aik bkj .
k=1

Si on écrit les matrices A et B sous forme de lignes (notées li ) et colonnes (notées cj ):


 
l1 (A)
A =  ...  et B = [c1 (B), . . . , cn (B)] .
ln (A)
L'expression (1.1) s'écrit encore
mij = li (A)cj (B),
qui est le produit d'une matrice 1 × n par une matrice n × 1, qu'on peut aussi écrire sous
forme d'un produit scalaire:
mij = (li (A))t · cj (B),
où (li (A))t désigne la matrice transposée, qui est donc maintenant une matrice n × 1 qu'on
peut identier à un vecteur de Rn . C'est la technique "habituelle" de calcul du produit de
deux matrices. Mais de l'expression (1.1), on peut aussi avoir l'expression des lignes et des
colonnes de M = AB en fonction des lignes de B ou des colonnes de A :
n
(1.2)
X
li (AB) = aik lk (B),
k=1

n
(1.3)
X
cj (AB) = bkj ck (A),
k=1

ce qui montre que la ligne 1 de AB est combinaison linéaire des lignes de B. Les colonnes
de AB, par contre, sont des combinaisons linéaires des colonnes de A.

4
Remark 1.1.1. Dans un produit matriciel AB, les colonnes de AB sont des combinaisons
linéaires des colonnes de A, les lignes de AB sont des combinaisons linéaires des lignes de
B.
Denition 1.1.1. (Pivot). Soit A ∈ Mn (R) une matrice carrée d'ordre n. On appelle pivot
de A le premier élement non nul de chaque ligne dans la forme échélonnée de A obtenue par
élimination de Gauss. Si la matrice est inversible, elle a donc n pivots (non nuls).
Denition 1.1.2. (Valeurs propres). Soit A ∈ Mn (R) une matrice carrée d'ordre n. On
appelle valeur propre de A tout λ ∈ C tel qu'il existe x ∈ Cn , x 6= 0, satisfaisant Ax = λx.
L'élement x est appelé vecteur propre de A associé à λ.
Denition 1.1.3. (Déterminant). Il existe une unique application notée det de A ∈ Mn (R)
dans R vérie les propriétés suivantes
(D1) Le déterminant de la matrice identité est égal à 1.
(D2) Si la matrice Ae est obtenue à partir de A par échange de deux lignes, alors det(A)
e =
− det(A).
(D3) Le déterminant est une fonction linéaire de chacune des lignes de la matrice A.
(D3a) (multiplication par un scalaire) si Ae est obtenue à partir de A en multipliant
tous les coecients d'une ligne par λ ∈ R, alors det(A)
e = λ det(A).
   

l1 (A)
 l1 (A) l1 (A)
 ...   ...   ..
. 
(D3b) (addition) si A = lk (A) , A = 
 e   , et B = l (A) + e  , alors
   
l (A) l (A)
 ..  k k k
e
 ..  .
..
   
. .
 
ln (A) ln (A) ln (A)

det(B) = det(A) + det(A).


e

On peut déduire de ces trois propriétés fondamentales un grand nombre de propriétés im-
portantes, en particulier le fait que det(AB) = det(A) det(B) et que le déterminant d'une
matrice inversible est le produit des pivots: c'est de cette manière qu'on le calcule sur les
ordinateurs. En particulier on n'utilise jamais la formule de Cramer. En eet, cette formule
est beaucoup trop coûteuse en termes de nombre d'opérations.
Denition 1.1.4. (Matrice diagonalisable dans R). Soit A une matrice réelle carrée d'ordre
n. On dit que A est diagonalisable dans R s'il existe une base (u1 , ..., un ) de Rn et des réels
λ1 , ..., λn (pas forcement distincts) tels que Auj = λj uj pour j = 1, ..., n. Les reels λ1 , ..., λn
sont les valeurs propres de A, et les vecteurs (u1 , ..., un ) sont les vecteurs propres associés.
Remark 1.1.2. Une matrice réelle carrée d'ordre n admet toujours n valeurs propres dans
C, qui ne sont pas forcément identiques. Une matrice est diagonalisable dans C s'il existe une
base (u1 , ..., un ) de Cn et des nombres complexes λ1 , ..., λn (pas forcément distincts) tels que
Auj = λj uj pour j = 1, ..., n. Ceci est vérie si la dimension de chaque sous espace propre
Ej = Ker(A − λj Id) (appelée multiplicité géométrique) est égale à la multiplicité algèbrique
de λj i.e., son ordre de multiplicité en tant que racine du polynôme caractéristique.
Lemma 1.1.1. Soit A une matrice réelle carrée d'ordre n, diagonalisable dans R. Alors
A = P diag(λ1 , ..., λn )P −1 ,
où P est la matrice dont les vecteurs colonnes sont égaux aux vecteurs propres u1 , ..., un
associees aux valeurs propres λ1 , ..., λn .

5
Proof. Par dénition d'un vecteur propre, on a Auj = λj uj , pour j = 1, ..., n, et donc, en
notant P la matrice dont les colonnes sont les vecteurs propres uj ,
[Au1 . . . Aun ] = A[u1 . . . un ] = AP,

et donc
λ1 0 . . . 0
 
 0 λ2 . . . .. 
AP = [λ1 u1 . . . λn un ] = [u1 . . . un ]  . . .  = P diag(λ1 , ..., λn ).
.. ... .. 0
0 ... 0 λn
Notons que dans ce calcul, on a fortement utilisé la multiplication des matrices par colonnes,
i.e.,
n
X
ci (AB) = aik ck (B).
k=1

Remarquons que P est aussi la matrice dénie (de manière unique) par P ej = uj , où (ej )
j = 1, ..., n est la base canonique de Rn , c'est-à-dire, (ej )k = δjk . La matrice P est appelée
matrice de passage de la base (ej ), j = 1, ..., n à la base (uj ), j = 1, ..., n; (il est bien clair que
la i-ème colonne de P est constituée des composantes de uj dans la base canonique (e1 , ..., en ).
La matrice P est inversible car les vecteurs propres forment une base, et on peut donc
aussi écrire:
P −1 AP = diag(λ1 , ..., λn ) ou A = P diag(λ1 , ..., λn )P −1 .

Lemma 1.1.2. (Une matrice symetrique est diagonalisable dans R). Soit E un espace vec-
toriel sur R de dimension nie: dimE = n, n ∈ N∗ , muni d'un produit scalaire i.e. d'une
application
E × E → R,
(x, y) 7→ (x|y)E ,
qui vérie
∀x ∈ E , (x|x)E ≥ 0 et (x|x)E = 0 ⇔ x = 0,
∀(x, y) ∈ E 2 , (x|y)E = (y|x)E ,
∀y ∈ E , l'application de E dans R, dénie par x 7→ (x|y)E est linéaire .

Ce produit scalaire induit une norme sur E notée: kxk = (x|x)E .


p
Soit T une application linéaire de E dans E. On suppose que T est symétrique, i.e.,
(T (x)|y)E = (x|T (y))E , ∀(x, y) ∈ E 2 . Alors il existe une base orthonormée f1 , ..., fn de E,
c.a.d., (fj , fk )E = δjk ) et (λ1 , ..., λn ) ∈ Rn tels que T (fj ) = λj fj pour tout j ∈ {1, ..., n}.
Consequence immediate: Dans le cas où E = Rn , le produit scalaire canonique de
n
x = (x1 , ..., xn )t et y = (y1 , ..., yn )t est déni par (x|y)E = x · y = xi yi . Si A ∈ Mn (R) est
P
i=1
une matrice symétrique, alors l'application T dénie de E dans E par: T (x) := T x = Ax
est linéaire et (T x|y) = Ax · y = x · At y = x · Ay = (x|T y). Donc T est linéaire symétrique.
Par le lemme 1.1.1, il existe des vecteurs f1 , ..., fn ∈ E et des réels λ1 , ..., λn ∈ R tels que
T fi = Afi = λi fi , ∀i ∈ {1, ..., n} et fi · fj = δij , ∀(i, j) ∈ {1, ..., n}2 .
Interpretation algebrique: Il existe une matrice de passage P de (e1 , ..., en ) base canon-
ique de E dans (f1 , ..., fn ) base orthonormée de E dont la première colonne de P est constituée
des coordonnées de fi dans (e1 , ..., en ). On a: P ei = fi . On a alors P −1 AP ei = P −1 Afi =

6
P −1 (λi fi ) = λi ei = diag(λ1 , ..., λn )ei , où diag(λ1 , ..., λn ) désigne la matrice diagonale de
coecients diagonaux λ1 , ..., λn . On a donc:
λ1 0
" #
−1
P AP = ... =D
0 λn
De plus P est orthogonale, i.e., P −1 = P t . En eet, P t P ei · ej = P ei · P ej = (fi |fj ) = δij ,
∀(i, j) ∈ {1, ..., n}2 , et donc (P t P ei − ei ) · ej = 0, ∀j ∈ {1, ..., n}, ∀i ∈ {1, ..., n}. On en déduit
que P t P ei = ei , pour tout i = 1, ..., n, i.e., P t P = P P t = Id.

1.2 Méthodes directes


Denition 1.2.1. (Méthode directe). Soit A ∈ Mn (R) une matrice carrée d'ordre n et b ∈ Rn
un vecteur de longueur n. On appelle méthode directe de résolution du système d'équations
linéaires
x ∈ Rn ,

(1.4)
Ax = b,

une méthode qui donne exactement x (A et b étant connus) solution de (1.4) après un nombre
ni d'opérations élémentaires (+, −, ×, /).
Remark 1.2.1. Parmi les méthodes de résolution du système (1.4), la plus connue est la
méthode de Gauss (avec pivot), encore appelée méthode d'échelonnement ou méthode LU
dans sa forme matricielle.

1.2.1 Méthode de Gauss, méthode LU


Soit A ∈ Mn (R) une matrice inversible et b ∈ Rn un vecteur. On cherche a calculer b ∈ Rn tel
que Ax = b. Le principe de la méthode de Gauss est de se ramener, par des opérations simples
(combinaisons linéaires), à un système triangulaire équivalent, qui sera donc facile a inverser.
Commencons par un exemple simple pour une matrice carrée d'ordre 3, puis décrivons
ensuite la méthode pour une matrice n × n.
Example 1.2.1. On considère le système Ax = b, avec
  

1 0 1 2
A = 0 2 −1 et b= 1 .
−1 1 −2 −2
On écrit la matrice augmentée, constituée de la matrice A et du second membre b.
 
1 0 1 2
e = [A b] = 0 2 −1 1 .
A
−1 1 −2 −2
Gauss et opérations matricielles. Allons y pour Gauss: La première ligne a un 1 en
première position (en gras dans la matrice), ce coecient est non nul, et c'est un pivot. On
va pouvoir diviser toute la première ligne par ce nombre pour en soustraire un multiple à
toutes les lignes d'après, dans le but de faire apparaître des 0 dans tout le bas de la colonne.
La deuxième équation a déjè un 0 dessous, donc on n'a rien besoin de faire. On veut ensuite
annuler le premier coecient de la troisième ligne. On retranche donc (+1) fois la première
ligne à la troisième[3] :

1 0 1

2 l3 ←l3 +1×l1

1 0 1 2

0 2 −1 1 → 0 2 −1 1 .
−1 1 −2 −2 0 1 −1 0

7
 
1 0 0
Ceci revient à multiplier A à gauche par la matrice E1 = 0 1 0 .
e
1 0 1
La deuxième ligne a un terme non nul en deuxième position (2): c'est un pivot. On va
maintenant annuler le deuxième terme de la troisième ligne; pour cela, on retranche 1/2 fois
la ligne 2 à la ligne 3:
" #
1 1 1 2 l3 ←l3 − 21 l2 1 0 1 2
 
0 2 −1 1 → 0 2 −1 1 .
0 1 −1 0 0 0 −12
−1
2
" #
1 0 0
Ceci revient à multiplier Ae à gauche par la matrice élémentaire E2 = 0 1
−1
0 . On a ici
0 2
1
obtenu une matrice sous forme triangulaire supérieure à trois pivots: on peut donc faire la
remontée pour obtenir la solution du système, et on obtient (en notant xi les composantes
de x): x3 = 1, puis x2 = 1 et enn x1 = 1. On a ainsi résolu le système linéaire.
On rappelle que le fait de travailler sur la matrice augmentée est extrêmement pratique car
il permet de travailler simultanément sur les coecients du système linéaire et sur le second
membre.
Finalement, au moyen des opérations décrites ci-dessus, on a transformé le système linéaire
Ax = b en U x = E2 E1 b, où U = E2 E1 A
est une matrice triangulaire supérieure.
Factorisation LU. Tout va donc très bien pour ce système, mais supposons maintenant
qu'on ait à résoudre 3089 systèmes, avec la même matrice A mais 3089 seconds membres
b diérents 4. Il serait un peu dommage de recommencer les opérations ci-dessus 3089 fois,
alors qu'on peut en éviter une bonne partie. Comment faire? L'idée est de "factoriser" la
matrice A, i.e., de l'écrire comme un produit A = LU, où L est triangulaire inférieure
(lower triangular) et U triangulaire supérieure (upper triangular). On reformule alors le
système Ax = b sous la forme LU x = b et on considère maintenant deux systèmes faciles
à résoudre car triangulaires: Ly = b et U x = y. La factorisation LU de la matrice découle
immédiatement de l'algorithme de Gauss. Voyons comment sur l'exemple précédent.
1. On remarque que U = E2 E1 A peut aussi s'écrire A = LU, avec L = (E2 E1 )−1 .
2. On sait que (E2 E1 )−1 = (E1 )−1 (E2 )−1 .
3. Les matrices inverses E1−1 et E2−1 sont faciles à déterminer: comme E2 consiste à re-
trancher 1/2 fois la ligne 2 à la ligne 3, l'opération inverse consiste à ajouter 1/2 fois
la ligne 2 à la ligne 3, et donc
" #
1 0 0
−1
E2 = 0 11 0 .
0 2 1
" #

1 0 0
 1 0 0
Il est facile de voir que E1−1 = 0 1 0 et donc L = E1 E2 = 0 11 0 .
−1 −1
−1 0 1 −1 2 1
La matrice L est une matrice triangulaire inférieure (et c'est d'ailleurs pour cela qu'on
l'appelle L, pour "lower" in English...) dont les coecients sont particulièrement sim-
ples à trouver: les termes diagonaux sont tous égaux à un, et chaque terme non nul
sous-diagonal li,j est égal au coecient par lequel on a multiplié la ligne pivot i avant
de la retrancher à la ligne j.
4. Il est facile d'observer que A = LU où L triangulaire inférieure (lower triangular) et U
triangulaire supérieure (upper triangular).

8
 (1) (1)

a1,1 ... ... ... ... ... ... a1,N
... ..
.
 
 0
 . ... ... ..

 .. .


 . ..
 . ... ... 
 . . 
A(i+1) =  .. ..

 . (i+1)
.

0 ai+1,i+1 
 . .. ..
 . ... 
 . . .
(i+1)
ai+2,i+1

 . .. .. ... ..

 .. . . .


(i+1) (i+1)
0 ... ... 0 aN,i+1 . . . . . . aN,N

Figure 1: Allure de la matrice de Gauss à l'étape i + 1.


Remark 1.2.2. La procédure qu'on vient d'expliquer s'appelle méthode LU pour la réso-
lution des systèmes linéaires, et elle est d'une importance considérable dans les sciences de
l'ingénieur, puisqu'elle est utilisée dans les programmes informatiques pour la résolution des
systèmes linéaires.
Le cas général d'une matrice n × n
De manière plus générale, pour une matrice A carrée d'ordre n, la méthode de Gauss s'écrit:
On pose A(1) = A et b(1) = b. Pour i = 1, ..., n − 1, on cherche à calculer A(i+1) et b(i+1) tels
que les systèmes A(i) x = b(i) et A(i+1) x = b(i+1) soient équivalents, où A(i+1) est une matrice
dont les coecients sous-diagonaux des colonnes 1 à i sont tous nuls, voir gure 1.
Une fois la matrice A(n) (triangulaire supérieure) et le vecteur b(n) calculés, il sera facile de
résoudre le système A(n) x = b(n) . Le calcul de A(n) est l'étape de "factorisation", le calcul
de b(n) l'étape de "descente", et le calcul de x l'étape de "remontée". Donnons les détails de
ces trois étapes.
Etape de factorisation et descente. Pour passer de la matrice A(i) à la matrice A(i+1) , on
va eectuer des combinaisons linéaires entre lignes qui permettront d'annuler les coecients
de la i-ème colonne situés en dessous de la ligne i (dans le but de se rapprocher d'une matrice
triangulaire supérieure). Evidemment, lorsqu'on fait ceci, il faut également modier le second
membre b en conséquence. L'étape de factorisation et descente s'écrit donc:
1. Pour k ≤ i et pour j = 1, ..., n, on pose a(i+1)
j,k = aj,k et bk
(i) (i+1) (i)
= bk .

2. Pour k > i, si a(i)


i,i 6= 0, on pose:

(i)
ak,i
(1.5) (i+1)
ak,j =
(i)
ak,j − (i)
ai,j , pour k = j, ..., n,
(i)

ai,i

(i)
ak,i
(1.6) (i+1)
bk =
(i)
bk −
(i)
b ,
(i) i
pour k = j, ..., n.
ai,i

La matrice A(i+1) est de la forme donnée sur la gure 1. Remarquons que le système A(i+1) x =
b(i+1) est bien équivalent au système A(i) x = b(i) . Si la condition ai,i 6= 0 est vériée pour i = 1
(i)

à n, on obtient par le procédé de calcul ci-dessus un système linéaire A(n) x = b(n) équivalent
au système Ax = b, avec une matrice A(n) triangulaire supérieure facile à inverser.
Etape de remontée. Il reste à résoudre le système A(n) x = b(n) . Ceci est une étape facile.
9
Comme A(n) est une matrice inversible, on a(i)
i,i 6= 0 pour tout i = 1, ..., n, et comme A
(n)

est une matrice triangulaire supérieure, on peut donc calculer les composantes de x en
"remontant", c'est-à-dire de la composante xn à la composante x1 :
(n)
bn
xn = (n)
,
an,n
" n
#
1
ai,j xj , pour i = n − 1, ..., 1.
(i)
X (i)
xi = (i)
bi −
ai,i j=i+1

Il est important de savoir mettre sous forme algorithmique les opérations que nous venons de
décrire: c'est l'étape clef avant l'écriture d'un programme informatique qui nous permettra
de faire le boulot par l'ordinateur!
Algorithme 1 (Gauss sans permutation).
1. (Factorisation et descente)
Pour i allant de 1 à n, on eectue les calculs suivants:
(a) On ne change pas la i-ème ligne (qui est la ligne du pivot)
ui,j = ai,j pour j = i, ..., n,
y i = bi
(b) On calcule les lignes i + 1 à n de U et le second membre y en utilisant la ligne i.
Pour k allant de i + 1 à n :
a
lk,i = ak,i
i,i
(si ai,i = 0, prendre la méthode avec pivot partiel)
pour j allant de i + 1 à n,
uk,j = ak,j − lk,i ui,j (noter que ak,i = 0)
Fin pour
yk = bk − lk,i yi
Fin pour
2. (Remontée)
y
On calcule x:
n
xn = un,n
Pour i allant de n − 1 à 1 :
xi = y i
pour j allant de i + 1 à n,
xi = xi − ui,j xj
Fin pour
1
xi = x
ui,i i
Fin pour
Remark 1.2.3. Coût de la méthode de Gauss (nombre d'opérations). On peut mon-
trer (on fera le calcul de manière détaillée pour la méthode de Choleski dans la section
suivante, le calcul pour Gauss est similaire) que le nombre d'operations nécessaires nG pour
eectuer les étapes de factorisation, descente et remontée est 32 n3 +O(n2 ), on rappelle qu'une
fonction f de N dans N est O(n2 ) veut dire qu'il existe une constante positive C tel que
f (n) ≤ Cn2 . On a donc lim nnG3 = 32 ; lorsque n est grand, le nombre d'opérations se com-
n→∞
porte comme n3 .
Décomposition LU. Si le système Ax = b doit être résolu pour plusieurs second mem-
bres b, on a déja dit qu'on a intérêt à ne faire l'étape de factorisation (i.e., le calcul de A(n) ),
qu'une seule fois, alors que les étapes de descente et remontée (i.e., le calcul de b(n) et x)
seront faits pour chaque vecteur b. L'étape de factorisation peut se faire en décomposant
la matrice A sous la forme LU. Supposons toujours pour l'instant que lors de l'algorithme

10
de Gauss, la condition a(i)
i,i 6= 0 est vériée pour tout i = 1, ..., n. La matrice L a comme
(i)
ak,i
coecients lk,i = (i)
ai,i
pour k > i, li,i = 1, pour tout i = 1, ..., n, et li,j = 0 pour j > i, et
la matrice U est égale à la matrice A(n) . On peut vérier que A = LU grâce au fait que le
systeme A(n) x = b(n) est équivalent au système Ax = b. En eet, comme A(n) x = b(n) et
b(n) = L−1 b, on en déduit que LU x = b, et comme A et LU sont inversibles, on en déduit que
A−1 b = (LU )−1 b pour tout b ∈ Rn . Ceci démontre que A = LU. La méthode LU se déduit
donc de la méthode de Gauss en remarquant simplement que, ayant conservé la matrice L,
on peut eectuer les calculs sur b après les calculs sur A, ce qui donne:
Algorithme 2 (LU simple (sans permutation)).
1. (Factorisation) Pour i allant de 1 à n, on eectue les calculs suivants:
(a) On ne change pas la i-ème ligne (qui est la ligne du pivot)
ui,j = ai,j pour j = i, ..., n,
(b) On calcule les lignes i + 1 à n de U en utilisant la ligne i (mais pas le second
membre).
Pour k allant de i + 1 à n :
a
lk,i = ak,i
i,i
(si ai,i = 0, prendre la méthode avec pivot partiel)
pour j allant de i + 1 à n,
uk,j = ak,j − lk,i ui,j (noter que ak,i = 0)
Fin pour
2. (Descente) On calcule y (avec Ly = b)
Pour i allant de 1 à n
i−1
li,k yk (on a ainsi implicitement li,i = 1)
P
yi = bi −
k=1

3. (Remontée) On calcule x (avec U x = y)


Pour i allant de n à 1 !
n
1
P
xi = ui,i
yi − ui,j xj
j=i+1

Remark 1.2.4. (Optimisation mémoire). L'introduction des matrices L et U et des


vecteurs y et x n'est pas nécessaire (tout peut s'écrire avec la matrice A et le vecteur b, que
l'on modie au cours de l'algorithme). L'introduction de L, U, x et y peut toutefois aider
à comprendre la méthode. Le principe retenu est que, dans les algorithmes (Gauss ou LU ),
on modie la matrice A et le second membre b (en remplaçant le système à résoudre par un
système équivalent) mais on ne modie jamais L, U, y et x (qui sont dénis au cours de
l'algorithme).
Nous allons maintenant donner une condition nécessaire et susante (CNS) pour qu'une
matrice A admette une décomposition LU avec U inversible et sans permutation. Com-
mençons par un petit lemme technique qui va nous permettre de prouver cette CNS.
Lemma 1.2.1. (Décomposition LU de la matrice principale d'ordre k). Soit n ∈ N, A ∈
Mn (R) et k ∈ {1, ..., n}. On appelle matrice principale d'ordre k de A la matrice Ak ∈ Mk (R)
dénie par (Ak )i,j = ai,j pour i = 1, ..., k et j = 1, ..., k. On suppose qu'il existe une matrice
Lk ∈ Mk (R) triangulaire inférieure de coecients diagonaux tous égaux à 1 et une matrice
triangulaire supérieure Uk ∈ Mk (R) inversible, telles que Ak = Lk Uk . Alors A s'écrit sous la
forme "par blocs" suivante:
  
Lk 0k×(n−k) Uk Bk
(1.7) A=
0(n−k)×k Dk
,
Ck Idn−k

11
où 0p,q désigne la matrice nulle de dimension p × q, Bk ∈ Mk,n−k (R) et Ck ∈ Mn−k,k (R) et
Dk ∈ Mn−k,n−k (R); de plus, la matrice principale d'ordre k + 1 s'écrit sous la forme
  
L 0 Uk bk
(1.8) Ak+1 = k 1×k ,
ck 1 0k×1 dk

où bk ∈ Mk,1 (R) est la première colonne de la matrice Bk , ck ∈ M1,k (R) est la première ligne
de la matrice Ck , et dk est le coecient de la ligne 1 et colonne 1 de Dk .
Proof. On écrit la décomposition par blocs de A:
 
Ak Ek
A=
Fk Gk

avec Ak ∈ Mk (R), Ek ∈ Mk,n−k (R), Fk ∈ Mn−k,k (R) et Gk ∈ Mn−k,n−k (R). Par hypothèse,
on a Ak = Lk Uk . De plus Lk et Uk sont inversibles, et il existe donc une unique matrice
Bk ∈ Mk (R) (resp. Ck ∈ Mk (R)) telle que Lk Bk = Ek (resp Ck Uk = Gk ). En posant
Dk = Gk − Bk Ck , on obtient (1.7). L'egalite (1.8) en découle immédiatement.
Proposition 1.2.1. (CNS pour LU sans permutation). Soit n ∈ N, A ∈ Mn(R). Les
deux propriétés suivantes sont équivalentes.
(P1) Il existe un unique couple (L, U ), avec L matrice triangulaire inférieure de coecients
diagonaux égaux à 1 et U une matrice inversible triangulaire supérieure, tel que A =
LU.
(P2) Les mineurs principaux[5] de A sont tous non nuls.
Proof. Si A = LU avec L triangulaire inférieure de coecients égaux à 1 et U inversible
triangulaire supérieure, alors Ak = Lk Uk où Lk et Uk sont les matrices principales d'ordre k
de L et U, qui sont encore respectivement triangulaire inférieure de coecients égaux à 1 et
inversible triangulaire supérieure. On a donc
det(Ak ) = det(Lk ) det(Uk ) 6= 0, pour tout k = 1, ..., n,

et donc (P 1) ⇒ (P 2).
Montrons maintenant la réciproque. On suppose que les mineurs sont non nuls, et on va
montrer que A = LU. On va en fait montrer que pour tout k = 1, ..., n, on a Ak = Lk Uk
où Lk et Uk sont les matrices respectivement triangulaire inférieure de coecients égaux à 1
et inversible triangulaire supérieure. Le premier mineur est non nul, donc a11 = 1 × a11 , et
la récurrence est bien initialisée. On la suppose vraie à l'étape k. Par le lemme 1.2.1, Ak+1
se met sous la forme (1.8), et donc se décompose comme suit Ak+1 = Lk+1 Uk+1 . Comme
det(Ak+1 ) 6= 0, la matrice Uk+1 est inversible, et l'hypothèse de récurrence est vériée à
l'ordre k + 1. D'où (P 2) ⇒ (P 1).
Que faire en cas de pivot nul: la technique de permutation. La caractérisation que
nous venons de donner pour qu'une matrice admette une décomposition LU sans permutation
est intéressante mathématiquement, mais de peu d'intérêt en pratique. On ne va en eet
jamais calculer n déterminants pour savoir si on peut ou non permuter. En pratique, on
eectue la décomposition LU sans savoir si on a le droit ou non de le faire, avec ou sans
permutation. Au cours de l'élimination, si a(i)i,i = 0, on va permuter la ligne i avec une des
lignes suivantes telle que ak,i 6= 0. Notons que si le "pivot" ai,i
(i) (i)
est très petit, son utilisation
peut entraîner des erreurs d'arrondi importantes dans les calculs et on est encore obliger de
permuter. En fait, même dans le cas où la CNS donnée par la proposition 1.2.1 est vériée,
la plus part des fonctions de librairies scientiques vont permuter.

12
Plaçons-nous à l'itération i de la méthode de Gauss. Comme la matrice A(i) est forcément
non singulière, on a:
 (i) (i)

ai,i . . . ai,n
det(A(i) ) = a1,1 a2,2 . . . ai−1,i−1 det  ... . . . .. 
(i) (i) (i)
.  6= 0.

(i) (i)
an,i . . . an,n
En particulier, on a  
(i) (i)
ai,i . . . ai,n
det  ... . . . .. 
.  6= 0.

(i) (i)
an,i . . . an,n
On déduit qu'il existe i0 ∈ {i, ..., n} tel que a(i)
i0 ,i 6= 0. On choisit alors i0 ∈ {i, ..., n} tel que
ai0 ,i = max{|ak,i |, k = i, ..., n}. Le choix de ce max est motivé par le fait qu'on aura ainsi
(i) (i)

moins d'erreur d'arrondi. On échange alors les lignes i et i0 (dans la matrice A et le second
membre b) et on continue la procédure de Gauss décrite plus haut.
L'intérêt de cette stratégie de pivot est qu'on aboutit toujours à la résolution du système
(dès que A est inversible).
Algorithme (LU avec pivot partiel).
1. (Initialisation de t.) Pour i allant de 1 à n, t(i) = i. Fin pour
2. (Factorisation)
Pour i allant de 1 à n, on eectue les calculs suivants:
(a) Choix du pivot (et de t(i)): on cherche i∗ ∈ {i, ..., n} t.q. |at(i ),i | = max{|at(k),i |, k ∈

{i, ..., n}} (noter que ce max est forcément non nul car la matrice est inversible).
On modie alors t en inversant les valeurs de t(i) et t(i∗ ).
p = t(i∗ ); t(i∗ ) = t(i); t(i) = p.
Pour j = i, ..., n, on ne change pas la ligne t(i):
ut(i),j = at(i),j
Fin pour
(b) On modie les lignes t(k), k > i (et le second membre), en utilisant la ligne t(i).
Pour k allant de i + 1 à n : (noter qu'on a uniquement besoin de connaître
l'ensemble, et pas l'ordre):
a
lt(k),i = at(k),i
t(i),i
pour j allant de i + 1 à n,
ut(k),j = at(k),j − lt(k),i ut(i),j (noter que ut(k),i = 0)
Fin pour
Fin pour
3. (Descente) On calcule y
Pour i allant de 1 à n
i−1
P
yt(i) = bt(i) − lt(i),j yj
j=1
Fin pour
4. (Remontée) On calcule x
Pour i allant de n à 1 !
n
1
P
xt(i) = ut(i),i
yi − ut(i),j xj
j=i+1
Fin pour

13
NB: On a changé l'ordre dans lequel les équations sont considérées (le tableau t donne
cet ordre, et donc la matrice P ). Donc, on a aussi changé l'ordre dans lequel interviennent
les composantes du second membre: le système Ax = b est devenu P Ax = P b. Par contre,
on n'a pas touché à l'ordre dans lequel interviennent les composantes de x et y.
Remark 1.2.5. (Ordre des équations et des inconnues). L'algorithme se ramène donc
à résoudre LU x = b, en résolvant d'abord Ly = b puis U x = y. Notons que lors de la
résolution du système Ly = b, les équations sont dans l'ordre t(1), ..., t(k) (les composantes de
b sont donc aussi prises dans cet ordre), mais le vecteur y est bien le vecteur de composantes
(y1 , ..., yn ), dans l'ordre initial. Puis, on résoud U x = y, et les équations sont encore dans
l'ordre t(1), ..., t(k) mais les vecteurs x et y ont comme composantes respectives (x1 , ..., xn )
et (y1 , ..., yn ).
Le théorème d'existence. L'algorithme LU avec pivot partiel nous permet de démon-
trer le théorème d'existence de la décomposition LU pour una matrice inversible.
Theorem 1.2.1. (Décomposition LU d'une matrice). Soit A ∈ Mn (R) une matrice in-
versible, il existe une matrice de permutation P telle que, pour cette matrice de permutation,
il existe un et un seul couple de matrices (L, U ) où L est triangulaire inférieure de termes
diagonaux égaux à 1 et U est triangulaire supérieure, vériant
P A = LU.
Proof. 1. L'existence de la matrice P et des matrices LU peut s'eectuer en s'inspirant de
l'algorithme "LU avec pivot partiel" (1.2.1). Posons A(0) = A. A chaque étape i, l'algorithme
(1.2.1) peut s'écrire comme A(i) = E (i) P (i) A(i−1) , où P (i) est la matrice de permutation qui
permet le choix du pivot partiel, et E (i) est une matrice d'élimination qui eectue les com-
binaisons linéaires de lignes permettant de mettre à zéro tous les coecients de la colonne i
situés en dessous de la ligne i. Pour simplier, raisonnons sur une matrice 4 × 4 (le raison-
nement est le même pour une matrice n × n. On a donc en appliquant l'algorithme de Gauss:
E (3) P (3) E (2) P (2) E (1) P (1) A = U.
Les matrices P (i+1) et E (i) ne sont pas en général commutatives. Par contre, comme la
multiplication a gauche par P (i+1) permute les lignes i + 1 et i + k, pour un certain k ≥ 1, et
que la multiplication à droite permute les colonnes i + 1 et i + k, la matrice P (i+1) E (i) P (i+1)
est encore une matrice triangulaire inférieure avec la même structure que E (i) : on a juste
échangé les coecients extradiagonaux des lignes i + 1 et i + k. On a donc

(1.9) P (i+1) E (i) = E


g (i) P (i+1) .

Prenons par exemple E (2) et P (3) , sous la forme


1 0 0 0 1 0 0 0
" # " #
E (2) = 00 1
a
0
1
0
0 et P (3) = 00 1
0
0
0
0 ,
1
0 b 0 1 0 0 1 0
on eectue le calcul:
1 0 0 0
" #
P (3)
E (2)
P (3)
= 00 1
b
0
1
0 =E
0
g(2) ,

0 a 0 1
qui est une matrice triangulaire inférieure dont les coecients diagonaux sont tous égaux à
1. Comme P (3) P (3) = Id, on a:
P (3) E (2) = E
g (2) P (3) .

14
De façon similaire, on a P (3) E (1) = E
g (1) P (3) où E
g (1) est encore une matrice triangulaire
inférieure ayant 1 comme éléments diagonaux. On déduit que

E (3) E (2) E (1) P (3) P (2) P (1) A = U, soit encore P A = LU


g g
g
 −1
où P = P P P est bien une matrice de permutation et L = E E E
(3) (2) (1) (3) g
(2) (1) est une
g
g

matrice triangulaire inférieure avec des 1 sur la diagonale. Le raisonnement que nous venons
de faire pour n = 3 se généralise facilement à n quelconque. Dans ce cas, l'échelonnement de
la matrice s'écrit sous la forme
E (n−1) P (n−1) . . . E (2) P (2) E (1) P (1) A = U,

et se transforme grâce à (1.9) en


U = F (n−1) . . . F (2) F (1) P (n−1) . . . P (2) P (1) A,

où les matrices F (i) sont des matrices triangulaires inférieures de coecients diagonaux tous
^
égaux à 1. Plus précisément, F (n−1) = E (n−1) , F (n−2) = E^ (n−2) , F (n−3) = E
^ (n−3) , etc...On a
ainsi démontré l'existence de la décomposition LU.
2. Pour montrer l'unicité du couple (L, U ), supposons qu'il existe une matrice inversible
P et des matrices L1 , L2 , triangulaires inférieures et U1 , U2 triangulaires supérieures, telles
que
P A = L1 U1 = L2 U2 .
Dans ce cas, on a donc L−12 L1 = U2 U1 . Or la matrice L2 L1 est une matrice triangulaire
−1 −1

inférieure dont les coecients diagonaux sont tout égaux à 1, et la matrice U2 U1−1 est une
matrice triangulaire supérieure. On en déduit que L−1
2 L1 = U2 U1 = Id, donc que L1 = L2
−1

et U1 = U2 .
Remark 1.2.6. (Décomposition LU pour les matrices non inversibles). En fait
n'importe quelle matrice carrée admet une décomposition de la forme P A = LU. Mais si la
matrice A n'est pas inversible, son échelonnement va nous donner des lignes de zéros pour
les dernières lignes . Dans ce cas, la décomposition LU n'est pas unique.

1.2.2 Méthode de Choleski


On va maintenant étudier la méthode de Choleski, qui est une méthode directe adaptée
au cas où A est symétrique dénie positive. On rappelle qu'une matrice A ∈ M(R) dénie
par A = [aij ]ni,j=1 est symétrique si A = At , où At désigne la transposée de A, dénie par
At = [aji ]ni,j=1 et que A est dénie positive si Ax · x > 0, pour tout x ∈ Rn , x 6= 0. Dans
toute la suite, x · y désigne le produit scalaire des deux vecteurs x et y de Rn . On rappelle
que si A est symétrique dénie positive, alors elle est inversible.
Description de la Méthode.
2 −1 0
 
Example 1.2.2. On considère la matrice symétrique A = −1 2 −1 . Calculons sa
0 −1 2
décomposition LU. Par échelonnement, on obtient
1 0 0 2 −1 0
" #" #
1 3
A = LU = − 2 1 0 0 2 −1 .
0 − 32 1 0 0 4
3

15
La structure LU ne conserve pas la symétrie de la matrice A. Pour des raisons de coût
mémoire, il est important de pouvoir la conserver. Une des techniques consiste à décomposer
U en un produit de matrice diagonale et de matrice triangulaire. On obtient alors
2 0 0 1 − 12 0
" #" #
3
U= 0 2 0 0 1 − 23 .
0 0 43 0 0 1
On a√donc√ U = √DL , et comme tous les coecients de D sont positifs, on peut écrire
t

D = D D, où D est la matrice diagonale dont les éléments √ √ diagonaux sont les racines

carrées des éléments diagonaux de A. On a donc A = L D DL = LL , avec Le = L D.
t e e t

Notons que la matrice Le est toujours triangulaire inférieure, mais ses coecients diagonaux
ne sont plus astreints à étre égaux à 1. C'est la décomposition de Choleski de la matrice A.
Plus généralement, la méthode de Choleski consiste à trouver une décomposition d'une
matrice A symétrique dénie positive de la forme A = LLt , où L est triangulaire inférieure
de coecients diagonaux strictement positifs. On résoud alors le système Ax = b en résolvant
d'abord Ly = b, puis le système Lt x = y. Une fois la matrice A "factorisée", c'est-à-dire, la
décomposition LLt obtenue (voir paragraphe suivant), on eectue les étapes de "descente"
et "remontée":
1. Etape 1: "descente". Le système Ly = b s'écrit:
l11 0 ... 0
 
..  yy12 b1
 ..
 
.
l22 . .
" #
Ly =  .. .. ...
.  . =  b.2  .
.. ..
.. . 0 y
ln1 ln2 . . . lnn
n bn

Ce système s'écrit composante par composante en partant de i = 1.


b1
l11 y1 = b1 ⇒ y1 = ,
l11
1
l21 y1 + l22 y2 = b2 ⇒ y2 = (b2 − l21 y1 )
l22
..
. !
i i−1
X 1 X
lij yj = bi ⇒ yi = bi − lij yj ,
j=1
lii j=1
..
. !
n n−1
X 1 X
lnj yj = bn ⇒ yn = bn − lnj yj .
j=1
lnn j=1

On calcule ainsi y1 , y2 , ... yn .


2. Etape 2: "remontée". On calcule maintenant x solution de Lt x = y.
 
l11 l12 . . . l1n " # " y #
... ..  xx12 y12
t
0 l
Lx= . . . = .. .
.. ... . . . ln−1,n  x..
22
.
 
n yn
0 ... 0 lnn

16
On a donc
yn
lnn xn = yn ⇒ xn =
lnn
1
ln−1,n−1 xn−1 + ln,n−1 xn = yn−1 ⇒ xn−1 = (yn−1 − ln,n−1 xn )
ln−1,n−1
..
. !
n n
X 1 X
lj1 xj = y1 ⇒ x1 = y1 − lj1 xj .
j=1
l11 j=2

Il découle les valeurs de xn , xn−1 , ... x1 .


Theorem 1.2.2. (Existence et unicité de la décomposition de Choleski). Soit A ∈
Mn (R) une matrice symétrique dénie positive. Alors il existe une unique matrice L ∈
Mn (R), L = [lij ]ni,j=1 , satisfaisant:

1. L est triangulaire inférieure (c'est-à-dire, lij = 0 si j > i),


2. lii > 0, pour tout i ∈ {1, ..., n},
3. A = LLt .
Proof. I-Existence de L: démonstration par récurrence sur n.
1. Dans le cas n = 1, on a A = [a11 ]. Comme √
A est symétrique dénie positive, on a a11 > 0.
On peut donc dénir L = [l11 ] où l11 = a11 , ainsi on a A = LLt .
2. On suppose que la décomposition de Choleski s'obtient pour A ∈ Mp (R) symétrique
dénie positive, pour 1 ≤ p ≤ n et on va démontrer que la propriété est encore vraie
pour A ∈ Mn+1 (R) symétrique dénie positive. Soit A ∈ Mn+1 (R) symétrique dénie
positive; on peut écrire A sous la forme:
h i
(1.10) A= B a
at α
où B ∈ Mn (R) est symétrique, a ∈ Rn et α ∈ R. Montrons que B est dénie positive,
c.a.d,h que
i By · y > 0, pour tout y ∈ R tel que y 6= 0. Soit donc y ∈ R \ {0}, et
n n

y
x = 0 ∈ Rn+1 . Comme A est symétrique dénie positive, on a:

y y By y
h ih i h i h i h i
0 < Ax · x = B a · 0 = at y · 0 = By · y,
at α 0
donc B est dénie positive. Par hypothèse de recurrence, il existe une matrice M ∈
Mn (R), M = [mij ]ni,j=1 telle que:

(a) lij = 0 si j > i,


(b) lii > 0, pour tout i ∈ {1, ..., n},
(c) B = M M t .
On va chercher L sous la forme:
h i
(1.11) L= M 0
bt λ

17
avec b ∈ Rn , λ ∈ R∗+ tels que tels que LLt = A. Pour determiner b et λ, calculons LLt
où L est de la forme (1.11) et identions avec A:
Mt MMt
h ih i h i
LL = t M 0 b = Mb .
bt λ 0 λ bt M t bt b + λ 2
On cherche b ∈ Rn , λ ∈ R∗+ tels que tels que LLt = A, et on veut donc que les égalites
suivantes soient vériées:
M b = a et bt b + λ2 = α.
n
Comme M est inversible (en eet, le déterminant de M s'écrit det(M ) = mii > 0),
Q
i=1
la première égalité ci-dessus donne: b = M −1 a et en remplaçant dans la deuxième
égalité, on obtient: (M −1 a)t M −1 a + λ2 = α, donc at (M t )−1 M −1 a + λ2 = α, soit encore
at (M M t )−1 a + λ2 = α, c'est-à-dire:

(1.12) at B −1 a + λ2 = α.

Pour que (1.12) soit vériée, il faut que


(1.13) α − at B −1 a > 0.
h −1
i
Montrons que la condition (1.13) est eectivement vériée: Soit z = B−1a ∈ Rn+1 .
On a z 6= 0, et donc Az · z > 0, car A est symétrique dénie positive. De plus,
0
 
−1
h ih i
Az = B a B a = .
at α -1 −α + at B −1 a

On a donc Az · z√= α − at B −1 a > 0, ce qui montre que (1.13) est vériée. On peut
ainsi choisir λ = α − at B −1 a (> 0) de telle sorte que (1.12) soit vériée. Posons:
M 0
h i
L= (M −1 a)t λ .

La matrice L est bien triangulaire inférieure et vérie lii > 0, et A = LLt . Sur ce point,
on termine avec la partie "existence".
II-Unicité et calcul de L: Soit A ∈ Mn (R) symétrique dénie positive; on vient de montrer
qu'il existe L ∈ Mn (R) triangulaire inférieure telle que li,j = 0 si j > i, li,i > 0 et A = LLt .
On a donc:
n
(1.14)
X
aij = lik ljk ∀(i, j) ∈ {1, 2, ..., n}2 .
k=1

1. Calculons la première colonne de L; pour j = 1, on a



a11 = l11 l11 donc l11 = a11 (a11 > 0 car l11 existe ),
a21
a21 = l21 l11 donc l21 = ,
l11
ai1
ai1 = li1 l11 donc li1 = ∀i ∈ {2, ..., n}.
l11

18
2. On suppose avoir calculé les q premières colonnes de L. On calcule la colonne (q + 1) en
q+1
prenant j = q + 1 dans (1.14). Pour i = q + 1, on a aq+1,q+1 = lq+1,k lq+1,k , donc
P
k=1

q
!1/2
(1.15)
X
2
lq+1,q+1 = aq+1,q+1 − lq+1,k .
k=1

q
Notons que aq+1,q+1 − 2
> 0, car L existe: il est indispensable de montrer
P
lq+1,k
k=1
d'abord l'existence de L pour pouvoir exhiber le coecient lq+1,q+1 . En procédant de
cette manière pour i = q + 2, ..., n, on obtient
q+1 q
X X
ai,q+1 = lik lq+1,k = lik lq+1,k + li,q+1 lq+1,q+1 .
k=1 k=1

et donc
q
!
1
(1.16)
X
li,q+1 = ai,q+1 − lik lq+1,k .
lq+1,q+1 k=1

D'où le calcul de toutes les colonnes de L. Ainsi, on a montré que L est unique par un
moyen constructif de calcul de L.

La décomposition LU permet de caractériser les matrices symétriques dénies positives.


Proposition 1.2.2. (Caractérisation des matrices symétriques dénies positives
par la décomposition LU ). Soit A une matrice symétrique admettant une décomposition
LU sans permutation, c'est-à-dire qu'on suppose qu'il existe L triangulaire inférieure de
coecients diagonaux tous égaux à 1, et U triangulaire supérieure telle que A = LU. Alors
A est symérique dénie positive si et seulement si tous les pivots (c'est-à-dire les coecients
diagonaux de la matrice U ) sont strictement positifs.
Proof. Soit A une matrice symétrique admettant une décomposition LU sans permutation.
Si A est symétrique dénie positive, le théorème 1.2.2 de décomposition de Choleski donne
immédiatement le résultat.
Montrons maintenant la réciproque: supposons que A = LU a tous les pivots strictement
positifs. On a A = LU, où U est inversible car elle est une matrice triangulaire supérieure
ayant tous les coecients diagonaux strictement positifs. Donc A est inversible, et la décom-
position LU est donc unique, d'après le théorème 1.2.1 de décomposition LU d'une matrice
inversible. On a donc A = LU = LDL et où D est la matrice diagonale dont la diagonale est
celle de U, et L
e est la matrice triangulaire inférieure de coecients diagonaux tous égaux à
1 dénie par Let = D−1 U. De plus, on a par symétrie de A,

At = LDL
e t
= A = LU,

et par unicité de la décomposition


√ LU, on en déduit que L = L etn DL = U , ce qui
e e entraine que
A = LDL = CC avec C = L D. On a donc pour tout x ∈ R , Ax · x = CC t x · x = kCxk2 ,
t t

d'où A est symétrique dénie positive.


Attention: la proposition précédente est fausse
h si la
i décomposition est avec permutation,
méditer pour s'en convaincre sur l'exemple A = 1 0 .
0 1

19
Remark 1.2.7. (Pivot partiel et Choleski.) Considérons une matrice A symétrique
dénie positive. On a vu dans le théorème qu'on n'a pas besoin de permutation pour obtenir
la décomposition LLt d'une matrice symétrique dénie positive. Par contre, on l'utilise mal-
gré toute la technique de pivot partiel pour minimiser les erreurs d'arrondi. On peut illustrer
cette raison par l'exemple suivant:
−n
h i
A = −10
1
1 .
1

À titre d'illustration, pour n = 12 en FORTRAN (double précision), on obtient la bonne solu-


tion, c-à-d, (−1, 1), avec le programme gausslupivot donné plus haut, alors que le programme
sans pivot gausslu donne comme solution (0, 1).
Calcul du coût de la méthode de Choleski
Calcul du coût de calcul de la matrice L. Dans le procédé de calcul de L exposé
ci-dessus, le nombre d'opérations pour calculer la première colonne est n. Calculons, pour
p = 0, ..., n − 1, le nombre d'opérations pour calculer la (p + 1)-ième colonne: pour la colonne
(p + 1), le nombre d'opérations par ligne est 2p + 1, car le calcul de lp+1,p+1 par la formule
(1.15) nécessite p multiplications, p soustractions et une extraction de racine, soit 2p + 1
opérations; le calcul de li,p+1 par la formule (1.16) nécessite p multiplications, p soustrac-
tions et une division, soit encore 2p + 1 operations. Comme les calculs se font des lignes p + 1
à n (car li,p+1 = 0 pour i ≤ p), le nombre d'opérations pour calculer la (p + 1)-ième colonne
est donc (2p + 1)(n − p). On en déduit que le nombre d'opérations NL nécessaires au calcul
de L est:
n−1
X n−1
X n−1
X n−1
X n−1
X
NL = (2p + 1)(n − p) = 2n p − 2 p2 + n 1 − p
p=0 p=0 p=0 p=0 p=0
n−1
n(n − 1) X
= (2n − 1) + n2 − 2 p2
2 p=0

n−1 n−1
(On rappelle que 2 p = n(n − 1).) Il reste à calculer Cn = p2 , en remarquant par
P P
p=0 p=0
exemple que
n
X n
X n
X n
X n
X n
X
(1 + p)3 = (1 + 3p + 3p2 + p3 ) = 1 + 3 p + 3 p2 + p3
p=0 p=0 p=0 p=0 p=0 p=0
n n n n n n+1 n
p , car
X X X X X X X
3 3 2 3 3 3
⇒ (1 + n) + p = 1+3 p+3 p + p = (1 + n) + p3
p=0 p=0 p=0 p=0 p=0 p=1 p=0

On a donc, 3Cn + 3 n(n+1)


2
+ n + 1 = (n + 1)3 , d'où

n(n + 1)(2n + 1)
Cn = .
6
Ainsi,
n(n − 1)
NL = (2n − 1) − 2Cn−1 + n2
 2 2
n3 n2 n n3

2n + 3n + 1
= n = + + = + O(n2 ).
6 3 2 6 3

20
Coût de la résolution d'un système linéaire par la méthode LLt . Nous pouvons
maintenant calculer le coût (en termes de nombre d'opérations élémentaires) nécessaire à
la résolution de (1.4) par la méthode de Choleski pour A ∈ Mn (R) symétrique dénie
positive. On a besoin de NL opérations pour le calcul de L, auquel il faut ajouter le nombre
d'opérations nécessaires pour les étapes de descente et rémontée. Le calcul de y, solution de
Ly = b s'eectue en résolvant le système:
l11 0 y1 b1
" #  " #
.. ... .. .. .
. y
. = .
ln1 . . . lnn n bn

Pour la ligne 1, le calcul y1 = b1


l11
, s'eectue en une opération.
p−1
 
Pour les lignes p = 2 à n, le calcul yp = 1
bp − lip yi , s'eectue en (p − 1) (multiplica-
P
lpp
i=1
tions)+ (p − 2) (additions) +1 (soustraction) +1 (division) = 2p − 1 operations. Le calcul
n
de y (descente) s'eectue donc en N1 = (2p − 1) = n(n + 1) − n = n2 . On peut calculer
P
p=1
de manière similaire le nombre d'opérations nécessaires pour l'étape de rémontée N2 = n2 .
Le nombre total d'opérations pour calculer x solution de (1.4) par la méthode de Choleski
est NC = NL + N1 + N2 = n3 + n2 + n6 + 2n2 = n3 + 5n2 + n6 . L'étape la plus coûteuse est
3 2 3 2

donc la factorisation de A.
Remark 1.2.8. (Décomposition LDLt ). Dans les programmes informatiques, on préfère
implanter la variante suivante de la décomposition
  de Choleski: A = LDL où D est la
e et
matrice diagonale dénie par dii = lii2 , Leii = LD
e −1 où D e est la matrice diagonale denie
ii
par dii = lii . Cette décomposition a l'avantage de ne pas faire intervenir le calcul de racines
carrées, qui est une opération plus compliquée que les operations "élementaires" (×, +, −).

Comparaison Gauss/Choleski
Soit A ∈ Mn (R) inversible, la résolution de (1.4) par la méthode de Gauss demande 2 n3 +
3

0(n2 ) opérations (exercice). Dans le cas d'une matrice symétrique dénie positive, la méthode
de Choleski est donc environ deux fois moins chère.

Systèmes linéaires non carrés


On considère ici des matrices qui ne sont plus carrées. On désigne par Mm,n (R) l'ensemble
des matrices réelles à m lignes et n colonnes. Pour A ∈ Mm,n (R), m > n et b ∈ Rm , on
cherche x ∈ Rn , tel que
(1.17) Ax = b.

Ce système contient plus d'équations que d'inconnues et n'admet pas (en général) de solution.
On cherche x ∈ Rn qui vérie le sytème (1.17) "au mieux". On introduit pour cela une
fonctionnelle f dénie de Rn dans R par:
f (x) = |Ax − b|2 ,

où |x| = x · x désigne la norme euclidienne sur Rn . La fonction f ainsi dénie est evidem-
ment positive, et s'il existe x qui annule f, alors x est solution du systeme (1.17). Comme
déjà mentionné, un tel x n'existe pas forcément, ainsi on cherche un vecteur x qui véri-
e (1.17) "au mieux", au sens où f (x) soit la plus proche de 0. Pour celà, on va chercher

21
x ∈ Rn satisfaisant (1.17) en minimisant f, c-à-d, en cherchant x ∈ Rn solution du problème
d'optimisation:
(1.18) f (x) ≤ f (y), ∀y ∈ Rn .

On peut réécrire f sous la forme: f (x) = At Ax · x − 2b · Ax + b · b. S'il existe une solution au


problème (1.18), elle est donnée par la résolution du système linéaire suivant:
(1.19) At Ax = At b ∈ Rn ,

qu'on appelle équations normales du problème de minimisation. La résolution approchée du


problème (1.17) par cette procédure est appelée méthode des moindres carrés. La matrice
At A étant symétrique, on peut alors employer la méthode de Choleski pour la résolution du
système (1.19).

22
Chapter 2
Méthodes itératives pour résolution des
systèmes d'équations linéaires
2.1 Introduction
Les méthodes directes sont très ecaces: elles donnent la solution exacte (aux erreurs
d'arrondi près) du système linéaire considéré. Elles ont l'inconvénient de nécessiter une assez
grande place mémoire car elles nécessitent le stockage de toute la matrice en mémoire vive.
Si la matrice est pleine, i.e., presque tous les coecients de la matrice sont non nuls et qu'elle
est trop grosse pour la mémoire vive de l'ordinateur dont on dispose, il ne reste plus qu'à
gérer habilement le "swapping" c'est-à-dire l'échange de données entre mémoire disque et
mémoire vive pour pouvoir résoudre le système.
Cependant, si le système a été obtenu à partir de la discrétisation d'équations aux dérivés
partielles, il est en général "creux", i.e., qu'un grand nombre des coecients de la matrice du
système sont nuls; de plus la matrice a souvent une structure "bande", i.e. les éléments non
nuls de la matrice sont localisés sur certaines diagonales. Si on utilise une méthode directe
genre Choleski, on aura donc besoin d'une place mémoire de n × m = M 3 . (Notons que pour
une matrice pleine on a besoin de M 4 .)
Lorsqu'on a à faire à de très gros systèmes d'order n issus par exemple de l'ingénierie (cal-
cul des structures, mécanique des uides,...), où n peut être de l'ordre de plusieurs milliers,
on cherche à utiliser des méthodes nécessitant le moins de mémoire possible. Dans ce cas,
on a intérêt à utiliser des méthodes itératives. Ces méthodes ne font appel qu'à des produits
matrice-vecteur, et ne nécessitent pas le stockage du prol 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 toujours la solution exacte du système en un nombre
ni d'itérations, mais qui donnent une solution approchée à moindre coût comparée à une
methode directe, car elles ne font appel qu'à des produits matrice-vecteur.

2.2 Dénitions et Propriétés


Soit A ∈ Mn (R) une matrice inversible et b ∈ Rn , on cherche à résoudre le système linéaire
(1.4), c'est-à-dire, trouver x ∈ Rn tel que Ax = b, mais de façon iterative, c.a.d., par la
construction d'une suite.
Denition 2.2.1. (Méthode itérative). On appelle méthode itérative de résolution du
système linéaire (1.4) une méthode qui construit une suite (x(k) )k∈N (où l'itéré x(k) est calculé
à partir des itérés x(0) , ..., x(k−1) ) censée converger vers x solution de (1.4).
Denition 2.2.2. (Méthode itérative convergente). On dit qu'une méthode itérative est
convergente si pour tout choix initial x(0) ∈ Rn , on a:
x(k) → x quand k → ∞.

23
Enn, on veut que cette suite soit simple à calculer. Une idée naturelle est de travailler
avec une matrice P inversible qui soit "proche" de A, mais plus facile que A à inverser. On
appelle matrice de préconditionnement cette matrice P . On écrit alors A = P − (P − A) =
P − N (avec N = P − A), et on réécrit le système linéaire Ax = b sous la forme
(2.1) P x = (P − A)x + b = N x + b.
Cette forme suggère la construction de la suite (x(k) )k∈N à partir d'un choix initial x(0) donné,
par la formule suivante:
P x(k+1) = (P − A)x(k) + b
(2.2) = N x(k) + b
ce qui peut également s'écrire:
(2.3) x(k+1) = Bx(k) + c, avec B = P −1 (P − A) = Id − P −1 A = P −1 N et c = P −1 b.
Remark 2.2.1. (Convergence vers A−1 b). Si P x(k+1) = (P − A)x(k) + b, pour tout k ∈ N
et x(k) → x, quand k → ∞, alors P x = (P − A)x + b et donc Ax = b, i.e., x = x. Ainsi, si
la suite converge, alors elle converge vers la solution du système linéaire.
On introduit l'erreur d'approximation e(k) à l'itération k, dénie par
(2.4) e(k) = x(k) − x, k ∈ N,
où x(k) est construit par la relation (2.3) et x = A−1 b. Il est facile de vérier que x(k) → x =
A−1 b, lorsque k → ∞ si et seulement si e(k) → 0, lorsque k → ∞.
Lemma 2.2.1. La suite (e(k) )k∈N dénie par (2.4) satisfait les relations
e(0) = x(0) − x
(2.5) e(k) = B k e(0)
Proof. Comme c = P −1 b = P −1 Ax et B = Id − P −1 A (d'après (2.3)), on a
e(k+1) = x(k+1) − x = Bx(k) − x + P −1 Ax
(2.6) = B(x(k) − x).
Par récurrence sur k, on obtient
(2.7) e(k) = B k (x(0) − x), ∀k ∈ N.

Nous allons rappeler le théorème de triangularisation (ou trigonalisation) des matrices


complexes.
Theorem 2.2.1. (Décomposition de Schur, triangularisation d'une matrice). Soit
A ∈ Mn (R) ou Mn (C), une matrice carrée quelconque, rèelle ou complexe. Alors il existe
une matrice complexe Q inversible et une matrice complexe triangulaire supérieure T telles
que A = QT Q−1 .
Ce résultat s'énonce de manière équivalente comme suit: Soit ψ une application linéaire
de E dans E, où E est un espace vectoriel normé de dimension nie n sur C . Alors il
existe une baseP(f1 , ..., fn ) de E et une famille de complexes (ti,j )i,j=1,...,n, j≥i , telles que,
ψ(fi ) = ti,i fi + tk,i fk . De plus, ti,i est valeur propre de ψ et de A pour tout i ∈ {1, ..., n}.
k<i
Les deux énoncés sont équivalents au sens où la matrice A de l'application linéaire ψ s'écrit
A = QT Q−1 , où T est la matrice triangulaire supérieure de coecients (ti,j )i,j=1,...,n, j≥i et Q
la matrice inversible dont la colonne j est le vecteur fj ).

24
Theorem 2.2.2. (Approximation du rayon spectral par une norme induite (Ad-
mis).
1. Soit k · k une norme induite. Alors
ρ(A) ≤ kAk, pour tout A ∈ Mn (R).

2. Soient maintenant A ∈ Mn (R) et  > 0, alors il existe une norme sur Rn (qui dépend de
A et ) telle que la norme induite sur Mn (R), notée k · kA, , vérie kAkA, ≤ ρ(A) + .
Lemma 2.2.2. (Convergence et rayon spectral). A ∈ Mn (R). Alors:
ρ(A) < 1 si et seulement si Ak → 0 quand k → ∞.

Proof. Si ρ(A) < 1, alors ∃ > 0, tel que ρ(A) < 1 − 2. De plus, grâce au résultat
d'approximation du rayon spectral du Théorème 2.2.2, il existe une norme induite k · kA,
tels que kAkA, = µ ≤ ρ(A) +  < 1 −  < 1. Comme k · kA, est une norme matricielle, on
a kAk kA, ≤ µk → 0, lorsque k → ∞. Comme l'espace Mn (R) est de dimension nie, toutes
les normes sont équivalentes, et on a donc kAk k → 0, lorsque k → ∞.
Montrons maintenant la réciproque: supposons que Ak → 0, lorsque k → ∞, et montrons que
ρ(A) < 1. Soient λ une valeur propre de A et x un vecteur propre associé, alors Ak x = λk x.
Si Ak → 0, alors Ak x → 0, et donc λk x → 0, ceci n'est possible que si |λ| < 1.
Theorem 2.2.3. (Convergence de la suite). Soit A, P ∈ Mn (R) des matrices inversibles.
Soit x(0) donné et (x(k) )k∈N la suite dénie par (2.3). Alors
1. La suite (x(k) )k∈N converge vers x = A−1 b, si et seulement si ρ(B) < 1.
2. La suite (x(k) )k∈N est convergente si et seulement si il existe une norme induite notée k · k
telle que kBk < 1.
Proof. 1. On a vu que la suite (x(k) )k∈N dénie par (2.3) converge vers x = A−1 b, si et
seulement si la suite (e(k) )k∈N dénie par (2.5) tend vers 0. On en déduit par le lemme
2.2.2 que la suite (x(k) )k∈N converge (vers x) si et seulement si ρ(B) < 1.
2. S'il existe une norme induite notée k · k telle que kBk < 1, alors en vertu du Théorème
2.2.2, ρ(B) < 1, et donc la méthode converge, d'après ce qui précède (i.e., Lemme
2.2.2).
Réciproquement, si la méthode converge alors ρ(B) < 1, et donc il existe η > 0 tel que
ρ(B) = 1 − η. Prenons maintenant  = η2 et appliquons le Théorème 2.2.2 : il existe
une norme induite k · k telle que kBk < ρ(B) +  < 1, ce qui démontre le résultat.

Pour trouver des méthodes itératives de résolution du système (1.4), on cherche donc une
décomposition de la matrice A de la forme: A = P − (P − A) = P − N, où P est inversible
et telle que le système P y = d soit un système facile à résoudre (par exemple P diagonale
ou triangulaire).
Estimation de la vitesse de convergence. Soit x(0) ∈ Rn donné et soit (x(k) )k∈N la suite
denie par (2.3). On a vu que si ρ(B) < 1, alors x(k) → x, quand k → ∞, où x est la solution
du système Ax = b. On montrera au travaux dirigés que (sauf cas particuliers)
kx(k+1) − xk
→ ρ(B) lorsque k → ∞,
kx(k) − xk

25
indépendamment de la norme sur Rn . Ainsi, le rayon spectral ρ(B) de la matrice B est une
bonne estimation de la vitesse de convergence. Pour estimer cette vitesse de convergence
lorsqu'on ne connait pas x, on peut utiliser le fait (voir encore travaux dirigés) qu'on a aussi
kx(k+1) − x(k) k
→ ρ(B) quand k → ∞,
kx(k) − x(k−1) k
ce qui permet d'évaluer la vitesse de convergence de la méthode par le calcul des itérés
courants.

2.3 Quelques exemples de méthodes itératives


2.3.1 Méthode de Richarson
Le choix de Richarson pour résoudre le système P x = (P − A)x + b (on rappelle que c'est
un objectif dans la construction d'une méthode itérative) est de prendre pour P la matrice
scalaire, i.e., P = βId, où β ∈ R∗ (qui est très facile à inverser). Voyons ce que cela donne
sur la matrice
h i
(2.8) 2 −1
A = −1 2 .

On a dans ce cas P − A = βId − A et B = Id − β1 A = Id − αA, avec α = β1 . Les valeurs


propres de la matrice B sont de la forme 1 − αλ, où λ est valeur propre de A. Pour la matrice
A dénie par (2.8), les valeurs propres sont 1 et 3, et celles de la matrice
h i
B = 1 −α2α 1 −α2α ,

sont 1 − α et 1 − 3α. Le rayon spectral de la matrice B , qui depend de α est donné par
ρ(B) = max{|1 − α|, |1 − 3α|}. La méthode iterative s'écrit

x(0) ∈ Rn , donné
(2.9) x(k+1) = Bx(k) + c avec c = αb.

Pour que la méthode converge, il faut et il sut que ρ(B) < 1, i.e., −1 < 1 − α < 1 et
−1 < −3α + 1 < 1, lesquelles sont équivalentes à 0 < α < 2 et 0 < α < 2/3, lequel implique
0 < α < 2/3. Il est possible de calculer le meilleur coecient α lequel permet d'obtenir la
meilleure convergence possible: c'est la valeur de α qui minimise le rayon spectral ρ(B), il
est atteint lorsque |1 − α| = |1 − 3α|, ce qui donne α = 1/2. Cette méthode est connue sous
le nom de méthode de Richardson et est souvent décrite sous la forme:
x(0) ∈ Rn , donné
x(k+1) = x(k) + αr(k) ,

où r(k) = b − Ax(k) est le résidu. Il est facile de vérier que cette forme est équivalente à la
forme (2.9) ci-dessus.

2.3.2 Méthode de Jacobi


Dans le cas de l'exemple de la matrice A donnée par (2.8), la méthode de Richardson avec
coecient optimal α = 1/2, revient à prendre comme décomposition de A = P + A − P, avec
P = D, où D est la matrice diagonale dont les coecients sont les éléments diagonaux de
A. La méthode de Jacobi consiste justement à prendre P = D, et ceci même si la diagonale

26
de A n'est pas constante.
Elle n'est équivalente à la méthode de Richardson avec coecient optimal que dans le cas où
la diagonale est constante, c'est le cas de l'exemple (2.8). Dans ce cas, la méthode de Jacobi
s'écrit
(0)
 
x
x = 1(0) ∈ R2 , donné
(0)
x2
 (k+1)   1
x 0 1
(2.10) x (k+1)
= (k+1) = BJ x + c, avec BJ = 1 2 et c = b.
1 (k)
x2 2
0 2
Dans le cas d'une matrice A générale, on décompose A sous la forme A = D − E − F, où
D représente la diagonale de la matrice A, (−E) la partie triangulaire inférieure et (−F ) la
partie triangulaire supérieure:
(2.11)
a1,1 0 . . . 0
  0 0 ... 0 0 a
1,2 . . . a1,n 
. ..
 0 a
2,2
. . . .. 
.  , −E =  a2,1 . . ... .  , et −F = 0 . . . . . . .. 
. .
D= .. . . . .
 ..
.
... ... . . ... .
. . . . . . an−1,n
 
0

0
0 . . . 0 an,n an,1 . . . an,n−1 0 0 ... 0 0
La méthode de Jacobi s'écrit donc:
x(0) ∈ Rn ,

(2.12)
Dx(k+1) = (E + F )x(k) + b.
Lorsqu'on écrit la méthode de Jacobi sous la forme (2.3), on a B = D−1 (E + F ). On notera
BJ la matrice:
a 1,2 a
0 − a1,1 ... − a1,n
 
..
1,1
... ...
.
 a2,1
−a


 ..
BJ =  2,2 .
 .
... ... an−1,n 
− an−1,n−1 
− aan,n
n,1
... − an,n−1
an,n
0
La méthode de Jacobi s'écrit aussi:

 x(0) ∈ Rn ,
(2.13) (k+1)
=−
P
ai,j xj −
(k) P (k)
 ai,i xi ai,j xj + bi , i = 1, ..., n.
j<i j>i

2.3.3 Méthode de Gauss-Seidel


Dans l'écriture (2.13) de la méthode de Jacobi, on pourrait remplacer les composantes x(k) j
dans la somme pour j < i par les composantes x(k+1) j , puisqu'elles sont déjà calculées au
moment où l'on calcule xi . C'est l'idée de la méthode de Gauss-Seidel qui consiste à
(k+1)

utiliser le calcul des composantes de l'itéré (k + 1) dès qu'il est eectué. Par exemple, pour
calculer la deuxième composante x(k+1)2 du vecteur x(k+1) , on pourrait employer la "nouvelle"
valeur x1 (k+1)
qu'on vient de calculer plutôt que la valeur x(k)
1 comme dans (2.13); de même,
dans le calcul de x3 , on pourrait employer les "nouvelles" valeurs x(k+1)
(k+1)
1 et x(k+1)
2 plutôt
que les valeurs x1 et x2 . Cette idée nous suggère de remplacer dans (2.13) xj par x(k+1)
(k) (k) (k)
j
si j < i. On obtient donc l'algorithme suivant:

 x(0) ∈ Rn ,
(2.14) (k+1)
=−
P (k+1)

P (k)
 ai,i xi ai,j xj ai,j xj + bi , i = 1, ..., n.
j<i i<j

27
La méthode de Gauss-Seidel s'écrit donc sous la forme P x(k+1) = (P − A)x(k) + b, avec
P = D − E et P − A = F :
x(0) ∈ Rn ,
(2.15) (D − E)x(k+1) = F x(k) + b.
Si l'on écrit la méthode de Gauss-Seidel sous la forme x(k+1) = Bx(k) + b, on voit assez vite
que B = (D − E)−1 F. On notera BGS cette matrice, dite matrice de Gauss-Seidel.
Ecrivons la méthode de hGauss-Seidel
i dans
h le icas de la matrice A donnée par (2.8). Dans ce
cas, on a P = D − E = −1 2 0 , F = 0 1 . L'algorithme de Gauss-Seidel s'écrit donc:
2 0 0
(0)
 
x
x = 1(0) ∈ R2 , donné
(0)
x2
 (k+1)  1 
x 0 0 0
h i
(2.16) x (k+1)
= (k+1) = BGS x + c, avec BGS = 0 1 et c = 21 1 b.
1 (k)
x2 4 4 2

On a donc ρ(BGS ) = 41 . Sur cet exemple, la méthode de Gauss-Seidel converge donc beaucoup
plus vite que la méthode de Jacobi. Asymptotiquement, l'erreur est divisée par 4 au lieu de
2 pour la méthode de Jacobi. On peut montrer que c'est le cas pour toutes les matrices
tridiagonales, comme c'est enoncé dans le théorème suivant:
Theorem 2.3.1. (Comparaison de Jacobi et Gauss-Seidel pour les matrices tridi-
agonales). On considère une matrice A ∈ Mn(R) tridiagonale, i.e., ai,j = 0 si |i − j| > 1.
Soient BGS et BJ les matrices d'itération respectives des méthodes de Gauss-Seidel et Jacobi,
alors: 2
ρ(BGS ) = (ρ(BJ )) .
Pour les matrices tridiagonales, la méthode de Gauss-Seidel converge (ou diverge) donc plus
vite que celle de Jacobi.
Proof. Indication: La démonstration de ce résultat se fait en montrant que dans le cas
tridiagonal, λ est valeur propre de la matrice d'itération de Jacobi si et seulement si λ2 est
valeur propre de la matrice d'itération de Gauss-Seidel. Elle est laissée à titre d'exercice.

2.3.4 Méthodes SOR et SSOR


L'idée de la méthode de sur-relaxation (SOR=Successive Over Relaxation) est d'utiliser la
méthode de Gauss-Seidel pour calculer un itéré intermédiaire xe(k+1) qu'on "relaxe" en suite
pour améliorer la vitesse de convergence de la méthode. On se donne 0 < ω < 2, et on
modie l'algorithme de Gauss-Seidel de la manière suivante:
 (0)

 x ∈ Rn
 (k+1) P (k+1) P (k)
(2.17) ai,i x
ei = − ai,j xj − ai,j xj + bi , i = 1, ..., n;
 j<i i<j

 (k+1) (k+1) (k)
xi = ωe xi + (1 − ω)xi , i = 1, ..., n.
(Pour ω = 1 on retrouve la méthode de Gauss-eidel.)
L'algorithme ci-dessus peut aussi s'écrire (en multipliant par ai,i la ligne 3 de l'algorithme
(2.17):
 (0) n
 x ∈R

(2.18)
" #
(k+1) P (k+1) P (k) (k)

 ai,i xi =ω − ai,j xj − ai,j xj + bi + (1 − ω)ai,i xi , i = 1, ..., n.
j<i i<j

28
On obtient donc
(D − ωE)x(k+1) = ωF x(k) + ωb + (1 − ω)Dx(k) .
La matrice d'itération de l'algorithme SOR est donc
 −1  
1 1−ω 1 1−ω
Bω = D−E F+ D = P −1 N, avec P = D − E et N = F + D.
ω ω ω ω
Il est facile de vérier que A = P − N.
Proposition 2.3.1. (Condition nécessaire de convergence de la méthode SOR).
Soit A ∈ Mn (R) et D, E et F les matrices dénies par (2.11). On a donc A = D − E − F.
Soit Bω la matrice d'itération de la méthode SOR (et de la méthode de Gauss-Seidel pour
ω = 1) dénie par:
 −1  
1 1−ω
Bω = D−E F+ D , ω 6= 0.
ω ω
Si ρ(Bω ) < 1, alors 0 < ω < 2.
Proof. Calculons det(Bω ). Par dénition,
1 1−ω
Bω = P −1 N, avec P = D − E et N = F + D.
ω ω
Donc det(Bω ) = det(P )−1 det(N ). Comme P et N sont des matrices triangulaires, leurs
déterminants sont les produits des coecients diagonaux. On a donc:
1−ω n

det(D)
det(Bω ) = ω
1
 n = (1 − ω)n .
ω
det(D)

Puisque le déterminant d'une matrice est aussi le produit ses valeurs propres (comptées
avec leur multiplicités algébriques), dont les valeurs absolues sont toutes (par dénition)
inférieures au rayon spectral, il vient que | det(Bω )| = |(1 − ω)n | ≤ (ρ(Bω ))n , ce qui termine
la démonstration.
On a un résultat de convergence de la méthode SOR (et donc également de Gauss-Seidel)
dans le cas où A est symétrique dénie positive, grâce au lemme suivant:
Lemma 2.3.1. (Condition susante de convergence pour la suite dénie par
(2.3)). Soit A ∈ Mn (R) une matrice symétrique dénie positive, et soient P et N ∈ Mn (R)
telles que A = P − N et P est inversible. Si la matrice P t + N est symétrique dénie positive
alors ρ(P −1 N ) = ρ(B) < 1, et donc la suite dénie par (2.3) converge.
Proof. On rappelle (voir le théorème 2.2.2) que si B ∈ Mn (R), et si k · k est une norme
induite sur Mn (R) par une norme sur Rn , on a toujours ρ(B) ≤ kBk. On va donc chercher
une norme sur Rn , notée k · k∗ telle que
kP −1 N k∗ = max{kP −1 N xk∗ , x ∈ Rn , kxk∗ = 1} ≤ 1,
(où on désigne encore par k · k∗ la norme induite sur Mn (R) ou encore:
(2.19) kP −1 N xk∗ ≤ kxk∗ , ∀x ∈ Rn , x 6= 0.

On dénit la norme k · k∗ par kxk∗ = Ax · x, pour tout x ∈ Rn . Comme A est symétrique
dénie positive, k·k∗ est bien une norme sur Rn , induite par le produit scalaire (x|y)A = Ax·y.

29
On va montrer que la propriété (2.19) est vériée par cette norme. Soit x ∈ Rn , x 6= 0, on
a: kP −1 N xk2∗ = AP −1 N x · P −1 N x. Or N = P − A, et donc: kP −1 N xk2∗ = A(Id − P −1 A)x ·
(Id − P −1 A)x. Soit y = P −1 Ax, remarquons que y 6= 0 car x 6= 0 et P −1 A est inversible.
Exprimons kP −1 N xk2∗ à l'aide de y.
kP −1 N xk2∗ = A(x − y) · (x − y) = Ax · x − 2Ax · y + Ay · y = kxk2∗ − 2Ax · y + Ay · y.
Pour que kP −1 N xk2∗ ≤ kxk2∗ (et par suite ρ(P −1 N ) < 1), il sut donc de montrer que
−2Ax · y + Ay · y < 0. Or, comme P y = Ax, on a: −2Ax · y + Ay · y = −2P y · y + Ay · y.
En écrivant: P y · y = y · P t y = P t y · y, on obtient: −2Ax · y + Ay · y = (−P − P t + A)y · y,
et puisque A = P − N, il vient que −2Ax · y + Ay · y = −(P t + N )y · y. Comme P t + N est
symétrique dénie positive par hypotèse et que y 6= 0, on en déduit que −2Ax · y + Ay · y < 0,
ce qui termine la démonstration.
Theorem 2.3.2. (CNS de convergence de la methode SOR pour les matrices
s.d.p.). Soit A ∈ Mn (R) une matrice symétrique dénie positive, et soient D, E et F
les matrices dénies par (2.11), on a donc A = D − E − F. Soit Bω la matrice d'itération
de la méthode SOR (et de la méthode de Gauss.Seidel pour ω = 1) dénie par:
 −1  
1 1−ω
Bω = D−E F+ D , avec ω 6= 0.
ω ω
Alors
ρ(Bω ) < 1 si et seulement si 0 < ω < 2.
En particulier, si A est une matrice symétrique dénie positive, la méthode de Gauss-Seidel
converge.
Proof. On sait par la proposition 2.3.1 que si ρ(Bω ) < 1 alors 0 < ω < 2. Supposons
maintenant que A est une matrice symétrique dénie positive, que 0 < ω < 2 et montrons
que ρ(Bω ) < 1. Par le lemme 2.3.1, il sut pour cela de montrer que P t + N est une matrice
symétrique dénie positive. Puisque,
 t
t 1 1
P = D−E = D − F,
ω ω
on a
1 1−ω 2−ω
Pt + N = D−F +F + D= D.
ω ω ω
Donc, la matrice P t + N est symétrique dénie positive.
Remark 2.3.1. (Comparaison Gauss-Seidel/Jacobi). On a vu (théorème 2.3.2) que
si A est une matrice symétrique dénie positive, la méthode de Gauss-Seidel converge. Par
contre, même dans le cas où A est symétrique dénie positive, il existe des cas où la méthode
de Jacobi ne converge pas, voir à ce sujet un exemple sur che T D2.
Remarquons que le résultat de convergence des méthodes itératives donné par le théorème
précédent n'est que partiel, puisqu'il ne concerne que les matrices symétriques dénies pos-
itives et pour les méthodes Gauss-Seidel et SOR. On a aussi un résultat de convergence
de la méthode de Jacobi pour les matrices à diagonale dominante stricte, voir che T D2,
et un résultat de comparaison des méthodes pour les matrices tridiagonales par blocs, voir
le théorème 2.3.3 donné ci-après. Dans la pratique, il faudra souvent compter sur sa bonne
étoile...
Estimation du coecient de relaxation optimal de SOR. La question est d'estimer
le coecient de relaxation ω optimal dans la méthode SOR, i.e., le coecient ω0 ∈]0, 2[
(condition nécessaire pour que la méthode SOR converge, voir théorème 2.3.2) satisfaisant
ρ(Bω0 ) < ρ(Bω ), ∀ω ∈]0, 2[.

30
Ce coecient ω0 donnera la meilleure convergence possible pour SOR. On sait le faire dans
le cas assez restrictif des matrices tridiagonales (ou tridiagonales par blocs, voir paragraphe
suivant). On ne fait ici qu'énoncer le résultat dont la démonstration est donnée dans le livre
de Ph. Ciarlet conseillé en début de cours.
Theorem 2.3.3. (Coecient optimal, matrice tridiagonale). On considère une ma-
trice A ∈ Mn (R) qui admet une décomposition par blocs donnée par la dénition 2.3.1,
on suppose que la matrice A est tridiagonale par blocs, i.e., Ai,j = 0 si |i − j| > 1,
soient BGS et BJ les matrices d'itération respectives des méthodes de Gauss-Seidel et Ja-
cobi, on suppose de plus que toutes les valeurs propres de la matrice d'itération J de la
méthode de Jacobi sont réelles, alors le paramètre de relaxation optimal, ω0 qui vérie
ρ(Bw0 ) = inf{ρ(Bw ), ω ∈]0, 2[}, s'exprime en fonction du rayon spectral ρ(BJ ) de la matrice
J par la formule:
2
2 > w0 = p > 1,
1 + 1 − ρ(BJ )2
et on a: ρ(Bw0 ) = ω0 − 1.
Proof. La démonstration de ce résultat repose sur la comparaison des valeurs propres des
matrices d'itération. On montre que λ est valeur propre de Bω si et seulement si
(λ + ω − 1)2 = λωµ2 ,
où µ est valeur propre de BJ (voir [Ciarlet] pour plus de details).
Remark 2.3.2. (Méthode de Jacobi relaxée). On peut aussi appliquer une procédure de
relaxation avec comme méthode itérative "de base" la méthode de Jacobi, voir à ce sujet
che de T D2). Cette méthode est toutefois beaucoup moins employée en pratique (car moins
ecace) que la méthode SOR.
Méthode SSOR. En "symétrisant" le procédé de la méthode SOR, i.e., en eectuant les
calculs SOR sur les blocs dans l'ordre 1 à n puis dans l'ordre n à 1, on obtient la méthode de
sur-relaxation symétrisée (SSOR=Symmetric Successive Over Relaxation) qui s'écrit dans
le formalisme de la méthode I avec
 −1   −1  
1 1−ω 1 1−ω
BSSOR = D−F E+ D D−E F+ D
ω ω ω ω
| {z }| {z }
calcul dans l'ordre n,...,1 calcul dans l'ordre 1,...,n

2.3.5 Méthodes par blocs


Décomposition par blocs d'une matrice
Dans de nombreux cas pratiques, les matrices des systèmes linéaires à résoudre ont une
structure "par blocs", et on se sert de cette structure lors de la résolution par une méthode
itérative.
Denition 2.3.1. A ∈ Mn (R) une matrice inversible. Une décomposition par blocs de A
S
est dénie par un entier S ≤ n, des entiers (ni )i=1,...,S tel que ni = n, et S 2 matrices
P
i=1
Ai,j ∈ Mni ,nj (R) (ensemble des matrices rectangulaires à ni lignes et nj colonnes, telles que
les matrices Ai,i soient inversibles pour i = 1, ..., S ) et
A
1,1 A1,2 . . . ... A1,S 
 A2,1 A2,2 . . . .. 
. 
(2.20)

.. . . . . . . . . . .
.
A=  . . 
 .. . . . .

. . . AS−1,S

AS,1 . . . . . . AS,S−1 AS,S

31
Remark 2.3.3. 1. Si S = n et ni = 1, ∀i ∈ {1, ..., S}, chaque bloc est constitue d'un
seul coecient, et on retrouve la structure habituelle d'une matrice. Donc toutes les
méthodes que nous allons décrire pour les matrices structurées par blocs s'appliquent
évidemment de la même manière aux matrices "habituelles".
2. Si A est symétrique dénie positive, la condition Ai,i inversible dans la dénition 2.3.1 est
inutile car Ai,i est nécessairement symétrique dénie positive donc inversible. Prenons
par exemple i = 1; soit y ∈ Rn1 , y 6= 0 et x = (y, 0, ..., o)t ∈ Rn . Alors A1,1 y · y =
Ax · x > 0, donc A1,1 est symétrique dénie positive.
3. Si A est une matrice triangulaire par blocs, i.e., de la forme (2.20) avec Ai,j = 0 si j > i,
alors
S
Y
det(A) = det(Ai,i ).
i=1

Par contre si A est décomposée en 2 × 2 blocs carrés (i.e., tels que ni = mj , ∀i, j ∈
{1, 2}), on a en général: det(A) 6= det(A1,1 ) det(A2,2 ) − det(A1,2 ) det(A2,1 ).

Méthode de Jacobi
On peut remarquer que le choix le plus simple pour le système P x = (P − A)x + b, soit facile
à résoudre (on rappelle que c'est un objectif dans la construction d'une méthode itérative)
est de prendre pour P une matrice diagonale. La méthode de Jacobi consiste à prendre pour
P la matrice diagonale D formée par les blocs diagonaux de A:
A1,1 0 ... ... 0
 
... ..
 0 A2,2 . 
. ... ... ... ..
 ..
 
A= .

 .. ... ...

.

0
0 ... ... 0 AS,S

Dans la matrice ci-dessus, 0 désigne un bloc nul.


On a alors N = P − A = E + F, où E et F sont constitués des blocs triangulaires inférieurs
et supérieurs de la matrice A:
0 0 ... ... 0
 
. .. .. 
 −A2,1 0
 . .
E =  .. . .
.. .. ... ..  ,

.
 .. ... ...
.

0
−AS,1 . . . . . . −AS,S−1 0
et
0 −A1,2 ... ... −A1,S
 
... .. 
0 0 . 

.. . . ... ... ..  .
.
F = . . 
 .. ... ...
.

−AS−1,S
0 ... ... 0 0
On a bien A = P − N, avec D, E et F dénies comme ci-dessus. Ainsi, la méthode de Jacobi
s'écrit:
x(0) ∈ Rn ,
(2.21) Dx(k+1) = (E + F )x(k) + b.

32
En écrivant la méthode de Jacobi sous la forme (2.3), on a bien B = D−1 (E + F ); on notera
BJ cette matrice.
Introduisons la décomposition par blocs de x, solution recherchée de (1.4), i.e., x =
[x1 , ..., xS ]t , où xi ∈ Rni , alors on peut écrire la méthode de Jacobi sous la forme:

 x(0) ∈ Rn
(2.22) (k+1) P (k) P (k)
= − Ai,j xj − Ai,j xj + bi , i = 1, ..., S.
 Ai,i xi
j<i i<j

Si S = n et ni = 1, ∀i ∈ {1, ..., S}, chaque bloc est constitué d'un seul coecient, et on
obtient la méthode de Jacobi par points (aussi appelée méthode de Jacobi), qui s'écrit donc:

 x(0) ∈ Rn
(2.23) (k+1) P (k) P (k)
= − ai,j xj − ai,j xj + bi , i = 1, ..., n.
 ai,i xi
j<i i<j

Méthode de Gauss-Seidel par blocs


La même procédure que dans le cas S = n et ni = 1 donne:

 x(0) ∈ Rn
(2.24) (k+1) P (k+1)
= − Ai,j xj
P (k)
− Ai,j xj + bi , i = 1, ..., S.
 Ai,i xi
j<i i<j

La méthode de Gauss-Seidel s'écrit donc sous la forme P x(k+1) = (P − A)x(k) + b, P = D − E


et P − A = F :
x(0) ∈ Rn ,
(2.25) (D − E)x(k+1) = F x(k) + b.

Si l'on écrit la méthode de Gauss-Seidel sous la forme x(k+1) = Bx(k) + c, on voit assez vite
que B = (D − E)−1 F. On notera BGS cette matrice, dite matrice de Gauss-Seidel.

Méthodes SOR et SSOR


La méthode SOR s'écrit aussi par blocs: on se donne 0 < ω < 2, et on modie l'algorithme
de Gauss-Seidel de la manière suivante:
 (0)

 x ∈ Rn
 (k+1) P (k+1) P (k)
(2.26) Ai,i x
ei = − Ai,j xj − Ai,j xj + bi , i = 1, ..., S;
 j<i i<j

 (k+1) (k+1) (k)
xi = ωexi + (1 − ω)xi , i = 1, ..., S.

(Pour ω = 1 on retrouve la méthode de Gauss-Seidel.)


L'algorithme ci-dessus peut aussi s'écrire (en multipliant par Ai,i la ligne 3 de l'algorithme
(2.26)):
 (0) n
 x ∈R

(2.27)
" #
(k+1) P (k+1) P (k) (k)
 Ai,i xi
 =ω − Ai,j xj − Ai,j xj + bi + (1 − ω)Ai,i xi , i = 1, ..., S.
j<i i<j

33
On obtient donc
(D − ωE)x(k+1) = ωF x(k) + ωb + (1 − ω)Dx(k) .
L'algorithme SOR s'écrit donc comme une méthode II avec
1 1−ω
P = D − E et N = F + D.
ω ω
Il est facile de vérier que A = P − N.
L'algorithme SOR s'écrit aussi comme une méthode I avec
 −1  
1 1−ω
B= D−E F+ D .
ω ω

On notera Lω cette matrice.


Remark 2.3.4. (Méthode de Jacobi relaxée). On peut aussi appliquer une procédure
de relaxation avec comme méthode itérative "de base" la méthode de Jacobi (voir à ce sujet
che de TD2). Cette méthode est toutefois beaucoup moins employée en pratique (car moins
ecace) que la méthode SOR.
En "symétrisant" le procédé de la méthode SOR, i.e., en eectuant les calculs SOR
sur les blocs dans l'ordre 1 à n puis dans l'ordre n à 1, on obtient la méthode de sur-
relaxation symétrisée (SSOR= Symmetric Successive Over Relaxation) qui s'écrit
dans le formalisme de la méthode I avec
 −1   −1  
1 1−ω 1 1−ω
B= D−F E+ D D−E F+ D .
ω ω ω ω
| {z }| {z }
calcul dans l'ordre S,...,1 calcul dans l'ordre 1,...,S

34
Chapter 3
Méthodes de résolution des équations et
systèmes d'équations nonlinéaires
Dans les chapitres précédents, on a étudié quelques méthodes de résolution de systèmes
linéaires en dimension nie. L'objectif de ce chapitre est de dévélopper des méthodes de
résolution de systèmes non linéaires, toujours en dimension nie. On se donne g ∈ C(Rn , Rn )
et on cherche x dans Rn solution de:
x ∈ Rn ,

(3.1)
g(x) = 0.

Dans les deux premiers chapitres, on a étudie des méthodes de résolution du système (3.1)
dans le cas particulier g(x) = Ax − b, A ∈ Mn (R), b ∈ Rn . On va maintenant étendre le
champ d'étude au cas où g n'est pas forcément ane. On étudiera deux familles de méthodes
pour la résolution approchée du système (3.1):
− les méthodes de point xe: point xe de contraction et point xe de monotonie,
− les méthodes de type Newton.

3.1 Les méthodes de point xe


3.1.1 Point xe de contraction
Soit g ∈ C(Rn , Rn ), on dénit la fonction f ∈ C(Rn , Rn ) par f (x) = x − g(x). On peut alors
remarquer que g(x) = 0, si et seulement si, f (x) = x. Résoudre le système non linéaire (3.1)
revient donc à trouver un point xe de f. Encore faut-il qu'un tel point xe existe.... On
rappelle le théoreme de point xe bien connu:
Theorem 3.1.1. (Point xe). Soit E un espace métrique complet, d la distance sur E,
et f : E → E une fonction strictement contractante, c'est-à-dire, il existe α ∈]0, 1[, tel que
d(f (x), f (y)) ≤ α · d(x, y), pour tout x, y ∈ E. Alors il existe un unique point xe x ∈ E qui
vérie f (x) = x. De plus, si x(0) ∈ E, et x(k+1) = f (x(k) ), ∀k ≥ 0, alors x(k) → x, quand
k → ∞.
Proof. Etape 1: Existence de x et convergence de la suite.
Soit x(0) ∈ E et (x(k) )k∈N , la suite dénie par x(k+1) = f (x(k) ), ∀k ≥ 0. On va montrer que:
1. (x(k) )k∈N est de Cauchy (donc convergente car E est complet),

2. lim x(k) = x, est point xe de f.


k→∞

35
Par hypothèse, on sait que pour tout k ≥ 1,
d x(k+1) , x(k) = d f (x(k) ), f (x(k−1) ) ≤ α · d x(k) , x(k−1) .
  

Par récurrence sur k, on obtient


d x(k+1) , x(k) ≤ αk · d x(1) , x(0) , ∀k ≥ 0.
 

Soit n ≥ k et p ≥ 1, on a donc:
d x(n+p) , x(k) ≤ d x(n+p) , x(n+p−1) + ... + d x(k+1) , x(k)
  

n+p−k
X
d x(q+k) , x(q+k−1)

=
q=1
n+p−k
X
αq+k−1 d x(1) , x(0)

=
q=1
n+p−k−1
X
(1) (0) k
αq

= d x ,x α
q=0
 α k
≤ d x(1) , x(0) → 0, lorsque k → ∞.
1−α
La suite (x(k) )k∈N est donc de Cauchy, i.e.,
∀ > 0, ∃n ∈ N, ∀n ∈ N, ∀p ≥ 1, n ≥ k ≥ n ⇒ d x(n+p) , x(k) < .


Comme E est complet, on a x(k) → x dans E, lorsque k → ∞. Comme la fonction f est


strictement contractante, elle est continue, on en déduire que f (x(k) ) → f (x) dans E quand
k → ∞. En passant à la limite dans l'égalité x(k+1) = f (x(k) ), on en déduit que x = f (x).
Etape 2: Unicité
Soit x et y des points xes de f, qui satisfont x = f (x) et y = f (y). Alors d(f (x), f (y)) =
d(x, y) ≤ α · d(x, y); comme 0 < α < 1, ceci est impossible sauf si x = y.
La méthode du point xe s'appelle aussi méthode des itérations successives. Dans le cadre
de ce cours, nous prendrons E = Rn , et la distance associée est la norme euclidienne, que
nous noterons | · |:
n
!1/2
∀x, y ∈ Rn , avec x = (x1 , ..., xn ), y = (y1 , ..., yn ), d(x, y) = |x − y| =
X
(xj − yj )2 .
j=1

Remark 3.1.1. 1. Sous les hypothèses du théorème 3.1.1, d x(k+1) , x = d f (x(k) ), f (x) ;
 

donc si x(k) 6= x, alors (d(x(k) ,x)) ≤ α (< 1), voir à ce sujet la dénition 3.2.1. La
d x(k+1) ,x

convergence est donc au moins linéaire (même si, cette méthode converge en général
assez lentement).
2. Le théorème 3.1.1 se généralise en remplaçant l'hypothèse "f strictement contractante" par
"il existe k > 0, tel que, f (k) = |f ◦ f {z
◦ ... ◦ f est strictement contractante" (reprendre
}
k fois

la démonstration du théorème pour le vérier).

36
La question qui vient alors naturellement est: que faire pour résoudre g(x) = 0 si la
méthode du point xe appliquée à la fonction x → x − g(x) ne converge pas? Dans ce cas,
f n'est pas strictement contractante; une idée possible est de pondérer la fonction g par un
paramètre ω 6= 0 et d'appliquer les itérations de point xe à la fonction fω (x) = x−ωg(x), on
remarque là encore que x est encore solution du système (3.1), si et seulement si, x est point
xe de fω (x). On aimerait dans ce cas trouver ω pour que fω soit strictement contractante,
i.e., pour que |fω (x) − fω (y)| = |x − y − ω(g(x) − g(y))| ≤ α|x − y| pour tout x, y ∈ Rn , avec
α < 1. Or
|x − y − ω(g(x) − g(y))|2 = (x − y − ω(g(x) − g(y))) · (x − y − ω(g(x) − g(y)))
= |x − y|2 − 2(x − y) · (ω (g(x) − g(y))) + ω 2 |g(x) − g(y)|2 .

Supposons que g soit lipschitzienne, et soit M > 0 sa constante de Lipschitz:


(3.2) |g(x) − g(y)| ≤ M |x − y|, ∀x, y ∈ Rn .

On a donc
|x − y − ω(g(x) − g(y))|2 ≤ (1 + ω 2 M 2 )|x − y|2 − 2(x − y) · (ω (g(x) − g(y))).

Or on veut |x − y − ω(g(x) − g(y))|2 ≤ α|x − y|2 , avec α < 1. On a donc intérêt à ce que le
terme −2(x − y) · (ω (g(x) − g(y))) soit de la forme −a|x − y|2 , avec a strictement positif.
Pour obtenir ceci, on va supposer de plus que:
(3.3) ∃β > 0, tel que (g(x) − g(y)) · (x − y) ≥ β|x − y|2 , ∀x, y ∈ Rn .

On obtient alors:
|x − y − ω(g(x) − g(y))|2 ≤ (1 + ω 2 M 2 − 2βω)|x − y|2 .

Et donc si ω ∈]0, M2β2 [, le polynôme ω 2 M 2 − 2βω est strictement négatif: soit −µ (noter que
µ ∈]0, 1[, pour β < M2 ) ce polynôme, on obtient

|x − y − ω(g(x) − g(y))|2 ≤ (1 − µ)|x − y|2 .

D'où le théorème suivant:


Theorem 3.1.2. (Point xe de contraction avec relaxation). On désigne par | · |
la norme euclidienne sur Rn . Soit g ∈ C(Rn , Rn ) lipschitzienne de constante de Lipschitz
M > 0, et telle que (3.3) est vériée: alors la fonction fw : x 7→ x − ωg(x) est strictement
contractante si 0 < ω < M2β2 . Il existe donc un et un seul x ∈ Rn tel que g(x) = 0 et x(k) → x,
quand k → ∞, avec x(k+1) = fω (x(k) ) = x(k) − ωg(x(k) ).
Remark 3.1.2. Le théorème 3.1.2 permet de montrer que sous les hypothèses (3.3) et (3.2),
et pour ω ∈]0, 2β
M2
[, on peut obtenir la solution de (3.1) en construisant la suite:

x(k+1) = x(k) − ωg(x(k) ), k ≥ 0;
(3.4)
x(0) ∈ Rn .
Or on peut aussi écrire cette suite de la manière suivante:
e(k+1) = f (x(k) ),

x k ≥ 0;
(3.5) (k+1) (k+1)
x = ωe
x + (1 − ω)x , x(0) ∈ Rn .
(k)

37
En eet si x(k+1) est donné par la suite (3.5), alors
x(k+1) = ωe
x(k+1) + (1 − ω)x(k) = ωf (x(k) ) + (1 − ω)x(k) = −ωg(x(k) ) + x(k) .
Le procédé de construction de la suite (3.5) est l'algorithme de relaxation sur f.
Remark 3.1.3. (Quelques rappels de calculs diérentiels).
Soit h ∈ C2 (Rn , R). La fonction h est donc en particulier dierentiable, i.e., pour tout x ∈ Rn ,
il existe Dh(x) ∈ L(Rn , R) telle que
h(x + η) = h(x) + Dh(x)(η) + |η|ε(η), avec ε(η) → 0.
η→0

On a dans ce cas, par dénition du gradient, Dh(x)(η) = ∇h(x) · η où ∇h(x) = (∂1 h(x), ...,
∂n h(x))t ∈ Rn , est le gradient de h au point x (on désigne par ∂i h(x) la dérivee partielle de
h par rapport à sa i-ème variable). Comme on suppose h ∈ C2 (Rn , R), on a donc g = ∇h ∈
C1 (Rn , Rn ), et g est continument dierentiable, c'est-à-dire
Dg(x) ∈ L(Rn , Rn ), et g(x + η) = g(x) + Dg(x)(η) + |η|ε(η), avec ε(η) → 0.
η→0

Comme Dg(x) ∈ L(Rn , Rn ), on peut représenter Dg(x) par une matrice de Mn (R), on
confond alors l'application linéaire et la matrice qui la représente dans la base canonique,
et on écrit par abus de notation Dg(x) ∈ Mn (R). On peut alors écrire, grâce à cet abus de
notation,
n
Dg(x)(η) = Dg(x)η, avec (Dg(x)η)i = hj (x), où ∂i,j h(x) = ∂i (∂j h)(x) et η = (η1 , ..., ηn )t .
X
2 2
ηj ∂i,j
j=1

Comme h est de classe C 2 , la matrice Dg(x) est symétrique, et donc diagonalisable dans R.
Pour x ∈ Rn , on note (λi (x))1≤i≤n les valeurs propres de Dg(x), qui sont donc réelles.
La proposition suivante donne une condition susante pour qu'une fonction vérie les
hypothèses (3.2) et (3.3).
Proposition 3.1.1. Soit h ∈ C2 (Rn , R), et (λi (x))i=1,...,n , les valeurs propres de la matrice
hessienne de h. On suppose qu'il existe des réels strictement positifs γ et θ tels que −λ ≤
λi (x) ≤ −λ, ∀i ∈ {1, ..., n}, ∀x ∈ Rn . (Notons que cette hypothèse est plausible puisque les
valeurs propres de la matrice hessienne sont réelles). Alors la fonction g = ∇h (gradient de
h) vérie les hypothèses (3.2) et (3.3) du théorème 3.1.2, avec β = θ et M = γ.
Proof. Montrons d'abord que l'hypothèse (3.3) est vériée. Soient x, y ∈ Rn , on veut montrer
que (g(x) − g(y)) · (y − x) ≤ −θ|x − y|2 . On introduit pour cela la fonction ϕ ∈ C1 (R, Rn )
dénie par:
ϕ(t) = g(x + t(y − x)).
On a ϕ(1) − ϕ(0) = g(y) − g(x) = 01 ϕ (t)dt. Puisque, ϕ (t) = Dg(x + t(y − x))(y − x), on
R 0 0

obtient g(y) − g(x) = 01 Dg(x + t(y − x))(y − x)dt. Delà, il vient que
R

Z 1
(g(y) − g(x)) · (y − x) = (Dg(x + t(y − x))(y − x) · (y − x))dt.
0

Comme λi (x) ∈ [−λ, −λ], ∀i ∈ {1, ..., n}, ∀x ∈ Rn , on a


−λ|y|2 ≤ Dg(z)y · y ≤ −λ|y|2 , pour tout z ∈ Rn .

38
D'où Z 1
(g(y) − g(x)) · (y − x) ≥ −λ|y − x|2 dt = −λ|y − x|2 ,
0

ce qui montre que l'hypothèse (3.3) est bien vériée.


Montrons maintenant que l'hypothèse (3.2) est vériée. On veut montrer que |g(y) − g(x)| ≤
λ|y − x|. Comme Z 1
g(y) − g(x) = (Dg(x + t(y − x))(y − x))dt,
0
on a
Z 1
|g(y) − g(x)| ≤ |Dg(x + t(y − x))(y − x)|dt
0
Z 1
≤ |Dg(x + t(y − x))||y − x|dt,
0

où | · | désigne la norme sur Mn (R) induite par la norme euclidienne sur Rn .


Puisque λi (x) ∈ [−λ, −λ], ∀i ∈ {1, ..., n}, ∀x ∈ Rn , la matrice Dg(x+t(y−x)) est symétrique
dénie positive, d'où son rayon spectral est égal à sa norme, pour la norme induite par la
norme euclidienne. Ainsi:
|Dg(x + t(y − x))| ≤ ρ(Dg(x + t(y − x))) ≤ γ = −λ.

On a donc montré que: |g(y) − g(x)| ≤ λ|y − x|, ce qui termine la démonstration.
Remark 3.1.4. (Un cas particulier). Dans de nombreux cas issus de la discrétisation
d'équations aux dérivées partielles, la question de résolution d'un problème non linéaire
apparait sous la forme Ax = R(x) où A est une matrice carrée d'ordre n inversible, et
R ∈ C(Rn , Rn ). On peut le reécrire sous la forme x = A−1 R(x) et appliquer l'algorithme de
point xe sur la fonction f : x 7→ A−1 Rx, ce qui donne comme itération: x(k+1) = A−1 R(x(k) ).
Si on pratique un point xe avec relaxation, dont le paramètre de relaxation ω > 0, alors
l'itération s'écrit:
e(k+1) = A−1 R(x(k) ),
x x(k+1) = ωe
x(k+1) + (1 − ω)x(k) .

3.1.2 Point xe de monotonie


Theorem 3.1.3. (Point xe de monotonie).
Soient A ∈ Mn (R) et R ∈ C(R , R ). On suppose que:
n n

1. la matrice A est une matrice d'inverse positive ou IP -matrice (voir che T D3), i.e., A
est inversible et tous les coecients de A−1 sont positifs ou nuls, ce qui est équivalent
à dire que:
Ax ≥ 0 ⇒ x ≥ 0,
au sens composante par composante, c'est-à-dire ((Ax)i ≥ 0, ∀i = 1, ..., n) ⇒ (xi ≥
0, ∀i = 1, ..., n).
2. R est monotone, c'est-à-dire, si x ≥ y (composante par composante) alors R(x) ≥ R(y)
(composante par composante).
3. 0 est une sous-solution du problème, c'est-à-dire, 0 ≤ R(0) et il existe x e ≥ 0, tel
e ∈ Rn , x
que xe est une sur-solution du problème, c'est-à-dire, Aex ≥ R(ex).
On pose x(0) = 0 et Ax(k+1) = R(x(k) ). On a alors:

39
1. 0 ≤ x(k) ≤ x
e, ∀k ∈ N,
2. x(k+1) ≥ x(k) , ∀k ∈ N,
3. x(k) → x, lorsque k → ∞ et Ax = R(x).

Proof. Comme A est inversible la suite (x(k) )k∈N vériant



x(0) = 0,
Ax(k+1) = R(x(k) ), k ≥ 0,

est bien dénie. On va montrer par récurrence sur k que 0 ≤ x(k) ≤ xe, pour tout k ≥ 0 et
que x(k) ≤ x(k+1) , pour tout k ≥ 0.
1. Pour k = 0, on a x(0) = 0 et donc 0 ≤ x(0) ≤ xe, et Ax(1) = R(x(0) ) ≥ 0. On en déduit que
x(1) ≥ 0, grâce aux hypothèses 1 et 3 et donc x(1) ≥ x(0) = 0.
2. On suppose maintenant (hypothèse de récurrence) que 0 ≤ x(p) ≤ xe, et x(p) ≤ x(p+1) , pour
tout p ∈ {0, ..., k − 1}. On veut montrer que 0 ≤ x(k) ≤ xe, et que x(k) ≤ x(k+1) . Par
hypothèse de récurrence, pour p = k − 1, on sait que x(k) ≥ x(k−1) et que x(k−1) ≥ 0.
On a donc x(k) ≥ 0. Par hypothèse de récurrence, on a également x(k−1) ≤ xe, et
grâce à l'hypothèse 2, on obtient R(x(k−1) ) ≤ R(e x). Par dénition de la suite (x(k) )k∈N ,
on a: Ax(k) = R(x(k−1) ) et grâce à l'hypothèse 3, on sait que Ae x ≥ R(e x). On a
donc: A(e (k)
x − x ) ≥ R(e x) − R(x (k−1)
). On en déduit alors (grâce à l'hypothèse 1) que
x(k) ≤ xe.
De plus, comme Ax(k) = R(x(k−1) ) et Ax(k+1) = R(x(k) ), on a A(x(k+1) − x(k) ) =
R(x(k) )−R(x(k−1) ) ≥ 0 (par l'hypothèse 2). Utilisant l'hypothèse 1, il vient que x(k+1) ≥
x(k) . On a ainsi montré (par récurrence) que

0 ≤ x(k) ≤ x e, ∀k ∈ N,
(k) (k+1)
x ≥ x , ∀k ∈ N.

Ces inégalités s'entendent composante par composante, i.e., si x(k) = (x(k) (k) t
1 , ..., xn ) ∈
Rn et x en )t ∈ Rn , alors 0 ≤ xi ≤ x ei et xi ≤ xi , ∀i ∈ {1, ..., n} et
(k) (k) (k+1)
e = (e x1 , ..., x
∀k ≥ 0.
Soit i ∈ {1, ..., n}, la suite (x(k)
i )k∈N ⊂ R est croissante et majorée par x ei , donc il existe
xi ∈ R, tel que, xi = lim xi . Si on pose x = (x1 , ..., xn ) ∈ R , on a x(k) → x, lorsque
(k) t n
k→∞
k → ∞.
Enn, comme Ax(k+1) = R(x(k) ) et comme R est continue, on obtient par passage à la
limite lorsque k → ∞ que Ax = R(x) et que 0 ≤ x ≤ xe.

Theorem 3.1.4. (Généralisation du précédent).


Soit A ∈ Mn (R), R ∈ C1 (Rn , Rn ), R = (R1 , ..., Rn )t , tels que
1. Pour tout β ≥ 0 et pour tout x ∈ Rn , Ax + βx ≥ 0 ⇒ x ≥ 0
2. ∂Rj
∂xi
≥ 0, ∀i, j tel que i 6= j (Ri est monotone croissante par rapport à la variable xj ,
si j 6= i) et ∃γ > 0, −γ ≤ ∂R ∂xi
i
≤ 0, ∀x ∈ Rn , ∀i ∈ {1, ..., n} (Ri est monotone
décroissante par rapport à la variable xi ).

40
3. 0 ≤ R(0) (0 est sous-solution) et ∃e x ≥ 0, tel que, Ae x) ( x
x ≥ R(e e est sur-solution). Soient
x(0) = 0, β ≥ γ , et (x(k) )k∈N la suite dénie par Ax(k+1) + βx(k+1) = R(x(k) ) + βx(k) .
Cette suite converge vers x ∈ Rn et Ax = R(x). De plus, 0 ≤ x(k) ≤ xe, ∀k ∈ N, et
x(k) ≤ x(k+1) , ∀k ∈ N.
Proof. On se ramène au théoreme précédent avec A + βId au lieu de A et R + β au lieu de
R.
Remark 3.1.5. (Point xe de Brouwer). Jusqu'ici, on s'est intéressé uniquement à des
théorèmes de point xe "constructifs", i.e., qui donnent un algorithme pour le déterminer. Il
existe aussi un théorème de point xe dans Rn avec des hypothèses beaucoup plus générales
(mais le théorème est non constructif), c'est le théorème de Brouwer: si f est une fonction
continue de la boule unité de Rn dans la boule unité, alors elle admet un point xe dans la
boule unité.

3.2 Vitesse de convergence


Denition 3.2.1. (Vitesse de convergence). Soit (x(k) )k∈N ⊂ Rn et x ∈ Rn . On suppose
que x(k) → x, lorsque k → ∞, que la suite est non stationnaire, i.e., x(k) 6= x, pour tout
k ∈ N, et que

kx(k+1) − xk
(3.6) lim = β ∈ [0, 1]
k→∞ kx(k) − xk

On s'intéresse à la "vitesse de convergence" de la suite (x(k) )k∈N . On dit que:


1. La convergence est sous-lineaire si β = 1.
2. La convergence est au moins linéaire si β ∈ [0, 1[.
3. La convergence est linéaire si β ∈]0, 1[.
4. La convergence est super linéaire si β = 0. Dans ce cas, on dit également que:
(a) La convergence est au moins quadratique s'il existe γ ∈ R+ et il existe n0 ∈ N,
tels que, si k ≥ n0 alors kx(k+1) − xk ≤ γkx(k) − xk2 .
(b) La convergence est quadratique si
kx(k+1) − xk
lim = γ > 0.
k→∞ kx(k) − xk2

Plus généralement, on dit que:


(a) La convergence est au moins d'ordre q s'il existe γ ∈ R+ et il existe n0 ∈ N,
tels que, si k ≥ n0 alors kx(k+1) − xk ≤ γkx(k) − xkq .
(b) La convergence est d'ordre q si
kx(k+1) − xk
lim = γ > 0.
k→∞ kx(k) − xkq

Remark 3.2.1. (Sur la vitesse de convergence des suites).

41
− Remarquons d'abord que si une suite (x(k) )k∈N ⊂ Rn converge vers x ∈ Rn , lorsque k tend
vers l'inni, alors on a forcément β ≤ 1 dans (3.6). En eet, si la suite vérie (3.6)
avec β > 1, alors il existe n0 ∈ N, tel que si k ≥ n0 on a: kx(k) − xk ≥ kx(n0 ) − x|, ce
qui contredit la convergence.
− Quelques exemples de suites qui convergent sous-linéairement: xn = √1n , xn = n1 , mais
aussi, de manière moins intuitive: xn = n12 ,.... Toutes ces suites vérient l'égalite (3.6)
avec β = 1.
− Attention, contrairement à ce que pourrait suggérer son nom, la convergence linéaire (au
sens donné ci-dessus), est déjà une convergence très rapide. Les suites géométriques
dénies par xn = β n avec β ∈]0, 1[ sont des suites qui convergent linéairement (vers
0), car elles vérient évidemment (3.6) avec β ∈]0, 1[.
− la convergence quadratique est encore plus rapide! Par exemple la suite dénie par xn+1 =
x2n converge de manière quadratique pour un choix initial x0 ∈]0, 1[. Mais si par mal-
heur le choix initial est en dehors de cet intervalle, la suite diverge alors très vite... de
manière exponentielle, en fait, puisque xn = exp(2n ln x0 ). C'est le cas de la méthode de
Newton, que nous allons introduire maintenant. Lorsqu'elle converge, elle converge très
vite (nous démontrerons que la vitesse de convergence est quadratique). Mais lorsqu'elle
diverge, elle diverge aussi très vite...
Pour construire des méthodes itératives qui convergent "super vite", nous allons donc
essayer d'obtenir des vitesses de convergence super linéaires. C'est dans cet esprit que nous
étudions dans la proposition suivante des conditions susantes de convergence de vitesse
quadratique pour une méthode de type point xe, dans le cas d'une fonction f de R dans R.
Proposition 3.2.1. (Vitesse de convergence d'une méthode de point xe). Soit
f ∈ C1 (R, R), on suppose qu'il existe x ∈ R, tel que f (x) = x. On construit la suite

x(0) ∈ R,
x(k+1) = f (x(k) ).

1. Si on suppose que f (x) 6= 0 et |f (x)| < 1, alors il existe α > 0, tel que, si x(0) ∈ Iα =
0 0

[x − α, x + α], on a x(k) → x, lorsque k → ∞. De plus, si x(k) 6= x pour tout k ∈ N,


alors
|x(k+1) − x|
→ |f (x)| = β, avec β ∈]0, 1[.
0

(k)
|x − x|
La convergence est donc linéaire.
2. Si on suppose maintenant que f (x) = 0 et f ∈ C2 (R, R), alors il existe α > 0, tel que, si
0

x(0) ∈ Iα = [x − α, x + α], on a x(k) → x, quand k → ∞ et si x(k) 6= x, ∀k ∈ N, alors

|x(k+1) − x| 1 00
(k) 2
→ β = |f (x)|.
|x − x| 2
Dans ce cas, la convergence est donc au moins quadratique.
Proof. 1. Supposons que |f 0 (x)| < 1, et montrons qu'il existe α > 0, tel que, si x(0) ∈ Iα =
[x − α, x + α], on a x(k) → x, lorsque k → ∞. Comme f ∈ C1 (R, R), il existe α > 0 tel
que γ = max{|f (x)| : |f (x)| < 1} existe (par continuité de f ).
0 0 0

x∈Iα
On va maintenant montrer que f : Iα → Iα est strictement contractante, on pourra
alors appliquer le théorème du point xe à f|Iα (Iα étant fermé), pour avoir x(k) → x,

42
où x est l'unique point xe de f|Iα .
Soit x ∈ Iα , montrons d'abord que f (x) ∈ Iα : comme f ∈ C1 (R, R), il existe ξ ∈]x, x[,
tel que |f (x) − x| = |f (x) − f (x)| = |f (ξ)||x − x| ≤ γ|x − x| < α, ce qui prouve que
0

f (x) ∈ Iα .
On vérie alors que f|Iα est strictement contractante en remarquant que pour tous
x, y ∈ Iα , x < y, il existe ξ ∈]x, y[ (⊂ Iα ) tel que |f (x)−f (y)| = |f (ξ)||x−y| ≤ γ|x−y|,
0

avec γ < 1.
On a ainsi montré que x(k) → x, si x(0) ∈ Iα .
Cherchons maintenant la vitesse de convergence de la suite. Supposons que f (x) 6= 0
0

et x(k) 6= x, pour tout k ∈ N. Comme x(k+1) = f (x(k) ) et x = f (x), on a |x(k+1) −


x| = |f (x(k) ) − f (x)|. Comme f ∈ C1 (R, R), il existe ξn ∈]x(k) , x[ ou ]x, x(k) [, tel que
f (x(k) ) − f (x) = f (ξn )(x(k) − x). On a donc

|x(k+1) − x|
= |f (ξn )| → |f (x)|, car x(k) → x, et f est continue.
0 0 0

(k)
|x − x|

On a donc une convergence linéaire.


2. Supposons maintenant que f ∈ C2 (R, R) et f (x) = 0. On sait déjà par ce qui précéde
0

qu'il existe α > 0 tel que si x(0) ∈ Iα , alors x(k) → x, lorsque k → ∞. On veut
estimer la vitesse de convergence. On suppose pour celà que x(k) 6= x, ∀k ∈ N. Comme
f ∈ C2 (R, R), il existe ξn ∈]x(k) , x[ ou ]x, x(k) [, tel que

0 1 00
f (x(k) ) − f (x) = f (x)(x(k) − x) + f (ξn )(x(k) − x)2 .
2
On a donc: x(k+1) − x = 21 f (ξn )(x(k) − x)2 , ce qui entraine, par continuité de f , que
00 00

|x(k+1) − x| 1 00 1 00
= |f (ξn )| → |f (x)|, quand n → ∞.
|x(k) − x|2 2 2

La convergence est donc quadratique.

3.3 Méthode de Newton dans R


On va étudier dans le paragraphe suivant la méthode de Newton pour la résolution d'un
système non linéaire. (En fait, il semble que l'idée de cette méthode revienne plutôt à Simp-
son). Donnons l'idée de la méthode de Newton dans le cas n = 1 à partir des résultats de
la proposition précédente. Soit g ∈ C3 (R, R) et x ∈ R, tel que g(x) = 0. On cherche une
méthode de construction d'une suite (x(k) )k ⊂ R qui converge vers x de manière quadratique.
On pose
f (x) = x + h(x)g(x), avec h ∈ C2 (R, R) tel que, h(x) 6= 0, ∀x ∈ R,
et on a
f (0) = 0 ⇔ g(0) = 0.
Si par miracle f (x) = 0, la méthode de point xe sur f va donner (pour x(0) ∈ Iα , donné par
0

la proposition 3.2.1) (x(k) )k∈N , tel que x(k) → x, de manière au moins quadratique. Puisqu'on
a f (x) = 1 + h (x)g(x) + h(x)g (x) et donc f (x) = 1 + h(x)g (x). Il sut donc de prendre
0 0 0 0 0

h tel que h(x) = g−1 . Ceci est possible si g (x) 6= 0.


0
0
(x)

43
En resumé, si g ∈ C3 (R, R) est telle que g (x) 6= 0, et g(x) = 0. on peut construire, pour x
0

assez proche de x, la fonction f ∈ C2 (R, R) dénie par


g(x)
f (x) = x − .
g 0 (x)
Grâce à la proposition 3.2.1, il existe α > 0 tel que si x(0) ∈ Iα , alors la suite dénie par
converge vers x de manière au moins quadratique.
(k) )
x(k+1) = f (x(k) ) = x(k) − gg(x
0
(x(k) )
Remarquons que dans le cas n = 1, la suite de Newton peut s'obtenir naturellement en
remplaçant l'équation g(x) = 0 par g(x(k+1) ) = 0, et g(x(k+1) ) par le développement limité
en x(k) :
0
g(x(k+1) ) = g(x(k) ) + g (x(k) )(x(k+1) − x(k) ) + |x(k+1) − x(k) |(x(k+1) − x(k) ).
C'est le plus sûr moyen mémotechnique pour retrouver l'itération de Newton:
(3.7) g(x(k) ) + g (x(k) )(x(k+1) − x(k) ) = 0 ou encore g (x(k) )(x(k+1) − x(k) ) = −g(x(k) ).
0 0

Comparons sur un exemple les méthodes de point xe et de Newton. On cherche le zero
de la fonction g : x 7→ x2 − 3 sur R+ . Notons en passant que la √
construction de la suite x(k)
par point xe ou Newton permet l'approximation eective de 3. Si on applique le point
xe standard, la suite (x(k) ) s'écrit
x(0) ∈ R, donné
x(k+1) = x(k) − (x(k) )2 + 3.

Si on applique le point xe avec paramètre de relaxation ω , la suite (x(k) ) s'écrit


x(0) ∈ R, donné
x(k+1) = x(k) + ω(−(x(k) )2 + 3).

Si maintenant on applique la méthode de Newton, la suite (x(k) ) s'écrit


x(0) ∈ R, donné
(k+1) (k) (x(k) )2 − 3
x = x − .
2x(k)
Comparons les suites produites par scilab à partir de x(0) = 1 par le point xe standard, le
point xe avec relaxation (ω = 0.1) et la méthode de Newton.
− point xe standard:
1 −3 −9 −87 −7653 −58576059 −3.431D + 15 −1.177D + 31
− point xe avec relaxation:
1. 1.2 1.356 1.472126 1.555410 1.613480 1.653148 1.679858
1.717234 1.722344 1.725697 1.727894 1.729332 1.730273 1.730888 1.731291
1.731554 1.731726 1.731838 1.731912 1.731960 1.731991 1.732012 1.73204
1.732043 1.732046 1.732047 1.732048 1.732049 1.73205 1.732050 1.732050
1.732050 1.732050 1.732050 1.732050 1.732050
− Newton:
1. 2. 1.75 1.7321429 1.7320508 1.7320508.

44
Remark 3.3.1. (Attention à l'utilisation du théorème des accroissements nis...).
On a fait grand usage du théorème des accroissements nis dans ce qui précède. Rappelons
que sous la forme qu'on a utilisé, ce théorème n'est validé que pour les fonctions de R dans
R. On pourra s'en convaincre en considérant la fonction de R dans R2 dénie par:
h i
sin x .
ψ(x) = cos x

On peut vérier facilement qu'il n'existe pas de ξ ∈ R tel que ψ(2π) − ψ(0) = 2πψ0 (ξ).

45
Chapter 4
Dérivation numérique en dimensions un
et deux et introduction aux méthodes
des diérences nies
Pour passer d'un problème exact continu régit par une EDP au problème approché discret,
il existe trois grandes familles de méthodes:
1. Les diérences nies.
La méthode consiste à remplacer les dérivées partielles par des diérences divisées ou
combinaisons de valeurs ponctuelles de la fonction en un nombre ni de points discrets
ou noeuds du maillage.
Avantages: grande simplicité d'écriture et faible coût de calcul.
Inconvénients: limitation à des géométries simples, dicultés de prise en compte des
conditions aux limites de type Neumann.
2. Les volumes nis.
La méthode intègre, sur des volumes élémentaires de forme simple, les équations écrites
sous forme de loi de conservation. Elle fournit ainsi de manière naturelle des approxi-
mations discrètes conservatives et est particulièrement bien adaptée aux équations de
la mécanique des uides. Sa mise en oeuvre est simple avec des volumes élémentaires
rectangles.
Avantages: permet de traiter des géométries complexes avec des volumes de forme
quelconque, détermination plus naturelle des conditions aux limites de type Neumann.
Inconvénient: peu de résultats théoriques de convergence.
3. Les éléments nis.
La méthode consiste à approcher, dans un sous-espace de dimension nie, un problème
écrit sous forme variationnelle (comme minimisation de l'énergie en général) dans un
espace de dimension innie. La solution approchée est dans ce cas une fonction déter-
minée par un nombre ni de paramètres comme, par exemple, ses valeurs en certains
points ou noeuds du maillage.
Avantages: traitement possible de géométries complexes, nombreux résultats théoriques
sur la convergence.
Inconvénient: complexité de mise en oeuvre et grand coût en temps de calcul et
mémoire.
Ce chapitre sera consacré uniquement à l'étude des méthodes de diérences nies.

4.1 Principe d'ordre de précision


La méthode des diérences nies consiste à approximer les dérivées des équations de la
physique au moyen des développements de Taylor et se déduit directement de la dénition
de la dérivée. Elle est due aux travaux de plusieurs mathématiciens du 18éme siècle (Euler,
Taylor, Leibniz...).

46
Soit u(x, y, z, t) une fonction de l'espace et du temps. Par dénition de la dérivée, on a:
∂u u(x + ∆x, y, z, t) − u(x, y, z, t)
= lim .
∂x ∆x→0 ∆x
Si ∆x est petit, un développement de Taylor de u(x + ∆x, y, z, t) au voisinage de x donne:
∂u (∆x)2 ∂ 2 u (∆x)3 ∂ 3 u
u(x+∆x, y, z, t) = u(x, y, z, t)+∆x (x, y, z, t)+ (x, y, z, t)+ (x, y, z, t)+...
∂x 2 ∂x2 6 ∂x3
En tronquant la série au premier ordre en ∆x, on obtient:
u(x + ∆x, y, z, t) − u(x, y, z, t) ∂u
= (x, y, z, t) + O(∆x).
∆x ∂x
L'approximation de la dérivée ∂u
∂x
est alors d'ordre 1 indiquant que l'erreur de troncature
O(∆x) tend vers zéro comme puissance première de ∆x.
Denition 4.1.1. la puissance de ∆x avec laquelle l'erreur de troncature tend vers zéro est
appelée l'ordre de la méthode.

4.2 Notation indicielle: cas 1D


Considérons un cas monodimensionnel où l'on souhaite déterminer une grandeur u(x) sur
l'intervalle [0, 1]. La recherche d'une solution discrète de la grandeur u amène à constituer un
maillage de l'intervalle de dénition. On considère un maillage (ou grille de calcul) composé
de N + 1 points xi , pour i = 0, ..., N, régulièrement espacés avec un pas ∆x. Les points
xi = i∆x sont appelés les noeuds du maillage.
Le problème continu de départ de détermination d'une grandeur sur un ensemble de di-
mension innie se ramène ainsi à la recherche de N valeurs discrètes de cette grandeur aux
diérents noeuds du maillage.
Notation. on note ui la valeur discrète de u(x)  au point xi , soit ui = u(xi ). De même pour
la dérivée de u(x) au noeud xi , on note ∂u . Cette notation s'utilise de
∂u 0
∂x x=xi
= ∂x i
= ui
façon équivalente pour toutes les dérivées d'ordre successif de la grandeur u.
Le schéma aux diérences nies d'ordre 1 présenté ci-dessus s'écrit, en notation indicielle:
 
∂u ui+1 − ui
= + O(∆x).
∂x i ∆x

Ce schéma est dit "avant" ou "décentré avant" ou upwind. De plus, il est possible de con-
struire un autre schéma d'ordre 1, appelé "arrière":
 
∂u ui − ui−1
= + O(∆x).
∂x i ∆x

4.3 Schéma d'ordre supérieur


Des schémas aux diérences nies d'ordre supérieur peuvent être construits en manipulant
des développement de Taylor au voisinage de xi . On écrit:
(∆x)2 ∂ 2u
   
∂u
ui+1 = u(xi + ∆x) = ui + ∆x + + O(∆x3 )
∂x i 2 ∂x2 i

47
(∆x)2 ∂ 2u
   
∂u
ui−1 = u(xi − ∆x) = ui − ∆x + + O(∆x3 ).
∂x i 2 ∂x2 i

La soustraction de ces deux relations donne: ui+1 − ui−1 = 2∆x ∂u + O(∆x3 ). Ce qui

∂x i
permet d'obtenir le schéma d'ordre deux dit "centré" pour approximer la dérivée première
de u:  
∂u ui+1 − ui−1
= + O(∆x2 ).
∂x i 2∆x
Pour obtenir des ordres supérieurs, il faut utiliser plusieurs noeuds voisins de xi . Le nombre
de points nécessaire à l'écriture du schéma s'appelle le stencil. Par exemple, un schéma aux
diérences nies d'ordre 3 pour la dérivée première s'écrit:
 
∂u −ui+2 + 6ui+1 − 3ui − 2ui−1
= + O(∆x3 ).
∂x i 6∆x

4.4 Dérivée d'ordre supérieur


Le principe est identique et répose sur les développements de Taylor au voisinage de xi . Par
exemple, pour construire un schéma d'approximation de la dérivée seconde de u, on écrit:
(∆x)2 ∂ 2 u (∆x)3 ∂ 3 u
     
∂u
ui+1 = u(xi + ∆x) = ui + ∆x + 2
+ 3
+ O(∆x4 )
∂x i 2 ∂x i 6 ∂x i

(∆x)2 ∂ 2 u (∆x)3 ∂ 3 u
     
∂u
ui−1 = u(xi − ∆x) = ui − ∆x + − + O(∆x4 ).
∂x i 2 ∂x2 i 6 ∂x3 i
 2 
En faisant la somme de ces deux égalités, on aboutit à: ui+1 + ui−1 − 2ui = (∆x)2 ∂∂xu2 +
i
O(∆x4 ). Ce qui permet d'obtenir le schéma d'ordre deux dit "centré" pour approximer la
dérivée seconde de u:  2 
∂ u ui+1 − 2ui + ui−1
2
= 2
+ O(∆x2 ).
∂x i ∆x
Il existe aussi une formulation "avant" et "arrière" pour la dérivée seconde, toute deux
d'ordre 1:
∂ 2u ∂ 2u
   
ui+2 − 2ui+1 + ui ui − 2ui−1 + ui−2
= + O(∆x), = + O(∆x).
∂x2 i ∆x2 ∂x2 i ∆x2

Il est également possible de construire, par le même procédé, des schémas aux diérences
nies d'ordre supérieur pour les dérivées deuxième, troisième, etc...

4.5 Généralisation de la notation indicielle


Dans le cas 1D instationnaire, considérons l'évolution d'une grandeur u(x, t) en fonction de
l'espace et du temps. Le domaine de dénition de u est décomposé en N noeuds xi répartis
régulièrement avec un pas d'espace ∆x. De même, le temps est décomposé en intervalles
élémentaires de pas constant ∆t. On notera uni la valeur discrète de la grandeur u(x, t) au
noeud xi et au temps n∆t.
Dans le cas 2D, considérons une grandeur u(x, y) dénie sur un certain domaine. Ce
dernier est décomposé en N × P noeuds (xi , yj ) répartis régulièrement avec un pas d'espace
∆x dans la direction x et ∆y dans l'autre direction. On notera uij la valeur discrète de la
grandeur u(x, y) au noeud (xi , yj ).

48
De façon similaire, dans le cas 2D instationnaire, on notera unij la valeur discrète de la
grandeur u(x, y, t) au noeud (xi , yj ) et au temps n∆t. Et dans le cas 3D instationnaire, on
notera unijk la valeur discrète de la grandeur u(x, y, z, t) au noeud (xi , yj , zk ) et au temps
n∆t.

4.6 Quelques schémas en 1D


Diérences nies avant, ordre 1 Diérences nies arrière, ordre 1
ui ui+1 ui+2 ui+3 ui+4 ui−4 ui−3 ui−2 ui−1 ui
∆xui
(1)
-1 1 ∆xui
(1)
-1 1
∆x2 ui
(2)
1 -2 1 ∆x2 ui
(2)
1 -2 1
∆x3 ui
(3)
-1 3 -3 1 ∆x3 ui
(3)
-1 3 -3 1
∆x4 ui
(4)
1 -4 6 -4 1 ∆x4 ui
(4)
1 -4 6 -4 1

Diérences nies centré, ordre 2 Diérences nies centreé, ordre 4


ui−2 ui−1 ui ui+1 ui+2 ui−3 ui−2 ui−1 ui ui+1 ui+2 ui+3
-1 1 1 -8 0 8 -1
0 0
2∆xui 12∆xui
1 -2 1 -1 16 -30 16 -1
00 00
∆x2 ui 12∆x2 ui
-1 2 0 -2 1 -1 -8 13 0 -13 8 -1
000 000
2∆x3 ui 8∆x3 ui
∆x4 ui
(4)
1 -4 6 -4 1 (4)
6∆x4 ui -1 12 -39 56 -39 12 -1

4.7 Dérivées croisées


Déterminons une approximation de la dérivée croisée ∂x∂y de la fonction à deux variables
∂ 2

f (x, y). La discrétisation du domaine de calcul est bidimensionnelle et fait intervenir deux
pas d'espace supposés constants ∆x et ∆y dans les directions x et y.
Le principe est toujours basé sur les déveleppoments de Taylor:
(l∆x)2 ∂ 2f (m∆y)2 ∂ 2f
       
∂f ∂f
f (xi+l , yj+m ) = f (xi , yj ) + l∆x + m∆y + +
∂x i ∂y j 2 ∂x2 i 2 ∂y 2 j
2
 
2lm∆x∆y ∂ f
+ .
2 ∂x∂y i,j

Au voisinage du point (i, j):


(4.1)
(∆x)2 ∂ 2f (∆y)2 ∂ 2f ∂ 2f
         
∂f ∂f
fi+1,j+1 = fi,j +∆x +∆y + + +∆x∆y ,
∂x i ∂y j 2 ∂x2 i 2 ∂y 2 j ∂x∂y i,j

(4.2)
(∆x)2 ∂ 2f (∆y)2 ∂ 2f ∂ 2f
         
∂f ∂f
fi−1,j−1 = fi,j −∆x −∆y + + +∆x∆y ,
∂x i ∂y j 2 ∂x2 i 2 ∂y 2 j ∂x∂y i,j

(4.3)
(∆x)2 ∂ 2f (∆y)2 ∂ 2f ∂ 2f
         
∂f ∂f
fi+1,j−1 = fi,j +∆x −∆y + + −∆x∆y ,
∂x i ∂y j 2 ∂x2 i 2 ∂y 2 j ∂x∂y i,j

(4.4)
(∆x)2 ∂ 2f (∆y)2 ∂ 2f ∂ 2f
         
∂f ∂f
fi−1,j+1 = fi,j −∆x +∆y + + −∆x∆y .
∂x i ∂y j 2 ∂x2 i 2 ∂y 2 j ∂x∂y i,j

49
En eectuant une combinaison linéaire des quatre équations précédentes (4.1)+(4.2)- (4.3)-
(4.4), nous obtenons une approximation de la dérivée croisée à l'ordre 1:
 2 
∂ f fi+1,j+1 − fi+1,j−1 − fi−1,j+1 + fi−1,j−1
= .
∂x∂y i,j 4∆x∆y

4.8 Exemple simple 1D avec conditions de Dirichlet


Considérons l'équation diérentielle suivante:
−u (x) = f (x), x ∈]0, 1[;
 00

(4.5)
u(0) = α et u(1) = β,

où f est une fonction continue.


Le maillage est construit en introduisant N + 1 noeuds xi , avec i = 0, ..., N, régulièrement
espacés avec un pas ∆x. La quantité ui désignera la valeur de la fonction u(x) au noeud xi .
L'équation à résoudre s'écrit, sous forme discrète en chaque noeud xi :
d2 u
 
− = f (xi ) = fi .
d2 x i

Approximons la dérivée seconde de u au moyen d'un schéma centré à l'ordre 2:


d2 u
 
ui+1 − 2ui + ui−1
= .
d2 x i ∆x2

L'équation discrétisée est ainsi:


ui+1 − 2ui + ui−1
− = fi , pour i = 1, ..., N − 1.
∆x2
Il est très pratique d'utiliser une formulation matricielle en faisant apparaître le vecteur des
inconnues discrètes:
−1 u1  f1 + α/∆x2
   
2 0 ... 0
... ..   u2  
−1 2 −1 .  f2
 
 .   .
 
1  ... ... ... .
 
..  =  .

0 0 
  
∆x2  .
.
 
 .
 .. . . . −1 ... .
  
fN −2
  
−1  
0 ... 0 −1 2 uN −1 fN −1 + β/∆x2

4.9 Exemple simple 1D avec conditions mixtes Dirichlet-


Neumann
Considérons l'équation diérentielle suivante:
−u (x) = f (x), x ∈]0, 1[;
 00

(4.6)
u(0) = α et
0
u (1) = β,

où l'on a cette fois une condition de Neumann en x = 1.

50
Les modications du problème discrétisé par rapport au cas précédent sont les suivantes.
Tout d'abord, le nombre d'inconnues a changé. Il y a une inconnue au bord en x = 1. Le
problème discret a donc maintenant, sur la base du même maillage que précédemment, N
inconnues ui pour i variant de 1 à N.
D'autre part, il faut discrétiser la condition de Neumann u (1) = β. Plusieurs choix sont
0

possibles pour approximer cette dérivée première. C'est un des inconvénients de la méthode
des diérences nies: elle ne donne pas de façon naturelle une bonne approximation des
conditions de Neumann.
Dans notre cas, utilisons une approximation d'ordre 1: u (1) = uN −u
0 N −1
∆x
.
Sous forme matricielle, on obtient:
 2 −1 0 . . . 0   u1  f1 + α/∆x2 
−1 2 −1 . . . ..  u2
.    f2

. . . . . ..
   
. . . . .

. . . 0 .  .  =  .
   
1 0
     
..   f
 ... . . . −1 . . . −1 0  

∆x2  .  
   
 N −2 
 ..

...
 
 uN −1  fN −1
.
  
2 −1
0 ... 0 −1 1 uN β/∆x

4.10 Discrétisation de l'équation de la chaleur 1D


Considérons le problème monodimensionnel de la conduction de la chaleur dans une barre
de 1m de longueur. Le champ de température T (x, t) vérie l'équation de la chaleur:
∂T ∂ 2T
=α 2,
∂t ∂x
où α est la diusivité thermique.
A cette EDP s'ajoute deux conditions aux limites aux extrémités de la barre T (0, t) = Tg et
T (1, t) = Td , ainsi qu'une condition initale T (x, 0) = T0 .
L'intervalle [0, 1] est discrétisé en N + 1 noeuds de coordonnées xi (i variant de 0 à N )
régulièrement espacés. Notons ∆x le pas d'espace. Le temps est discrétisé en intervalles de
pas constant ∆t. Notons Tin la température au noeud xi = i∆x et à l'instant tn = n∆t.
On peut utiliser deux approches pour discrétiser cette équation de la chaleur. La première
dite explicite utilise une discrétisation au noeud xi et à l'itération courante n:
n n
∂ 2T
 
∂T
=α ,
∂t i ∂x2 i

et la seconde dite implicite utilise une discrétisation au noeud xi et à l'itération n + 1:


n+1 n+1
∂ 2T
 
∂T
=α .
∂t i ∂x2 i

4.10.1 Schéma explicite


Nous utilisons un schéma avant d'ordre 1 pour évaluer la dérivée temporelle et un schéma
centré d'ordre 2 pour la dérivée seconde en espace:
n
Tin+1 − Tin

∂T
= ,
∂t i ∆t
n n
2 − 2Tin + Ti−1
n

∂ T Ti+1
= .
∂x2 i ∆x2

51
En posant λ = α ∆x
∆t
2 , la température à l'itération n + 1 est donnée par:

Tin+1 = λTi−1
n n
+ (1 − 2λ)Tin + λTi+1 , i = 1, ..., N − 1.

Soit sous forme matricielle:


 T n+1   T n T 
1 − 2λ

1 λ 0 ... 0 1 g
 T2 ... .
..   T2 
 λ 1 − 2λ λ 0
      
 
 .. ... ... ...   ..  + λ  ..  .
      
 . = 0 0  .  .

 ..   .. 
 
 .
 .

 .. ... ... .
 
0
 λ λ   
TN −1 0 ... 0 λ 1 − 2λ TN −1 Td

4.10.2 Schéma implicite


Nous utilisons un schéma arrière d'ordre 1 pour évaluer la dérivée temporelle et un schéma
centré d'ordre 2 pour la dérivée seconde en espace:
n+1
Tin+1 − Tin

∂T
= ,
∂t i ∆t
n+1 n+1
∂ 2T − 2Tin+1 + Ti−1
n+1

Ti+1
= .
∂x2 i ∆x2

En posant λ = α ∆x
∆t
2 , la température à l'itération n + 1 est donnée par:

(1 + 2λ)Tin+1 − λ(Ti+1
n+1 n+1
+ Ti−1 ) = Tin , i = 1, ..., N − 1.
On constate que les inconnues à l'itération n + 1 sont reliées entre elles par une relation
implicite (d'où le nom de la méthode).
Sous forme matricielle:
  T n+1  T n
−λ

1 + 2λ 0 ... 0 1 1 Tg
 
. .
 −λ 1 + 2λ −λ . . ..   T2   T2 
      0
.
... ... ...   ..   ..  .
 ..  + λ 
      
 0 0  .  =  . 

 .   ..   .. 
... ...
 
 .. −λ −λ   .   .  0
0 ... 0 −λ 1 + 2λ TN −1 TN −1 Td

A chaque itération, le vecteur des inconnues discrètes se détermine par résolution d'un sys-
tème linéaire. La matrice du système étant tridiagonale, un algorithme de Thomas (basé sur
la méthode du pivot de Gauss) est très souvent utilisé.

Algorithme de Thomas
Cet algorithme est utilisé pour la résolution d'un système avec une matrice tridiagonale de
dimension N faisant intervenir un vecteur d'inconnues discrètes Xi , de la forme:
b1 X 1 + c 1 X 2 = d1 , i = 1,
ai Xi−1 + bi Xi + ci Xi+1 = di , i variant de 2 à N − 1,
aN XN −1 + bN XN = dN , i = N.

52
Le calcul s'eectue en deux étapes (qui correspondent aux deux étapes du pivot de Gauss).
La triangularisation fait apparaître les coecients αi et βi évalués par récurrence:
−ai d −cβ
αi = et βi = i i i+1 , pour i variant de N à 1.
bi + ci αi+1 bi + ci αi+1
La deuxième étape détermine les inconnues selon la récurrence: X1 = β1 , puis Xi = −αi Xi−1 +
βi , pour i variant de 2 à N.

4.11 Discrétisation de l'équation de la chaleur 2D sta-


tionnaire
Considérons le problème bidimensionnel stationnaire de la conduction de la chaleur dans un
domaine rectangulaire [0, Lx ] × [0, Ly ]. Le champ de température T (x, y) vérie l'équation
de Laplace:
si (x, y) ∈ [0, Lx ] × [0, Ly ];

∂2T ∂2T
 ∆T = ∂x2 + ∂y2 = 0,

T (0, y) = Tg et T (Lx , y) = Td , 0 < y < Ly ;
T (x, 0) = Tb et T (x, Ly ) = Th , 0 < x < Lx .

Le domaine de calcul est discrétisé en (N + 1) × (P + 1) noeuds (xi , yj ) (i variant de 0 à N


et j variant de 0 à P ). On supposera que les pas d'espace dans chaque direction ∆x et ∆y
sont constants. La température discrète au noeud (xi , yj ) sera notée Tij = T (xi , yj ).
Nous utilisons un schéma centré d'ordre 2 pour approximer les dérivées secondes en espace:
∂ 2T
 
Ti+1,j − 2Ti,j + Ti−1,j
= ,
∂x2 ij ∆x2
∂ 2T
 
Ti,j+1 − 2Ti,j + Ti,j−1
= .
∂y 2 ij ∆y 2
La formulation discrétisée est alors, pour i variant de 1 à N − 1 et j variant de 1 à P − 1:
∆y 2 (Ti+1,j + Ti−1,j ) + ∆x2 (Ti,j+1 + Ti,j−1 ) − 2(∆y 2 + ∆x2 )Ti,j = 0.
Soit sous forme matricielle, pour N = P = 4, en posant A = ∆x2 + ∆y 2 :
T11
 2
∆x Tb + ∆y 2 Tg
   
−2A ∆y 2 0 ∆x2 0 ...0 ...
 ∆y 2 −2A ∆y 2 ∆x2
0 0 0   T21  2
   
∆x Tb
.
  
.. 
    
 0 ∆y 2 −2A 0 0 ∆x2 0 T31   2 2
 ∆x Tb + ∆y Td 

  

 ∆x2 2 2 ...  
T
 
2

 0 0 −2A ∆y 0 ∆x  
 12
 
 ∆y Tg


 0 ∆x2 0 2
∆y −2A ∆y 2
0 ∆x 2 T
0   22  = − 0
    
 
 .. 2
    
∆y T
 . 0 ∆x 2
0 2
∆y −2A 0 0 2 T
∆x   32  d
    
 
 2 2
2 2 ∆x Th + ∆y Tg 
   
 ∆x 0 0 −2A ∆y 0   T13 
 
... ...
  
2
∆x Th
 2 2
 
2
 
 ∆x ∆y −2A ∆y T23   
2 2
0 ... 0 ∆x 0 ∆y −2A T33 ∆x2 Th + ∆y 2 Td
Dans le cas où les pas d'espace sont identiques ∆x = ∆y, la formulation devient, pour i
variant de 1 à N − 1 et j variant de 1 à P − 1:
Ti+1,j + Ti,j−1 + Ti−1,j + Ti.j+1 − 4Ti,j = 0.

53
Soit sous forme matricielle, pour N = P = 4:
−4 1 0 1 0 ... ... 0 T11 Tb + Tg
    
 1 −4 1 0 1 0 0  T   T 
.
.
  21  b
.
  
0 1 −4 0 0 1 0  T31  T + T 
 b d
...
  
    
T
0 −4 1  Tg 
1 0 0 1   12 
    

1 −4 1  T22  = −  0  .
0 1 0 0 1 0    
 ..

 Td 
 .
 T 
0 1 0 1 −4 0 0 1  32   
Th + Tg 
    
 1 0 0 −4 1 0  T13 
... ...
    
 Th 
1 1 −4 1 T23
  
0 ... 0 1 0 1 −4 T33 Th + Td
Notons I3 la matrice identité d'ordre 3 et D la matrice de taille 3 dénie par:
−4 1 0
" #
D = 1 −4 1 .
0 1 −4
Notons T1 , T2 et T3 les vecteurs à 3 composantes dénis par:
T11 T12 T13
" # " # " #
T1 = T21 , T2 = T22 et T3 = T23 .
T31 T32 T33
Le système peut s'écrire sous la forme matricielle bloc suivante:
D I3 0 T1 B1
" #" # " #
I3 D I3 T2 = B2 .
0 I3 D T3 B3
La matrice obtenue est tridiagonale et chacun de ses blocs est tridiagonal. La résolution du
système peut s'eectuer par une méthode de Thomas matriciel ou une méthode itérative
matricielle (méthode de Gauss-Seidel).

Algorithme de Thomas matriciel


Cet algorithme est utilisé pour la résolution d'un système avec une matrice, d'ordre N,
tridiagonale par bloc, faisant intervenir un vecteur d'inconnues discrètes Xi , de la forme:
B1 X1 + C1 X2 = D1 , i = 1,
Ai Xi−1 + Bi Xi + Ci Xi+1 = Di , i variant de 2 à N − 1,
AN XN −1 + BN XN = DN , i = N,
où Ai , Bi , Ci sont des matrices et Di un vecteur.
On introduit la matrice αi et le vecteur βi évalués par les relations de récurrence suivantes:
αi = −(Bi +Ci αi+1 )−1 ×Ai et βi = (Bi +Ci αi+1 )−1 ×(Di −Ci βi+1 ), pour i variant de N à 1.
La deuxième étape détermine les inconnues selon la récurrence: X1 = β1 , puis Xi = −αi Xi−1 +
βi , pour i variant de 2 à N.
Remark 4.11.1. Avec une condition de Neumann sur l'un des bords du domaine, par ex-
emple en y = 0 un ux de chaleur égale à φb , il faudrait ajouter à la formulation précédente
la discrétisation de cette condition au bord.
Ceci a pour conséquence l'ajout de N − 1 inconnues supplémentaires à savoir les valeurs de
la température au bord (j = 0 et i variant de 1 à N − 1).

54
4.12 Consistence, convergence et stabilité
Un certain nombre de notion est nécessaire lors de la résolution d'équations aux dérivées
partielles (EDP) au moyen de leurs équivalents discrétisés. Les trois principales sont la con-
vergence, la stabilité et la consistance. Ces trois propriétés permettent de rélier la solution
exacte des équations continues à la solution exacte des équations discrétisées, puis à la solu-
tion numérique obtenue. Ces diérents liens sont:
1. la stabilité, c'est la propriété qui assure que la diérence entre la solution numérique
obtenue et la solution exacte des équations discrétisées est bornée.
2. la consistance, c'est la propriété qui assure que la solution exacte des équations
discrétisées tende vers la solution exacte des équations continues lorsque les pas de
discrétisation (∆t et ∆x) tendent vers zéro.
3. la convergence, c'est la propriété qui assure que la solution numérique tende vers
la (ou une) solution exacte des équations continues. C'est évidemment la propriété la
plus recherchée!
Ces propriétés sont liées les unes aux autres par des théorèmes:

Le théorème de Lax
Dans un problème bien posé, et avec un schéma numérique consistant, la stabilité est une
condition nécessaire et susante pour la convergence.

Le théorème de Lax-Wendro
Si un schéma numérique consistant converge lorsqu'on rane les pas de temps et d'espace,
c'est-à-dire, lorsque ∆t → 0 et ∆x → 0, alors il converge vers une solution faible des
équations.

Condition de stabilité de Courant-Friedrichs-Lewy (1928) ou condition CFL.


Pour des problèmes d'évolution temporelle, certains schémas sont stables à condition que
le pas de temps soit inférieur à une certaine valeur critique fonction du pas d'espace. Cette
estimation constitue la condition de Courant-Friedrichs-Lewy (1928) ou condition CFL.
Elle est nécessaire et susante pour assurer la stabilité.
Remark 4.12.1. La condition CFL varie d'une équation à une autre.
Exemple: Pour l'équation de la chaleur 1D, les schémas explicites sont stables sous la
condition CFL suivante:
∆t 1
α ≤ ,
∆x2 2
alors que les schémas implicites sont toujours stables (inconditionnellement stables).

55

Vous aimerez peut-être aussi