Cours D'analyse Numérique 1 (Niveau 3)
Cours D'analyse Numérique 1 (Niveau 3)
Cours D'analyse Numérique 1 (Niveau 3)
Année 2015
c Eric Ngondiep, 2015
Contents
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
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)
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 .
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.
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.
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
(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
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
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
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,
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.
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
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
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:
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 = α.
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
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.
At = LDL
e t
= A = LU,
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
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
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
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.
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 .
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.
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.
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.
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.
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
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.
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
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
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
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.
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 .
ω ω
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.
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) .
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) < .
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
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 .
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
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
38
D'où Z 1
(g(y) − g(x)) · (y − x) ≥ −λ|y − x|2 dt = −λ|y − x|2 ,
0
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) .
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).
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.
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é.
kx(k+1) − xk
(3.6) lim = β ∈ [0, 1]
k→∞ kx(k) − xk
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
(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(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
|x(k+1) − x|
= |f (ξn )| → |f (x)|, car x(k) → x, et f est continue.
0 0 0
(k)
|x − x|
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 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
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
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.
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.
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.
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
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
(∆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...
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.
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
(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.5)
u(0) = α et u(1) = β,
(4.6)
u(0) = α et
0
u (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
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.
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.
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).
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.
55