Vous êtes sur la page 1sur 110

DPARTEMENT STPI

TROISIME ANNE
PRORIENTATION ICBE
Analyse Numrique
Cours : A. Huard, P. Poncet
TD : N. Dietrich, M. Fraisse, A. Huard, A. Lin
J. Morchain, P. Poncet, G. Quinio, P. Villedieu
2010/2011
2
Table des matires
I Cours 5
1 Rsolution Numrique des Systmes Linaires 7
1.1 Problmes de rseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Sensibilit des systmes linaires . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Matrices symtriques dnies positives . . . . . . . . . . . . . . . . . . . . 32
2 Equations et Systmes Non Linaires 35
2.1 Heron dAlexandrie et les racines carres . . . . . . . . . . . . . . . . . . . 36
2.2 Rsolution dune quation non linaire . . . . . . . . . . . . . . . . . . . . . 39
3 Equations Diffrentielles Ordinaires 47
3.1 Equations Diffrentielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Pour en savoir plus... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.3 Pour en savoir encore plus ! . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
II Sujets de Travaux Pratiques 81
1 Estimation de paramtres par la mthode des moindres carrs 83
1.1 Objectif du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
1.2 Principe de la mthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.3 Travail demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
2 Rsolution dun systme non linaire par la mthode de Newton 89
2.1 Sujet du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.2 Travail demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3 Equations Diffrentielles Ordinaires 91
4 Cintique chimique dun processus dozonation 93
4.1 Une raction enzymatique enzyme substrat . . . . . . . . . . . . . . . . 93
4.2 Transfert dozone gaz-liquide et raction chimique en phase liquide . . . . 94
5 Stabilit des schmas dEDP 99
5.1 Formulation du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.2 Euler explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.3 Euler implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6 Construction dun solveur elliptique 103
7 Ecoulement en conduite 105
7.1 Ecoulement laminaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.2 Ecoulement turbulent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8 Modle K- pour les coulements turbulents 107
8.1 Description de lexemple trait . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.2 Echelles caractristiques de longueur . . . . . . . . . . . . . . . . . . . . . . 110
3
4
Premire partie
Cours
5
Chapitre 1
Rsolution numrique
des systmes linaires
Ltude des mthodes de rsolution des systmes linaires est une tape obligatoire
dun cours de calcul scientique ; presque tous les calculs passent par la rsolution de
tels systmes : nous en avons rencontr loccasion de problmes dinterpolation et
dapproximation, et lingnieur se trouve frquement confront la rsolution de tels sys-
tmes.
1.1 Problmes de rseaux
Un rseau est un ensemble de noeuds P
i
et dartes E
i,j
reliant certains de ces
noeuds :
lignes lctriques,
canalisations deau, gouts,...
Dans chaque arte circule un uide ; chaque noeud est associ un potentiel ; linten-
sit (ou le dbit) du uide est proportionnelle la diffrence de potentiel entre les deux
7
extrmits de larte o il circule ; cest la loi dOhm pour les circuits lectriques :
q
i,j
= k
i,j
(u
i
u
j
)
Une loi physique de conservation (de Kirchoff dans le cas lectrique) impose un qui-
libre : la somme algbrique des intensits en chaque noeud est gale la valeur de la
source (ou du puit) quil gure (0 sil est isol).
Au noeud P
i
, on a dans le cas du circuit lectrique :
S
i
=

j
q
i,j
=

j
k
i,j
(u
i
u
j
)
Cette somme est tendue aux noeuds P
j
adjacents de P
i
; considrons le reseau
reprsent par la gure ci-dessus. Les quations dquilibre scrivent :
_

_
S
1
= k
1,2
(u
1
u
2
) +k
1,9
(u
1
u
9
)
0 = k
2,1
(u
2
u
1
) +k
2,9
(u
2
u
9
) +k
2,7
(u
2
u
7
) +k
2,3
(u
2
u
3
)
=
S
8
= k
8,7
(u
8
u
7
) +k
8,9
(u
8
u
9
)
0 = k
9,1
(u
9
u
1
) +k
9,2
(u
9
u
2
) +k
9,7
(u
9
u
7
) +k
9,8
(u
9
u
8
)
de sorte que lquilibre du systme est connu en rsolvant le systme linaire
Au = S
avec une matrice A dont les coefcients non nuls sont reprsents ci-dessous par
une :
A =
_
_
_
_
_
_
_
_
_
_
_
_
_
_









_
_
_
_
_
_
_
_
_
_
_
_
_
_
Le second membre est dni par S
T
= (S
1
, 0, 0, S
4
, 0, S
6
, 0, S
8
, 0).
On sait aujourdhui rsoudre assez correctement des systmes plusieurs millions
dinconnues (et dquations), lorsquils sont assez creux, cest--dire lorsque la matrice
du systme possde beaucoup de coefcients nuls ; pour les systmes pleins, on com-
mence avoir des problmes au-del de quelques centaines de milliers dinconnues.
Cela dpend bien sur des performances des ordinateurs que lon utilise.
8
Pour les trs grands systmes, on utilise des mthodes itratives : on construit une
suite de vecteurs qui converge vers la solution. Ces mthodes sont adaptes aux grands
systmes creux car elles ne manipulent pas la matrice, mais seulement une fonction qui
ralise le produit de cette matrice avec un vecteur quelconque.
Pour les systmes pleins, on utilise des mthodes directes, susceptibles de fournir la
solution en arithmtique exacte aprs un nombre ni doprations lmentaires. Ce sont
ces mthodes que nous tudierons dans ce cours.
Les logiciels EXCEL et MATLAB proposent des solveurs de systmes linaires qui
mettent en oeuvre ce type de mthodes. La disponibilit de ces logiciels ne dispense pas
de la connaissance du principe des algorithmes quils mettent en oeuvre, ne serait-ce
que pour les utiliser bon escient, et pour comprendre les indications qui sont fournies,
ou les messages derreur qui sont renvoys.
1.2 Sensibilit des systmes linaires
Un systme comme celui que lon vient de dcrire sera construit partir de valeurs
mesures. On peut se poser la question de la sensibilit de la solution dventuelles
erreurs de mesures.
Plus gnralement, le systme tant rsolu par ordinateur en effectuant un certain
nombre doprations lmentaires, la solution sera-t-elle trs affecte par laccumulation
derreurs darrondis quimplique cette succession doprations.
1.2.1 Exemple
On considre le systme linaire :
Ax =
_
0.780 0.563
0.913 0.659
_ _
x
1
x
2
_
=
_
0.217
0.254
_
= b (1.1)
dont la solution est x = (1, 1)
T
.
La solution approche

x
1
= (0.999, 1)
T
= x+
1
x peut sembler satisfaisante au vu
de sa faible diffrence avec la solution exacte; elle fournit le rsidu :
r
1
= A

x
1
b =
_
0.00078
0.00091
_
Le vecteur

x
2
= (0.341, 0.087)
T
= x +
2
x ne semble pas tre un candidat rai-
sonnable pour la rsolution de ce systme; et pourtant, cette fois, le rsidu est bien plus
satisfaisant :
r
2
= A

x
2
b =
_
0.000001
0
_
9
En terme de rsidus et derreur, on a obtenu, respectivement pour x
1
et x
2
:
|x|
2
0.001 1.126
|r|
2
0.0012 0.000001
On constate ici que dans un cas, une modication trs lgre de la solution fournit un
rsidu du mme ordre de grandeur, mais dans lautre une modication assez importante
de cette solution fournit un rsidu trs petit.
Une autre exprience consiste modier lgrement le second membre. Consid-
rons le vecteur b =
_
0.7603
0.6496
_
et rsolvons A

x
3
= b +10
3
b. Cette fois la solution
est approximativement
_
865.76
1199.84
_
soit en notant
3
x = x

x
3
, |
3
x|
2
1481.
La gure suivante reprsente la solution exacte du systme Ax = b et les solutions
obtenues pour 100 perturbations alatoires du second membre, toutes infrieures en
norme euclidienne 0.0029.
On peut imaginer que le second membre est le rsultat dune mesure, ou de calculs
prcdents : accepteriez vous, par exemple, dtre le premier passager dun avion en
sachant que sa conception est passe par la rsolution de ce systme!
Le problme de la rsolution dun systme linaire nest pas toujours un problme
facile. On voit dja dans cet exemple trs simple que lon peut se poser la question de
savoir si lon cherche le vecteur solution du systme, ou un vecteur qui vrie le systme.
A prcision donne, les rponses peuvent tre trs diffrentes !
1.2.2 Distance la singularit
On dit que la matrice A est singulire lorsque les systmes linaires de matrice A ne
sont pas inversibles. Une matrice A M
N
(R) sera donc singulire si lune ou lautre des
10
conditions quivalentes suivantes est vrie :
- le dterminant de A est nul,
- une des valeurs propres de A est nulle,
- le rang de A est strictement infrieur N : cest le cas si les lignes (ou les colonnes)
de A ne sont pas linairement indpendantes.
Une interprtation gomtrique de lexemple
On constate sur la gure prcdente que toutes les solutions perturbes semblent se
trouver sur une mme droite. Un systme linaire 2 2 scrit sous la forme :
_
a
1,1
x
1
+ a
1,2
x
2
= b
1
a
2,1
x
1
+ a
2,2
x
2
= b
2
Chacune des quations est lquation dune droite du plan (x
1
, x
2
). La solution est
donne par les coordonnes du point dintersection de ces deux droites.
Pour notre exemple, les coefcients directeurs de ces deux droites sont respective-
ment 1.3854351 et 1.3854324 ! Elles sont donc presque parallles. Il nest pas tonnant
que la localisation du point dintersection soit dlicate.
Si lon modie par exemple f
1
, la premire droite est remplace par une droite qui lui
est parallle. Si les deux droites sont presque parallles, le nouveau point dintersection
est trs loign du prcdent. La gure 1.2.2 illustre ce phnomne pour deux droites
dont les coefcients directeurs sont 1 et
10
9
, cest--dire quand mme assez diffrents,
et qui se coupent en un point P. La droite en pointill est parallle lune des deux
droites ; on a modi la premire composante du second membre pour lobtenir. Son
intersection avec la droite inchange est le point Q.
FIGURE 1.1 Intersection de deux droites presque parallles
11
Sensibilit et distance la singularit
Le systme pcdent est sensible aux perturbations. Comme on obtient un systme
quivalent en multipliant chaque ligne par un scalaire non nul, on peut le remplacer par
le systme obtenu en remplaant chaque quation (Eq : i) par
1
a
i,1
(Eq : i)
_
1 0.7217948
1 0.7217962
_ _
x
1
x
2
_
=
_
0.2782051
0.2782037
_
(1.2)
On voit ici que les lignes A(1,:) et A(2,:) sont presque dpendantes puisque
A(1, :) A(2, :) = [0, 1.4 10
6
].
A vrai dire, (1.2) est une autre faon dcrire lquation des deux droites mentionnes
prcdemment. On voit mieux que ces droites sont presque parallles.
Lorsque les lignes dune matrice ne sont pas indpendantes, cette matrice est non
inversible. On peut donc penser, que dune certaine faon, cest parce que la matrice A
est proche dune matrice singulire que le systme est trs sensible aux perturbations.
Cest effectivement une matrice proche de la singularit que lon a utilis. La plus
petite valeur propre de A est peu prs 0.000000694. La matrice A+ A ci-dessous est
singulire ; la perturbation A qui la rend singulire est trs petite.
A + A =
_
0.780 0.563
0.913 0.659
_
+
_
0 0.00000109529025
0 0
_
Remarque 1 Dans R, le seul lment singulier est 0, de sorte que [x[ mesure la distance
du rel x la singularit. Dans M
n
(R), les matrices de la forme I, o I dsigne la ma-
trice identit, sont dinverse
1

I, et restent facilement inversibles tant que ,= 0. Par contre


des matrices, comme la matrice A+A ci-dessus, qui ne semblent pas particulirement
proches de 0 peuvent tre non inversibles.
1.2.3 Mesurer la distance la singularit
Une matrice est singulire lorsquelle nest pas inversible. Il existe plusieurs faons de
caractriser cela. A M
n
(R) est singulire si :
- son determinant est nul ; cela ne peut pas nous tre dune grande utilit, puisque
par exemple, la matrice 0.5 I
100
qui est loin dtre singulire a un determinant peu
prs gal 7.8886 10
31
,
- une de ses valeurs propres est nulle; le calcul des valeurs propres nest pas un
problme trs simple, et cette caractrisation nest pas utilisable en pratique
- son rang est strictement infrieur n; dans ce cas, son noyau nest pas rduit 0,
et il existe un vecteur x non nul tel que Ax = 0.
Nous allons chercher nous appuyer sur cette dernire caractrisation. Mais, il convient
de rchir un peu si on veut le faire. Pour un vecteur x dune grandeur donne, mesure
12
par sa norme |x|, le vecteur Ax pourra tre dune grandeur trs variable. La remarque 1
nous laisse penser que lorsque
|Ax|
|x|
reste constant, linversion de la matrice nest pas
toujours un problme numriquement difcile.
Nous pouvons alors associer une matrice A donne les deux nombres
a(A) = max
x=1
|Ax| = max
x=0
|Ax|
|x|
r(A) = min
x=1
|Ax| = min
x=0
|Ax|
|x|
(1.3)
Ces deux nombres sappelleront coefcients dagrandissement et de rduction de la
matrice A relativement la norme considre. Leurs deux expressions sont gales par
dnition des normes..
Lensemble des x R
2
tels que |x|
2
= 1 est le cercle unit. Si A M
2
(R), limage
du cercle unit par A est une ellipse. La gure 1.2 montre ces images dans le cas de la
matrice M =
_
0.5 1
0.75 0.5
_
et dans le cas de la matrice A de (1.1).
FIGURE 1.2 Images du cercle unit par les matrices M et A
La partie droite montre 2 vecteurs qui ralisent lagrandissement et la rduction de la
matrice M pour la norme euclidienne. Cette matrice nest pas particulirement proche
dune matrice singulire, et lellipse na rien de vraiment particulier.
Par contre, on constate sur la partie gauche de cette gure que lellispe associe
la matrice A est trs aplatie. On a vu que cette matrice est assez proche dune matrice
singulire.
Si une matrice nest pas inversible, , on aura Au = 0 pour au moins 2 vecteurs u
et u du cercle et lellipse sera compltement aplatie. Mais, plus que lagrandissement
ou la rduction, cest le rapport de ces deux nombres qui caractrise laplatissement
de lellipse, et on peut penser utiliser ce rapport
r(M)
a(M)
pour valuer la distance dune
matrice la singularit. Ce rapport indique un changement de nature gomtrique qui
illustre la perte de rang caractristique de la singularit ; on passe dune surface un
segment. Lorsque devient trs petit, limage du cercle unit par la matrice I reste un
cercle, et il suft de changer dchelle pour retrouver la surface initiale.
13
Remarque 2 Lutilisation de la norme euclidienne nest pas indispensable. On peut aussi
bien utiliser une autre norme. La gure 1.3 montre les images de la boule unit pour la
norme |.|

, qui est un carr, par les matrices M et A.


FIGURE 1.3 Images du carr unit par les matrices M et A
1.2.4 Conditionnement
Conditionnement dune matrice
Cest plus prcisment le conditionnement dune matrice pour la rsolution dun sys-
tme linaire que lon veut tudier. Soit rsoudre le systme linaire Ax = b. On sup-
pose que la calcul de la solution est fait par un algorithme quelconque implant sur un
ordinateur. Notons x = x +x la solution obtenue.
On va supposer que x + x est la solution exacte dans R
n
dun problme perturb
A(x +x) = b + b. On a ainsi choisi lensemble des perturbations admissibles, qui ne
portent que sur le second membre; dautres choix sont possibles.
Comme Ax = b et Ax = b, les dnitions (1.3) nous fournissent :
|b| a(A) |x|
|b| r(A) |x|
do lon tire, si A est inversible
|x|
|x|

a(A)
r(A)
|b|
|b|
(1.4)
On peut donc dnir /(A) =
a(A)
r(A)
, avec /(A) = si A est singulire. Cest linverse
de la distance la singularit de la matrice A.
14
Conditionnement et normes matricielles
La notion de norme dnie pour les vecteurs de R
N
stend aux matrices, en posant,
|A| = max
x=1
|Ax| (1.5)
ce qui permet de vrier, pour tout x R
N
:
|Ax| |A| |x| (1.6)
Lagrandissement a(A) nest autre que |A|. Par ailleurs, si la matrice A est inversible,
elle dnit une bijection sur R
n
, de sorte que
r(A) = min
x=0
|Ax|
|x|
= min
y=0
|y|
|A
1
y|
=
1
max
y=0
|A
1
y|
|y|
=
1
|A
1
|
.
On obtient alors
/(A) = |A|
_
_
A
1
_
_
(1.7)
|b|
|b|
mesure ici lerreur inverse relative. /(A) = |A|
_
_
A
1
_
_
sappelle conditionne-
ment de la matrice A, relativement la norme choisie, pour la rsolution des systmes
linaires.
Remarque 3 Les matrices Aet A
1
jouent un rle analogue dans (1.6). Le nombre /(A)
est en fait aussi le nombre de conditionnement de A pour les produits matrice-vecteur !
On a considr que la matrice A tait xe, et que seul le second membre b pouvait
tre perturb. On peut montrer que le conditionnement en fonction de perturbations de
la matrice A est le mme.
De faon gnrale, ce nombre /(A) sera tel que
|x|
|x|
/(A)
_
|A|
|A|
+
|b|
|b|
_
(1.8)
Essayons de vrier la pertinence de ce nombre de conditionnement sur notre exemple.
Nous pouvons utiliser la norme du maximum.
Pour x =
_
x
1
x
2
_
, on aura Ax =
_
0.780 x
1
+ 0.563 x
2
0.913 x
2
+ 0.659 x
2
_
, de sorte
|Ax|

= max [0.780 x
1
+ 0.563 x
2
[, [0.913 x
2
+ 0.659 x
2
[ .
15
Si on impose max[x
1
[, [x
2
[ = 1, le maximum de |Ax|

sera atteint pour le vecteur


x tel que x
1
= x
2
= 1, et il vaut |A|

= 1.572.
Par contre la matrice A
1
est donne par A
1
= 10
5

_
6.59 5.63
9.13 7.80
_
, et par un
raisonnement analogue, |A
1
|

= 16.93 10
5
. On a donc un conditionnement de la
matrice donn par K

= 2.661396 10
6
.
Appelons u la solution du systme Au =
_
1.343
1.572
_
, et observons
A(u + u) =
_
2.565
0.121
_
.
Ce second membre est tel que
|b|
|b|
=
1.6930
1.572
1.077.
La solution du premier systme est u
_
1
1
_
, mais u + u 10
6

_
1.7585
2.4362
_
.
Lingalit (1.8) est bien vrie :
10
6
2.4362 2.661396 10
6
1.077.
Remarque 4 Comme on la dj vu, on prfre souvent travailler avec la norme eucli-
dienne. On peut montrer que la norme matricielle associe est dnie par
|A|
2
=
_

max
(A
T
A) (1.9)
o
max
(A
T
A) dsigne la plus grande valeur propre de la matrice A
T
A.
1.3 Factorisation LU
1.3.1 Comment rsoudre les systmes linaires ?
Les systmes faciles rsoudre
Il existe des systmes linaires qui sont de rsolution facile. Commenons par en
examiner la rsolution.
16
Systmes diagonaux Si A est une matrice diagonale, A = (a
i,j
)
1i,jn
avec a
i,j
= 0
si i ,= j, le systme Ax = b est immdiatement rsolu en posant pour tout i, 1 i n,
x
i
=
b
i
a
i,i
.
Le cot de cette rsolution est c(n) = n oprations lmentaires.
Systmes triangulaires Les systmes de matrice triangulaire sont galement de rso-
lution facile. Examinons le cas de systmes triangulaires suprieurs T x = b. La matrice
T est telle que t
i,j
= 0 si i > j.
Prenons lexemple du systme
_
_
4 5 1
0 3 4
0 0 2
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
4
1
2
_
_
. (1.10)
Ce genre de systme se rsoud par une mthode dite de substitution rtrograde ou
de remonte. On commence par calculer la dernire composante, on utlise sa valeur pour
calculer lavant dernire, et on recommence selon le mme principe jusqua la premire.
On calcule successivement
x
3
=
2
2
= 1
x
2
=
1 4 1
3
= 1
x
1
=
4 5 (1) 1 1
4
= 2
Cet algorithme remonte la matrice T ligne par ligne. Les instructions MATLAB ci-
dessous mettent en oeuvre cet algorithme
x(n) = b(n)/T(n,n);
for k = n-1:-1:1
x(k) = (b(k) - T(k,k+1:n)
*
x(k+1:n))/T(k,k);
end;
On peut valuer le nombre doprations ncessaires la rsolution dun systme
triangulaire en fonction de la taille n du systme :
- on effectue 1 division pour x(n) = b(n)/T(n,n);
- pour chaque valeur de k comprise entre 1 et N-1, on effectue
n k multiplications et n k 1 additions pour le produit
T(k,k+1:n)
*
x(k+1:n)
1 soustratcion et 1 division pour
x(k) = (b(k) - T(k,k+1:n)
*
x(k+1:n))/T(k,k);
Cela fait donc 2 (nk)+1 oprations, et comme k varie de 1 n1, nk varie galement
de 1 n 1 : on obtient 2
(n 1) n
2
+ n 1 = n
2
1 oprations auxquelles on ajoute la
premire division pour obtenir le cot c(n) = n
2
oprations lmentaires.
17
1.3.2 Lide des mthodes directes
Transformer le systme en un systme diagonal, cest diagonaliser A. Quand cest
possible, cest le problme de recherche des lments propres de la matrice A, et cest
beaucoup plus difcile que la rsolution du systme linaire ! On ne peut pas esprer
sen sortir de cette faon.
Par contre on peut esprer transformer notre systme en un systme triangulaire. En
fait, on va remplacer la rsolution de notre systme par la rsolution de deux systmes
triangulaires, laide dune factorisation de la matrice A de la forme :
A = LU
o L est une matrice triangulaire infrieure (Lower) et U une matrice triangulaire
suprieure (Upper).
1.3.3 De llimination de Gauss la factorisation LU
Elimination de Gauss
Soit rsoudre le systme Ax = b, o la matrice A appartient M
n
(R). Cest un
systme de n quations, notes (Eq.1), . . . , (Eq.n), n inconnues notes x
1
, . . . , x
n
, qui
sont les composantes du vecteur x.
Le principe de la mthode est dliminer les inconnues de proche en proche, en fai-
sant disparaitre :
- linconnue x
1
des quations (Eq.2) (Eq.n),
- linconnue x
2
des quations (Eq.3) (Eq.n),
- ... et pour k variant de 1 n, linconnue x
k
des quations (Eq.k + 1) (Eq.n).
Pour ce faire, on transforme chaque tape le systme en un systme quivalent,
cest--dire admettant exactement le mme ensemble de solutions, au moyen dune
transformation lmentaire :
- ajout dun multiple dune quation une quation donne : cela consiste par exemple
remplacer lquation (Eq.i) par lquation (Eq.i) +(Eq.k)
- permutation de deux quations,
A ltape k, le coefcient a
(k)
k,k
de linconnue x
k
sappelle le pivot. On le note p
k
. Il
permet llimination de linconnue x
k
des quations (Eq.k + 1) (Eq.n), en remplaant
lquation (Eq.i) par (Eq.i)
a
(k)
i,k
p
k
(Eq.k) pour k + 1 i n.
On va dabord sintresser la mthode de Gauss sans permutation des quations.
Le pivot intervient en dnominateur dune fraction : il doit tre non nul.
18
Exemple
On considre le systme
_
_
_
2x
1
+x
2
+x
3
= 1
6x
1
+2x
2
+x
3
= 1
2x
1
+2x
2
+x
3
= 7

_
_
2 1 1
6 2 1
2 2 1
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
1
1
7
_
_
(1.11)
On note A
(1)
= A et b
(1)
= b ces donnes initiales : ce systme scrit donc A
(1)
x =
b
(1)
. On peut choisir comme pivot le coefcient p
1
= 2 de x
1
dans la premire quation.
On limine x
1
des quations (Eq.2) et (Eq.3) par la transformation lmentaire :
- (Eq.2) est remplace par (Eq.2)
6
p
1
(Eq.1) = (Eq.2) 3 (Eq.1),
- (Eq.3) est remplace par (Eq.3)
2
p
1
(Eq.1) = (Eq.3) + (Eq.1).
On obtient le systme quivalent :
_
_
_
2x
1
+ x
2
+ x
3
= 1
x
2
2x
3
= 4
+ 3x
2
+ 2x
3
= 8

_
_
2 1 1
0 1 2
0 3 2
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
1
4
8
_
_
On note A
(2)
x = b
(2)
ce deuxime systme, quivalent au premier. On peut choisir
comme pivot le coefcient p
2
= 1 de x
2
dans la deuxime quation. On limine x
2
de
lquation (Eq.3) :
- (Eq.3) est remplace par (Eq.3)
3
p
2
(Eq.2) = (Eq.2) + 3 (Eq.2).
On obtient le systme quivalent :
_
_
_
2x
1
+ x
2
+ x
3
= 1
x
2
2x
3
= 4
4x
3
= 4

_
_
2 1 1
0 1 2
0 0 4
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
1
4
4
_
_
Ce dernier systme, A
(3)
x = b
(3)
est triangulaire suprieur. Il est inversible puisque
les lments diagonaux de A
(3)
, p
1
, p
2
et p
3
= 4 sont tous non nuls. On le rsoud par
substitution rtrograde pour obtenir x =
_
_
1
2
1
_
_
.
Ecriture matricielle des transformations lmentaires
A la premire tape de lexemple (1.11), la matrice A
(1)
=
_
_
2 1 1
6 2 1
2 2 1
_
_
est rem-
place par la matrice A
(2)
=
_
_
2 1 1
0 1 2
0 3 2
_
_
. En termes de matrice, le fait de modier
une quation correspond a la modication dune ligne. On constate en effet, en utilisant
la notation MATLAB, que :
A
(2)
(1, :) = A
(1)
(1, :),
A
(2)
(2, :) = A
(1)
(2, :) 3 A
(1)
(1, :),
A
(2)
(3, :) = A
(1)
(3, :) ( 1) A
(1)
(1, :).
19
Regroupons ces lignes pour crire les matrices correspondantes :
_
_
A
(2)
(1, :)
A
(2)
(2, :)
A
(2)
(3, :)
_
_
=
_
_
A
(1)
(1, :)
A
(1)
(2, :)
A
(1)
(3, :)
_
_

_
_
0
3 A
(1)
(1, :)
A
(1)
(1, :)
_
_
(1.12)
Le second terme du membre de droite de (1.12) scrit :
_
_
0
3 A
(1)
(1, :)
A
(1)
(1, :)
_
_
=
_
_
_
0 0 0
3a
(1)
1,1
3a
(1)
1,2
3a
(1)
1,3
a
(1)
1,1
a
(1)
1,2
a
(1)
1,3
_
_
_
=
_
_
0 0 0
3 0 0
1 0 0
_
_
A
(1)
. (1.13)
de sorte que nalement, en notant I la matrice identit :
A
(2)
=
_
_
I
_
_
0 0 0
3 0 0
1 0 0
_
_
_
_
A
(1)
(1.14)
Cette criture se simplie en introduisant les vecteurs l
1
= (0, 3, 1)
T
et e
1
=
(1, 0, 0)
T
, premier vecteur de la base canonique :
A
(2)
= (I l
1
e
T
1
) A
(1)
= E
(1)
A
(1)
. (1.15)
De faon analogue, le passage de A
(2)
A
(3)
=
_
_
2 1 1
0 1 2
0 0 4
_
_
se fait selon
A
(3)
=
_
_
I
_
_
0 0 0
0 0 0
0 3 0
_
_
_
_
A
(2)
= (I l
2
e
T
2
) A
(2)
= E
(2)
A
(2)
,
o l
2
= (0, 0, 3)
T
et e
2
dsigne le second vecteur de la base canonique.
Notons U = A
(3)
la matrice triangulaire suprieure obtenue lissue de cette tape
dlimination. Elle vrie :
U = E
(2)
E
(1)
A. (1.16)
Les matrices E
(1)
et E
(2)
sont inversibles, selon
-
_
E
(1)
_
1
= L
(1)
= (I + l
1
e
T
1
) =
_
_
1 0 0
3 1 0
1 0 1
_
_
; on le vrie en crivant (I
l
1
e
T
1
) (I +l
1
e
T
1
) = I l
1
_
e
T
1
l
1
_
e
T
1
= I, puisque
e
T
1
l
1
= 1 0 + 0 3 + 0 (1) = 0 ;
-
_
E
(2)
_
1
= L
(2)
= (I + l
2
e
T
2
) ; on le vrie de la mme faon en crivant (I
l
2
e
T
2
) (I +l
2
e
T
2
) = I l
2
(e
T
2
l
2
) e
T
2
= I, puisque
e
T
2
l
2
= 0 0 + 1 0 + 0 (3) = 0.
20
En multipliant gauche (1.16) par L
(1)
L
(2)
, on obtient :
L
(1)
L
(2)
U = LU = A. (1.17)
La matrice L sassemble sans calcul, selon
L =
_
_
1 0 0
3 1 0
1 0 1
_
_
_
_
1 0 0
0 1 0
0 3 1
_
_
=
_
_
1 0 0
3 1 0
1 3 1
_
_
(1.18)
Pour rsoudre le systme Ax = f, on procde ensuite en deux tapes :
ltape de descente consiste rsoudre Ly = f, cest--dire
_
_
1 0 0
3 1 0
1 3 1
_
_
_
_
y
1
y
2
y
3
_
_
=
_
_
1
1
7
_
_
,
dont la solution se calcule par substitutions progressives : y = (1, 4, 4)
T
;
ltape de remonte consiste rsoudre U x = y ; elle est identique celle que lon
a dcrite dans le cadre de llimination puisque y = b
(3)
.
Cas gnral
Dans llimination de Gauss pour le systme Ax = f, avec A = A
(1)
M
n
(R), la
premire tape scrit :
A
(1)
x = f
(1)
A
(2)
x = f
(2)
de telle faon que la matrice A
(2)
nait que des 0 sous llment diagonal a
(2)
1,1
de sa
premire colonne.
En supposant que a
1,1
= a
(1)
1,1
,= 0, la matrice A
(2)
se dduit de A
(1)
par les relations
suivantes :
a
(2)
1,j
= a
(1)
1,j
, j, 1 j n,
a
(2)
i,1
= 0, i, 2 i n,
a
(2)
i,j
= a
(1)
i,j
l
i,1
a
(1)
1,j
, i, j, 2 i, j n.
o les coefcients l
i,1
sont dnis par l
i,1
=
a
(1)
i,1
a
(1)
1,1
. La matrice A
(2)
sinterprte donc ici
aussi comme le produit A
(2)
= E
(1)
A
(1)
, avec E
(1)
dnie de la faon suivante :
E
(1)
=
_
_
_
_
_
_
_
_
_
1 0 0
l
2,1
1
.
.
.
.
.
.
.
.
. 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 0
l
n,1
0 0 1
_
_
_
_
_
_
_
_
_
.
On vrie immdiatement que E
(1)
= (I l
1
e
T
1
), e
1
dsignant le premier vecteur de
la base canonique de R
n
et l
1
le vecteur (0, l
2,1
, . . . , l
n,1
)
T
.
21
La matrice scrit, avec la notation de MATLAB :
A
(2)
=
_

_
a
(1)
1,1
, A
(1)
(1, 2 : n)
0 , A
(2)
(2 : n, 2 : n)
_

_
Si le pivot p
2
= a
(2)
2,2
,= 0, on peut renouveler lopration pour la matrice A
(2)
(2 : n, 2 : n)
qui appartient M
n1
(R) au moyen dune matrice E
(2)
(2 : n, 2 : n) construite de faon
analogue E
(1)
. On complte cette matrice E
(2)
pour en faire une matrice de M
n
(R)
telle que le produit gauche par E
(2)
laisse invariantes le premire ligne et et la premire
colonne :
E
(2)
=
_
1 , 0
0 , E
(2)
(2 : n, 2 : n)
_
=
_
I l
2
e
T
2
_
,
avec e
2
le second vecteur de la base canonique de R
n
et l
2
= (0, 0, l
3,2
, . . . , l
n,2
)
T
tel
que pour 3 i n, l
i,2
=
a
(2)
i,2
a
(2)
2,2
. On obtient :
E
(2)
A
(2)
= E
(2)
E
(1)
A
(1)
=
_

_
a
(1)
1,1
, a
(1)
1,2
, A
(1)
(1, 3 : n)
0 , a
(2)
2,2
, A
(2)
(2, 3 : n)
0 , 0 , A
(3)
(3 : n, 3 : n)
_

_
avec A
(3)
(3 : n, 3 : n) M
n2
(R) : Si au-del, les a
(k)
k,k
sont tous non nuls, on pourra
ritrer lopration pour obtenir nalement :
E
(n1)
E
(2)
E
(1)
A
(1)
= U.
La factorisation A = LU cherche se dduit alors du lemme suivant :
Lemme 1 Soit E
(k)
la matrice dnie pour 1 k n 1 par E
(k)
= I l
k
e
T
k
, avec
l
k
= (l
1,k
, . . . , l
n,k
)
T
telle que l
i,k
= 0 si i k, et e
k
le k-ime vecteur de la base canonique
de R
n
. Alors,
(i) la matrice E
(k)
est inversible dinverse L
(k)
= I +l
k
e
T
k
,
(ii) le produit L = L
(1)
. . . L
(n1)
sassemble sans calculs de telle faon que
L(i, j) =
_
_
_
0 si i < j,
1 si i = j,
l
i,j
si i > j
En effet, (I l
k
e
T
k
) (I +l
k
e
T
k
) = I l
k
(e
T
k
l
k
) e
T
k
et e
T
k
l
k
=
n

i=k+1

k,i
l
i,k
= 0.
Dautre part, (I + l
1
e
T
1
) . . . (I + l
n1
e
T
n1
) = I + l
1
e
T
1
+ . . . + l
n1
e
T
n1
puisque les
produits e
T
i
l
j
sont nuls ds que j i.
Partant de E
(n1)
. . . E
(1)
A = U, on obtient donc :
A = L
(1)
. . . L
(n1)
U = LU.
22
Cest la factorisation cherche, avec L triangulaire infrieure dlments diagonaux
gaux 1, et dont les lements sous-diagonaux sont les l
i,j
=
a
(j)
j,j
a
(j)
i,j
, 1 j < i n, et U
triangulaire suprieure inversible puisque sa diagonale est constitue des pivots qui sont
tous diffrents de 0.
Une condition ncessaire et sufsante :
On admettera le thorme suivant :
Thorme 2 Soit A = (a
i,j
)
1i,jn
M
n
(R) ; si pour tout k, 1 k n, la sous-matrice
principale A
k
= (a
i,j
)
1i,jk
de A est telle que det(A
k
) ,= 0, il existe une matrice triangu-
laire infrieure L, dont les lments diagonaux sont gaux 1, et une matrice triangulaire
suprieure inversible U telles que A = LU. Cette factorisation est unique.
Cette condition ncessaire et sufsante nest pas trs satisfaisante : on ne peut pas
calculer les dterminants mineurs principaux de la matrice dun systme linaire avant
de le rsoudre !
Implantation (version lmentaire) :
Nous allons proposer un algorithme de cette factorisation sous la forme dune fonction
MATLAB . Comme il sagit dune fonction, on peut craser la matrice Aqui lui est passe
en argument, car elle alors considre comme une variable locale de la fonction.
Observons dabord la premire tape de la factorisation : la matrice A = A
(1)
est
transforme en A
(2)
= (I l
1
e
T
1
) A
(1)
= A
(1)
l
1
(e
T
1
A
(1)
).
Le produit e
T
1
A
(1)
) est une matrice une ligne (vecteur ligne) qui est gale la pre-
mire ligne de A
(1)
: on a donc
A
(2)
= A
(1)
l
1
A
(1)
(1, :) (1.19)
Le vecteur l
1
= (0, l
2,1
, . . . , l
n,1
)
T
est tel que :
- la premire ligne de A
(2)
sera gale la premire ligne de A
(1)
,
- les coefcients des lignes 2 N de la premire colonne de A
(2)
seront nuls. On a
donc besoin de ne modier que la sous-matrice A
(1)
(2 : n, 2 : n) ; on peut disposer
des positions 2 n de la premire colonne de la matrice A
(1)
pour stocker les
composantes non nulles de l
1
, cest--dire les l
j,1
, pour 2 j n.
- ds que les composantes du vecteur l
1
sont calcules, on na donc plus calculer
que
A
(2)
(2 : n, 2 : n) = A
(1)
(2 : n, 2 : n) l
1
(2 : n) A
(1)
(1, 2 : n) (1.20)
- si lon stocke les l
j,1
non nuls en utilisant les positions A
(1)
(2 : n, 1) inutiles pour la
suite, (1.20) devient
A
(2)
(2 : n, 2 : n) = A
(1)
(2 : n, 2 : n) A
(1)
(2 : n, 1) A
(1)
(1, 2 : n) (1.21)
23
Le procd que lon dcrit va se rpter pour le passage de A
(2)
A
(3)
, et cette
fois ce sont les positions A
(2)
(3 : n, 2) qui seront utilises pour stocker les composantes
non nulles de l
2
; seule la sous-matrice A
(2)
(3 : n, 3 : n) sera modie par soustraction
dune matrice de rang 1, cest--dire une matrice de la forme M = uv
T
o u et v sont des
vecteurs. Et ce mme principe sera mis en oeuvre jusqu obtention de la factorisation.
A lissue de cette factorisation, la partie triangulaire suprieure de la matrice A sera
occupe par la matrice U, et sa partie triangulaire strictement infrieure par celle de L.
La fonction MATLAB ci-dessous ralise cette factorisation. Les commentaires qui
suivent immdiatement la ligne de dclaration de la fonction en indiquent lobjet, le format
dappel et la faon de lutiliser.
function [L, U] = Gauss(A);
% Gauss calcule la factorisation LU de la matrice A
% par la methode delimination de Gauss.
% Lappel se fait selon :
% >> [L, U] = Gauss(A);
% La solution du systeme Ax = f est donnee par :
% >> x = U\(L\f);
[n, n] = size(A);
for k = 1:n-1
if A(k,k) == 0
error(Matrice non factorisable ...)
end
Indices = k+1:n;
% Colonne k de la matrice L) :
A(Indices,k) = A(Indices,k)/A(k,k) ;
% Mise a jour de la matrice A^(k) :
A(Indices,Indices) = A(Indices,Indices)-A(Indices,k)
*
A(k,Indices) ;
end
L = tril(A,-1) + eye(n);
U = triu(A);
Cot de la factorisation
Pour chaque valeur de k, la variable Indices contient n k valeurs ; on doit donc
effectuer :
- n k divisions pour le calcul de la colonne k de L,
- (nk)
2
multiplications pour le calcul de la matrice A(Indices,k)
*
A(k,Indices),
et (n k)
2
soustractions pour la mise jour de A(Indices,Indices).
Le cot C
F
(n) de la factorisation sobtient en sommant pour k variant de 1 n 1 :
C
F
(n) =
1
2
n(n 1) +
2
3
n(n
1
2
)(n 1) = n(n 1)
4n 1
6
.
On a donc C
F
(n)
2 n
3
3
oprations lmentaires pour ltape de factorisation.
24
Pour la rsolution dun systme linaire, on fait suivre cette tape de factorisation par
deux tapes de rsolution, respectivement dun systme triangulaire infrieur de matrice
L = tril(A) + eye(n) et suprieur de matrice U = triu(A) :
_
Ly = f,
U x = y.
Le cot de la rsolution du systme reste donc O(
2 n
3
3
) oprations.
Retour lexemple
On peut observer sur la matrice A =
_
_
2 1 1
6 2 1
2 2 1
_
_
les diffrentes tapes de la
fonction ci-desssus ; par souci de lisibilit, nous imprimons en caractres gras les valeurs
calcules de la matrice L et leur positionnement dans la matrice A :
- pour k = 1, la matrice A est remplace par A =
_
_
2 1 1
3 1 2
1 3 2
_
_
,
- pour k = 2, la matrice A est remplace par A =
_
_
2 1 1
3 1 2
1 3 4
_
_
.
Les instructions MATLAB
L = tril(A,-1) + eye(n);
U = triu(A);
permettent bien de retrouver L et U.
1.3.4 Factorisation P A = LU
Principe
Sous rserve dune permutation de ses lignes, toute matrice inversible est facto-
risable. Formellement, cette permutation des lignes peut scrire comme le produit
gauche de cette matrice par une matrice de permutation.
Thorme 3 Si det(A) ,= 0, il existe une matrice P de permutation telle que P A soit
factorisable selon P A = LU.
Ce thorme exprime le fait que si A est inversible, on trouvera chaque tape k de la
factorisation, 1 k n 1, au moins un coefcient a
(k)
i,k
, k i n, non nul.
25
Un exemple
Pour rsoudre le systme Ax = f suivant :
_

_
x
1
+x
2
+x
3
+x
4
= 1
x
1
+x
2
+3x
3
+3x
4
= 3
x
1
+x
2
+2x
3
+3x
4
= 3
x
1
+3x
2
+3x
3
+3x
4
= 4

_
_
_
_
1 1 1 1
1 1 3 3
1 1 2 3
1 3 3 3
_
_
_
_
_
_
_
_
x
1
x
2
x
3
x
4
_
_
_
_
=
_
_
_
_
1
3
3
4
_
_
_
_
La premire tape de llimination conduit au systme quivalent :
_

_
x
1
+ x
2
+ x
3
+ x
4
= 1
2x
3
+ 2x
4
= 2
x
3
+ 2x
4
= 2
2x
2
+ 2x
3
+ 2x
4
= 3
On constate que dans ce systme, linconnue x
2
est dj limine des quations
(Eq.2) et (Eq.3), cest--dire que a
(2)
2,2
= a
(2)
3,2
= 0. La poursuite du processus dlimination
ncessite une permutation des quations (Eq.2) et (Eq.4) :
A
(2)
x = f
(2)
P
2
A
(2)
x = P
2
f
(2)

_
x
1
+ x
2
+ x
3
+ x
4
= 1
2x
2
+ 2x
3
+ 2x
4
= 3
x
3
+ 2x
4
= 2
2x
3
+ 2x
4
= 2
La matrice P
2
qui multiplie gauche chaque membre du systme dquations est la
matrice dune permutation lmentaire. On peut lcrire
P
2
=
_
_
_
_
1 0 0 0
0 0 0 1
0 0 1 0
0 1 0 0
_
_
_
_
et on vrie immdiatement que
_
_
_
_
1 0 0 0
0 0 0 1
0 0 1 0
0 1 0 0
_
_
_
_
_
_
_
_
1 1 1 1
0 0 2 2
0 0 1 2
0 2 2 2
_
_
_
_
=
_
_
_
_
1 1 1 1
0 2 2 2
0 0 1 2
0 0 2 2
_
_
_
_
On poursuit llimination sans problme pour obtenir
_

_
x
1
+ x
2
+ x
3
+ x
4
= 1
2x
2
+ 2x
3
+ 2x
4
= 3
x
3
+ 2x
4
= 2
2x
4
= 2
On a obtenu un systme triangulaire inversible.
26
Ecriture matricielle de la factorisation avec permutation
Le systme triangulaire obtenu ci-dessus scrit U x = f
(4)
, avec f
(4)
= (1, 3, 2, 2)
T
et U =
_
_
_
_
1 1 1 1
0 2 2 2
0 0 1 2
0 0 0 2
_
_
_
_
.
La matrice U de ce systme est dnie par :
E
(3)
E
(2)
P
2
E
(1)
A = U, (1.22)
avec, pour chaque k, 1 k 3, E
(k)
= I l
k
e
T
k
, et
- l
1
= (0, 1, 1, 1)
T
,
- l
2
= (0, 0, 0, 0)
T
, puisque les coefcients a
(2)
3,2
et a
(2)
4,2
sont tous deux nuls,
- l
3
= (0, 0, 0, 2)
T
.
La matrice P
2
scrit galement sous une forme P
2
= I uu
T
, avec u = e
2
e
4
(cest la diffrence des deux vecteurs de la base canonique correspondant aux indices
des lignes permuter) ! Elle est telle que P
2
2
= I (vrication immdiate). On peut alors
glisser P
2
2
droite de E
(1)
dans les deux membres de (1.22) :
E
(3)
E
(2)
P
2
E
(1)
P
2
P
2
A = U.
Le produit matriciel est associatif : on peut isoler les facteurs
P
2
E
(1)
P
2
= P
2
(I l
1
e
T
1
) P
2
= P
2
2
P
2
l
1
e
T
1
P
2
= I (P
2
l
1
) (e
T
1
P
2
),
et calculer :
- e
T
1
P
2
= (1, 0, 0, 0)
_
_
_
_
1 0 0 0
0 0 0 1
0 0 1 0
0 1 0 0
_
_
_
_
= e
T
1
,
- P
2
l
1
=
_
_
_
_
1 0 0 0
0 0 0 1
0 0 1 0
0 1 0 0
_
_
_
_
_
_
_
_
0
l
2,1
l
3,1
l
4,1
_
_
_
_
=
_
_
_
_
0
l
4,1
l
3,1
l
2,1
_
_
_
_
=

l
1
de sorte que nalement
E
(3)
E
(2)
E
(1)
P
2
A = U,
do lon tire, de faon analogue ce quon a vu prcdemment, en notant P la matrice
P
2
:
P A =

L
(1)
L
(2)
L
(3)
U = LU (1.23)
avec L = [

l
1
, l
2
, l
3
, l
4
].
Pour reprsenter cette factorisation, il est inutile de construire la matrice P. Il suft
dadjoindre la matrice A un compteur de permutation sous forme dune colonne sup-
27
plmentaire, p, initialise lordre naturel :
(A[ p) =
_
_
_
_
1 1 1 1 1
1 1 3 3 2
1 1 2 3 3
1 3 3 3 4
_
_
_
_
=
_
_
_
_
1 1 1 1 1
1 0 2 2 2
1 0 1 2 3
1 2 2 2 4
_
_
_
_
=
_
_
_
_
1 1 1 1 1
1 2 2 2 4
1 0 1 2 3
1 0 2 2 2
_
_
_
_
=
_
_
_
_
1 1 1 1 1
1 2 2 2 4
1 0 1 2 3
1 0 2 2 2
_
_
_
_
On vrie en effet que
_
_
_
_
1 0 0 0
1 1 0 0
1 0 1 0
1 0 2 1
_
_
_
_
_
_
_
_
1 1 1 1
0 2 2 2
0 0 1 2
0 0 0 2
_
_
_
_
=
_
_
_
_
1 1 1 1
1 3 3 3
1 1 2 3
1 1 3 3
_
_
_
_
= P A.
Le compteur de permutation p = (1, 4, 3, 2)
T
permet de retrouver la permutation des
lignes que lon doit effectuer pour rsoudre le systme P A = LU = P f.
Gnralisation
Considrons prsent une matrice inversible A M
n
(R). De mme que ci-dessus
la seconde tape de la factorisation, si on rencontre un pivot nul ltape k, la permu-
tation de la ligne k avec une ligne i > k telle que a
(k)
i,k
,= 0 scrira P
k
= I uu
T
, avec
u = e
k
e
i
.
Pour tout j < k, on aura
P
k
E
(j)
P
k
= I P
k
l
j
e
T
j
P
k
== I

l
j
e
T
j
=

E
(j)
,
puis
P
k
E
(k1)
. . . E
(1)
= (P
k
E
(k1)
P
k
) (P
k
. . . Pk) (P
k
E
(1)
P
k
) P
k
=

E
(k1)
. . .

E
(1)
P
k
.
En introduisant des matrices P
k
chaque tape, avec ventuellement P
k
= I lors-
quaucune permutation nest ncessaire, on obtiendra
_
E
(n1)
E
(n2)
. . .

E
(1)
_
(P
n1
. . . P
1
) A = U,
puis
P A = LU.
Stratgie de pivot partiel
La factorisation P A = LU est ncessaire lorsquon rencontre un pivot nul. Il se peut
que lon rencontre un pivot qui sans tre nul est trs petit. Dans ce cas, leffet des erreurs
darrondi peut-tre catastrophique.
28
Voici par exemple quelques instructions MATLAB qui utlisent la fonction Gauss liste
prcdement, pour calculer la factorisation A = LU dune matrice pour laquelle a
1,1
est
trs petit, sans tre nul :
n = 5 ;
A = rand(n) + eye(n) ;
A(1,1) = 2
*
eps ;
[L, U] = Gauss(A) ;
B = L
*
U ;
erreur = norm(A-B)
La fonction eps de MATLAB fournit la prcision relative de larithmtique dans laquelle
est implant MATLAB. Ici, eps = 2.2204e-16. Pour une ralisation jai obtenu :
>> erreur = 0.1940
En divisant par un pivot trs petit, on augmente le risque derreurs dues llimination
de chiffres signicatifs des mantisses.
En effet, si ltape k de la factorisation, le pivot a
(k)
k,k
est trs petit, les coefcients l
i,k
,
k i n seront en gnral trs grand.
Les lignes de la matrice A
(k+1)
sont dnies par lexpression MATLAB
A(i, k + 1 : n) l(i, k) A(k, k + 1 : n);
Le premier terme sera ngligeable, et ces lignes seront presque dpendantes, puis-
qu peu prs proportionnelles A(k,k+1:n) ! En terme de mthode dlimination,
le systme A
(k+1)
x = f
(k+1)
sera trs sensible aux perturbations, puisque proche dun
systme non inversible.
Pour limiter ce risque, on utilise en gnral une stratgie de recherche du pivot maxi-
mal dans chaque colonne. A ltape k, plutt que de rechercher le premier coefcient non
nul parmi les a
(k)
i,k
, i k, on recherche lindice i
m
tel que
a
(k)
i
m
,k
= max
kin
_

a
(k)
i,k

_
.
On permute ensuite les lignes k et i
m
.
La fonction MATLAB ci-dessous met en oeuvre cette stratgie :
function [L, U, permute] = Gausspiv(A);
29
% Gauss calcule la factorisation LU de la matrice
% A avec strategie de pivot partiel.
% Lappel se fait selon :
% >> [L, U, permute] = Gauss(A);
% Elle est telle que A(permute, :) = L
*
U.
% La solution du systeme Ax = f est donnee par :
% >> x = U \(L \(f(permute, :)) ;
[n, n] = size(A);
permute = 1:n;
for k = 1:n-1
% Recherche du pivot, permutation des lignes correspondantes
[maxi, ligne] = max(abs(A(k:n,k)));
ligne = ligne+k-1;
A([k, ligne],:) = A([ligne, k],:);
permute([k, ligne]) = permute([ligne, k]);
if A(k,k) == 0
error(Matrice non inversible ...)
end
% Colonne k de la matrice L) :
A(k+1:n,k) = A(k+1:n,k)/A(k,k) ;
% Mise a jour de la matrice A^(k) :
A(k+1:n,k+1:n) = A(k+1:n,k+1:n)-A(k+1:n,k)
*
A(k,k+1:n) ;
end
L = tril(A,-1) + eye(n);
U = triu(A);
Cette stratgie est considre comme sufsament stable par la plupart des biblio-
thques scientiques ; cest celle qui est gnralement implante, en particulier dans
MATLAB par la fonction lu.
Un exemple
On peut suivre les tapes de lexcution de la fonction prcdente sur la matrice
[ A [ p ] =
_
_
_
_
1 2 4 17 1
3 6 12 3 2
2 3 3 2 3
0 2 2 6 4
_
_
_
_
30
k = 1 :
_
_
_
_
3 6 12 3 2
1 2 4 17 1
2 3 3 2 3
0 2 2 6 4
_
_
_
_
=
_
_
_
_
3 6 12 3 2
1/3 0 8 16 1
2/3 1 5 0 3
0 2 2 6 4
_
_
_
_
k = 2 :
_
_
_
_
3 6 12 3 2
0 2 2 6 4
2/3 1 5 0 3
1/3 0 8 16 1
_
_
_
_
=
_
_
_
_
3 6 12 3 2
0 2 2 6 4
2/3 1/2 4 3 3
1/3 0 8 16 1
_
_
_
_
k = 3 :
_
_
_
_
3 6 12 3 2
0 2 2 6 4
1/3 0 8 16 1
2/3 1/2 4 3 3
_
_
_
_
=
_
_
_
_
3 6 12 3 2
0 2 2 6 4
1/3 0 8 16 1
2/3 1/2 1/2 5 3
_
_
_
_
On vrie que
_
_
_
_
1 0 0 0
0 1 0 0
1/3 0 1 0
2/3 1/2 1/2 1
_
_
_
_
_
_
_
_
3 6 12 3
0 2 2 6
0 0 8 16
0 0 0 5
_
_
_
_
=
_
_
_
_
3 6 12 3
0 2 2 6
1 2 4 17
2 3 3 2
_
_
_
_
= P A.
La matrice P A ne se calcule pas par un produit matriciel. A lissue de lxcution de
cet algorithme, on a p = (2, 4, 1, 3)
T
et P A = A(p, :).
Stratgie de pivot total
Les systmes qui la rende indispensable sont trs rares , et elle nest que rarement
implante. La factorisation peut alors scrire :
P AQ = LU
La matrice Q est ici galement une matrice de permutation ; son effet est de permuter les
colonnes de A. Il faut alors conserver la mmoire de cette permutation pour replacer les
inconnues du systme dans le bon ordre.
Unicit de la factorisation
On suppose que la matrice A est factorisable selon P A = LU, les lments dia-
gonaux de L tant tous gaux 1. Supposant que lon puisse former deux factorisations
diffrentes, on crit :
P A = L
1
U
1
= L
2
U
2
.
On peut alors former :
M = L
1
2
L
1
= U
2
U
1
1
L
1
2
L
1
est triangulaire infrieure de diagonale unit, et U
2
U
1
1
est triangulaire sup-
rieure : toutes deux sont gales lidentit.
31
Factorisation LDR
Il suft dcrire :
_
_
_
_
_
_
_
_
_
u
1,1
.
.
.
u
i,j
.
.
.
0
.
.
.
u
n,n
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
_
u
1,1
.
.
.
0
.
.
.
0
.
.
.
u
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
1
.
.
.
u
i,j
u
i,i
.
.
.
0
.
.
.
1
_
_
_
_
_
_
_
_
_
_
pour obtenir U = DR
1.4 Matrices symtriques dnies positives
1.4.1 Matrices symtriques dnies positives
Parmi les problmes qui conduisent un systme linaire o la matrice est sym-
trique, les plus intressants sont ceux pour lesquels on na pas besoin de stratgie de
pivot ; cest le cas lorsque la matrice est symtrique dnie positive.
1.4.2 Factorisation de Choleski
Thorme 4 Une condition ncessaire et sufsante pour que A soit symtrique dnie
positive est quil existe B, triangulaire infrieure inversible, unique si ses lments diago-
naux sont choisis positifs, telle que A = BB
T
.
On vrie sans problme la condition sufsante : si A = BB
T
, alors x
T
Ax =
x
T
BB
T
x =
_
_
B
T
x
_
_
2
> 0 si x ,= 0.
Pour la condition ncessaire, on raisonne par rcurrence en vriant que le thorme
est vrai pour n = 1, puisque a R
n
nest strictement positive que si et seulement si il
existe b > 0 tel que b
2
= a, et en loccurence, b =

a.
On suppose alors la condition vrie jusqu lordre n 1, et on crit par blocs la
matrice A selon :
A =
_
A
n1
a
a
T
m
2
_
o A
n1
M
n1
(R) (sous-matrice principale de A) est galement symtrique dnie
positive, a R
n1
et a
n,n
= m
2
est strictement positif.
On cherche B de la forme :
32
B =
_
B
n1
0
b
T
b
n,n
_
telle que :
BB
T
=
_
B
n1
0
b
T
b
n,n
__
B
T
n1
b
0 b
n,n
_
= A
cest--dire :
_
B
n1
B
T
n1
B
n1
b
b
T
B
T
n1
b
T
b +b
2
n,n
_
=
_
A
n1
a
a
T
m
2
_
Par hypothse de rcurrence, on peut trouver B
n1
triangulaire infrieure inversible
telle que A
n1
= B
n1
B
T
n1
, et le vecteur b R
n1
est solution du systme inversible
B
n1
b = a.
Le seul problme est donc le calcul de b
n,n
, qui nest possible que si m
2
b
T
b > 0.
m
2
b
T
b = m
2

_
B
1
n1
a
_
T
_
B
1
n1
a
_
= m
2
a
T
A
1
n1
a > 0
En effet, A est symtrique dnie positive : en choisissant le vecteur X qui scrit par
blocs X =
_
A
1
n1
a
1
_
, avec A
1
n1
M
n1
(R) on vrie que X
T
AX = m
2
a
T
A
1
n1
a.
1.4.3 Algorithme
Nous pouvons dduire cet algorithme de la dmonstration du thorme 4 : le rai-
sonnement par rcurrence, dans cette dmonstration, permet dafrmer que si A
k
=
(a
i,j
)
1i,jk
dsigne la sous-matrice principale de A, et B
k
celle de B, alors A
k
= B
k
B
T
k
.
Le passage de B
k1
B
k
se fait en deux tapes :
calcul de b
T
= B(k, 1 : k 1) en rsolvant le systme triangulaire infrieur B
k1
b =
a, avec a = A(1 : k 1, k) ;
calcul de b
k, k
=
_
a
k,k
b
T
b.
Lalgorithme de factorisation, peut donc scrire, en langage MATLAB, et dans une
forme qui ncrase pas la matrice A :
N = size(A,1);
B = zeros(size(A));
B(1,1) = sqrt(A(1,1));
for k = 2:N
% Resolution du systeme triangulaire infrieur :
for l = 1:k-1
B(k,l) = (A(k,l)-B(l,1:l-1)
*
B(k,1:l-1))/B(l,l);
end;
33
% Calcul de lelement diagonal
B(k,k) = sqrt(A(k,k)-B(k,1:k-1)
*
B(k,1:k-1));
end;
Remarque 5 On peut tout aussi bien noncer la factorisation de Choleski de la matrice
symtrique dnie positive A selon A = H
T
H avec H triangulaire suprieure. Cest
gnralement le cas dans la littrature anglo-saxonne, et cest en particulier limplantation
de la fonction chol de MATLAB.
Complexit
On peut saider du programme MATLAB ci-dessus pour calculer le cot de la facto-
risation. Pour chaque valeur de k comprise entre 2 et n, on effectue, sans compter les
extractions de racines carres :
- une rsolution de systme triangulaire de taille k 1, soit (k 1)
2
oprations l-
mentaires,
- 2 (k 1) oprations lmentaires pour le calcul de llment diagonal.
Le cot de la factorisation est donc
C(n) =
n1

l=1
l
2
+ 2
n1

l=1
l,
=
n(n 1) (2n 1)
6
+n(n 1),
=
n(n 1) (2n + 5)
6
,
auquel sajoutent n calculs de racines.
34
Chapitre 2
Equations et Systmes Non Linaires
Dans le cas gnral, on ne peut pas esprer rsoudre une quation ou un systme
dquations non linaires par une formule directe : a nest possible que pour quelques
quations algbriques, comme par exemple les quations du second degr.
La formule qui donnne les deux racines des quations du second degr est connue
depuis trs longtemps ; elle a t retrouve sur des tablettes babyloniennes dates des
environs de 1500 avant notre re. Pour les quations de degr 3 la solution a t tablie
par litalien Tartaglia en 1535, mais publie en 1545 par Jrme Cardan, qui par ailleurs
a laiss son nom un systme de transmission cher aux automobilistes. Pour le degr 4,
cest encore un italien, dont le nom sonne de faon plaisante aux oreilles des amateurs
dautomobiles qui a tabli la mthode (Ludovico Ferrari en 1565). Ces formules sont
exactes si lon considre que lextraction dune racine est une opration exacte. Et on sait
depuis Niels Abel et Evariste Galois que lon ne peut pas tendre ce type de formules au
calcul des racines dun polynme quelconque de degr suprieur.
Mais si les calculettes nous fournissent immdiatement la valeur =

a pour un rel
a positif, cette opration est en fait la rsolution de lquation non linaire x
2
a = 0, et
sobtient en calculant de proche en proche les itrs dune suite qui tend vers .
De faon plus gnrale, on peut tre amen rechercher une racine relle dune
quation F(x) = 0, o F est une fonction quelconque. On devra construire une suite
(x
k
)
kN
qui converge vers une solution du problme. Il est important de remarquer que
lon parle ici dune solution : on na gnralement pas unicit de solution, et il arrive que
lon en cherche plusieurs, ou quon les cherche toutes.
Il faudra alors :
1. localiser la ou les racines que lon veut calculer,
2. sassurer que la suite (x
k
) converge vers une limite r telle que F(r) = 0,
3. prvoir un test darrt des calculs, et estimer la prcision quil garantit,
4. ventuellement, savoir comparer diffrentes mthodes.
35
2.1 Heron dAlexandrie et les racines carres
Egalement appel Heron lancien, il vcut au premier sicle de notre re et fut un
des grands mcaniciens de lantiquit ; il inventa diverses machines et instruments de
mesure comme lodomtre permettant de mesurer les distances parcourues en comptant
le nombres de tours dune roue, et dont le principe est encore utilis par les compteurs
kilomtriques des bicyclettes.
Lalgorithme de calcul des racines carres quon lui atribue tait en fait dja connu
des Babyloniens.
2.1.1 La methode de Hron :
Approche pragmatique :
Soit a un nombre positif dont on veut calculer la racine carre =

a ; est la
longueur du ct dun carr dont laire est a. On va chercher construire un tel carr
en partant dun rectangle, quon va peu peu transformer pour le faire ressembler un
carr. Si lon considre une valeur x
0
donne comme une estimation grossire de , on
construit dabord un rectangle ! daire a ayant un ct de longueur L = x
0
et un second
ct gal l =
a
L
=
a
x
0
.
Pour construire un nouveau rectangle qui ressemble plus un carr, il est raisonnable
de choisir pour longueur dun ct la moyenne des longueurs des cts du rectangle
prcdent. Cette longueur sera L = x
1
=
1
2
(x
0
+
a
x
0
). Le second ct aura pour longueur
l =
a
L
=
a
x
1
. Et lon va continuer jusqu ce que notre appareil de mesure ne nous
permette plus de distinguer les longueurs des deux cts. La gure ci-dessous nous
montre trois tapes de ce procd :
Rectangle initial
x
0
= 160
Premire rduction
x
1
= 105
x
2
= 88.3049
Deuxime rduction
x
3
= 89.4354
Troisme rduction
Sur cet exemple, nous cherchons calculer =

8000. La valeur initiale est x


0
= 160.
Le rectangle initial a pour cts 160 et 50.
36
Pour construire un rectangle qui ressemble plus un carr, on le remplace par le
rectangle dont un ct est la moyenne des deux prcdents, cest--dire x
1
=
1
2
(x
0
+
a
x
0
) = 105 de sorte que lautre ct a pour longueur
8000
105
= 76.1905.
On va ensuite ritrer cette dmarche en appliquant la formule
x
k+1
=
1
2
(x
k
+
a
x
k
) (2.1)
x
k
a
x
k
160.00000000000000 50.00000000000000
105.00000000000000 76.19047619047619
90.59523809523810 88.30486202365309
89.45005005944560 89.43538874135297
89.44271940039928 89.44271879958389
89.44271909999159 89.44271909999158
On a obtenu la racine cherche la prcision machine. Les chiffres corrects sont
souligns, et lon constate que ds que lon a obtenu 3 chiffres corrects (pour x
3
), la
convergence devient trs rapide : 8 chiffres pour x
4
et 15 pour x
5
!
Le principe des approximations successives
On peut regarder cet algorithme dun point de vue lgrement diffrent. Partant de
lquation F(x) = x
2
a = 0, quon crit de faon quivalente x
2
= a ou x =
a
x
, on
obtient successivement :
x
2
= a
x
2
+a = 2 a
1
2
(x
2
+a) = a
1
2
(x +
a
x
) =
a
x
= x
On a remplac lquation F(x) = 0 par une quation quivallente f(x) = x, avec ici
f(x) =
1
2
_
x +
a
x
_
, qui permet de retrouver la dnition (2.1) de la mthode de Heron :
_
x
0
R, point de dpart des itrations
x
k+1
= f(x
k
), k 0.
Ces deux relations dnissent les itrations de la mthode. Cest un exemple de
mthode de point xe : la limite =

a de la suite ainsi dnie par rcurrence est
telle que = f().
37
Ces deux relations restent imprcises sur deux points fondamentaux :
- le choix de x
0
,
- le critre vrier pour arrter les itrations : il nest pas question de continuer
indniment les calculs.
On va voir que pour notre algorithme, ces deux points peuvent tre lucids facilement.
Choix dune valeur initiale
Notre choix de x
0
tait assez empirique, et pour tout dire pas trs heureux : le premier
rectangle est un peu trop allong. On peut essayer de rechercher une meilleure valeur
pour x
0
Pour cela, on va crire a sous la forme a = m 4
p
, avec
1
4
m 1. Attention, m
nest pas tout fait une mantisse car il est crit en base 10. On aura alors =

m2
p
,
et 0.5

m 1.
Il nous suft maintenant de savoir initialiser les itrations pour rechercher

m. La
gure suivante montre que le courbes reprsentant s(x) =

x et la droite dquation
y =
1 + 2x
3
qui passe par les points
_
1
4
,
1
2
_
et (1, 1) sont assez proches.
0 0.5 1 1.5
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Initialisation de lalgorithme de Heron sur [0.25, 1]
m
On va donc choisir dinitialiser la recherche de

m en utilisant la valeur x
0
=
1 + 2m
3
.
Auparvant, il vaut trouver la valeur de p.
On remarque, mais lordinateur le fera trs facilement pour nous, que
1
4

8000
4
7
= 0.48828125 1,
38
de sorte que lon choisira cette valeur pour m, avec p = 7. On obtient alors :
x
i
m
x
i
0.65885416666667 0.74110671936759
0.69998044301713 0.69756413178540
0.69877228740126 0.69877019853767
0.69877124296946 0.69877124296790
0.69877124296868 0.69877124296868
On retrouve

a 0.69877124296868 2
7
= 89.44271909999159.
Arrt des itrations
Supposons calcul un itr x
i
de notre suite, et valuons :
x
k+1

m =
1
2
(x
k
+
m
x
k
)

m =
1
2
x
2
k
2 x
k

m+ (

m)
2
(

x
k
)
2
=
1
2
_
x
k

x
k
_
2
de sorte que si e
k
= x
k

m dsigne lerreur aprs k itrations, on aura :


e
k+1
=
1
2 x
k
e
2
k
Mais si x
k1
[0.5, 1], alors x
k
[0.5, 1], de sorte que 2 x
k
1 et :
e
k+1
e
2
k
.
Par ailleurs, la fonction e(x) =

x
1 + 2x
3
a sa drive e

(x) =
1
2

2
3
qui sannule
pour x =
9
16
. Cest donc pour m =
9
16
que lerreur e
0
sera maximale. Ce maximum de
lerreur est denviron 0.041666 < 0.05
On en dduit que e
4
e
2
3
e
4
2
e
8
1
(0.05)
16
< 2 10
21
, de sorte que 4 itrations
sufsent atteindre une prcision meilleure que lunit darrondi u.
2.2 Rsolution dune quation non linaire
Au long de cette section, nous considrons la fonction
F(x) = 0.01 exp x + 10 cos x 3 x.
39
2.2.1 Localisation des racines
La recherche dune solution de lquation F(x) = 0 ne peut se faire que par une
mthode itrative. On verra que lon peut utiliser deux types de mthodes. Certaines
travaillent sur des intervalles contenant la racine cherche, dautres avec une seule valeur
(la mthode de Heron pour la recherche dune racine carre).
La mthode doit donc tre alimente par une ou deux valeurs initiales et priori, ces
valeurs doivent tre assez proche de la racine cherche
Reprsentation graphique
Une premire faon de choisir une valeur initiale consiste faire une reprsentation
graphique. Voici une reprsentation graphique de F sur lintervalle [1, 10] :
0 2 4 6 8 10
50
0
50
100
150
200
Graphe de la fonction F(x)= 0.01 exp(x) + 10cos(x) 3x
On constate au vu de cette gure que notre fonction possde deux racines :
- la premire est dans lintervalle [0, 2], plutt vers le milieu,
- la seconde est dans lintervalle [7, 8], plus prs de 8.
Le trac dune telle gure est particulirement facile avec le logiciel MATLAB . Voici
les commandes quil faut entrer pour obtenir le graphe de la fonction F
x = [-1:0.01:10];
y = 0.01
*
exp(x) + 10
*
cos(x) - 3
*
x;
z = zeros(size(x));
plot(x,y,x,z);
La gure sera peu prs la courbe reprsente ci-dessus (sans le titre, laxe des y et
les ches pour marquer les axes)
On peut expliciter et commenter ces instructions :
- x = [-1:0.01:10]; construit un vecteur ligne contenant tous les points x
i
=
1 +i 0.01 compris entre -1 et 10.
- y =0.01
*
exp(x) + 10
*
cos(x) + 3
*
x; construit un vecteur ligne contenant
les valeurs y
i
= F(x
i
) ; on remarquera que MATLAB calcule les valeurs des fonc-
tions usuelles pour chaque lment dun tableau qui lui est pass en argument.
40
- z = zeros(size(x)); cre un vecteur de mme taille que x contenant des
zros ; ce vecteur sera utilis pour tracer laxe des absisses.
- plot(x,y,x,z); cre une gure contenant deux courbes ; la premire relie les
points (x
i
, y
i
) et la seconde les points (x
i
, 0) (axe des x).
Balayage systmatique
Faute de possibilit de tracer facilement un graphe, on peut balayer systmatiquement
lintervalle qui nous intresse pour rechercher les ventuels changements de signe de F.
Pour notre exemple, on peut calculer les valeurs de F(x) pour les valeurs entires de
x. Les valeurs sont, dans lordre 8.40, 10.01, 2.43, -10.08, -18.69, -17.99, -10.67, -4.36,
-2.49, 4.35, 44.91, 181.87.
On observe un changement de signe entre 1 et 2 ainsi quentre 7 et 8.
Arguments physiques
Pour des problmes rels, certaines considrations physiques vous permettront de
situer grossirement les racines qui vous intressent. Cest dailleurs la premire reexion
quil faut faire ; elle permet de dlimiter lintervalle dtude de la fonction, avant mme la
reprsentation graphique.
2.2.2 Mthode de dichotomie
Principe
Si la fonction continue F change de signe sur un intervalle [a, b], cest--dire si
F(a) F(b) < 0, alors F sannule au moins une fois sur cet intervalle. Cette remarque
peut tre utilise pour former une suite dintervalles de plus en plus petits qui contiennent
une racine F.
En notant a
0
, b
0
les bornes de cet intervalle et m =
a
0
+b
0
2
le milieu de cet intervalle,
on aura deux possibilits :
- soit F(a
0
) F(m) 0, et dans ce cas nous aurons une racine dans [a
0
, m] ; on pose
a
1
= a
0
et b
1
= m;
- soit F(b
0
) F(m) 0, et dans ce cas nous aurons une racine dans [m, b
0
] ; on pose
a
1
= m et b
1
= b
0
.
Dans les deux cas, le nouvel intervalle [a
1
, b
1
] est de longueur b
1
a
1
=
b
0
a
0
2
. On
recommence le mme processus avec ce nouvel intervalle.
On construit ainsi une suite dintervalles [a
k
, b
k
] qui sont embots et contiennent
une racine de F. On arrtera ces itrations lorsque la longueur [a
k
b
k
[ de lintervalle
sera infrieure une tolrance choisie lavance. On prendra pour racine la valeur r =
a
k
+b
k
2
.
41
En ce qui concerne la mise en oeuvre, on trouvera sur la table 2.1 les rsultats obte-
nus pour notre fonction F, en partant des intervalles [1, 2] et [7, 8].
k a
k
b
k
a
k
b
k
0 1.000000000 2.000000000 7.000000000 8.000000000
1 1.000000000 1.500000000 7.500000000 8.000000000
2 1.000000000 1.250000000 7.500000000 7.750000000
3 1.125000000 1.250000000 7.625000000 7.750000000
4 1.187500000 1.250000000 7.625000000 7.687500000
5 1.187500000 1.218750000 7.625000000 7.656250000
6 1.203125000 1.218750000 7.625000000 7.640625000
7 1.203125000 1.210937500 7.632812500 7.640625000
8 1.203125000 1.207031250 7.636718750 7.640625000
9 1.203125000 1.205078125 7.638671875 7.640625000
10 1.204101562 1.205078125 7.639648437 7.640625000
11 1.204589843 1.205078125 7.639648437 7.640136718
12 1.204589843 1.204833984 7.639648437 7.639892578
13 1.204589843 1.204711914 7.639770507 7.639892578
14 1.204589843 1.204650878 7.639831542 7.639892578
TABLE 2.1 Rsultats obtenus pour la fonction F en partant des intervalles [1, 2] et [7, 8].
Les racines calcules sont alors respectivement r
1
= 1.204620361 et r
2
= 7.639862060.
Convergence et arrt des itrations
Sur les deux racines calcules prcdement, la prcision garantie est la mme : en
effet la longueur des derniers intervalles calculs est, dans un cas 6.1035 10
5
et dans
lautre 6.1036 10
5
.
Cette prcision peut tre prvue lavance. A linitialisation, lintervalle [a
0
, b
0
] a pour
longueur 1 ; la premire itration, sa longueur sera
1
2
, et la k-ime, elle sera
1
2
k
.
Si lon souhaite une prcision de 10
4
, on cherchera k tel que
1
2
k
10
4
, soit encore
k ln 2 4 ln 10, cest dire k 4
ln 10
ln 2
13.2877. On retrouve la valeur k = 14.
En fait, la prcision effectivement atteinte est 0.5 10
4
, puisque la racine est choisie
au milieu du dernier intervalle.
Ces remarques se gnralisent, et peuvent snoncer de la faon suivante :
Thorme 5 Si r dsigne une racine de lquation F(x) = 0 contenue dans lintervalle
[a
0
, b
0
]. La mthode de dichotomie applique la recherche de cette racine est telle que :
i) la racine approche r
k
calcule litration k vrie [r
k
r[
[a
0
b
0
[
2
k+1
.
ii) le nombre k

ditrations ncessaire pour atteindre une prcision est tel que k


ln
[a
0
b
0
[

1.
42
La borne de lerreur est divise par 2 chaque itration. Lorsquune mthode itrative
est telle quil existe une constante c < 1 pour laquelle [r
k+1
r[ c [r
k
r[, on dit quelle
converge linairement.
2.2.3 La mthode de Newton
Principe
Supposons maintenant que comme prcdement, une reprsentation graphique nous
ait indiqu que la valeur x
0
= 8 est proche dune racine. Un dveloppement de Taylor
lordre 1 en h au point x
0
scrit :
F(x
0
+h) = F(x
0
) +hF

(x
0
) +h(h) (2.2)
La racine cherche peut scrire r = x
0
+h pour un h inconnu qui sera tel que :
F(x
0
) +hF

(x
0
) +h(h) = 0 (2.3)
Comme h est assez petit, (h) sera encore plus petit ; on va ngliger le terme h(h)
et forcer lgalit 0 en posant
F(x
0
) +h
1
F

(x
0
) = 0 (2.4)
qui fournit h
1
=
F(x
0
)
F

(x
0
)
.
On aura ainsi dni le premier itr dune nouvelle mthode en posant
x
1
= x
0

F(x
0
)
F

(x
0
)
.
Par ailleurs, on sait que la tangente la courbe reprsentant y = F(x) au point x
0
a
pour quation
y = F(x
0
) + (x x
0
) F

(x
0
) (2.5)
On remarque alors que cette tangente coupe laxe des x au point x
1
. le choix de x
1
est donc la solution dun modle linaire de notre problme au voisinage de x
0
:
Courbes reprsentant F et sa drive au point x
0
(x
0
, F(x
0
)
(x
0
F(x
0
)/F(x
0
), 0)
43
0 5 10 15 20 25 30 35 40 45 50
10
16
10
14
10
12
10
10
10
8
10
6
10
4
10
2
10
0
k
|
x
k

r
|
Comparaison des erreurs pour les deux mthodes
Newton
e
n
(k)
Dichotomie
e
d
(k)
FIGURE 2.1 Erreur de convergence pour la dichotomie (e
d
(k)) et pour la mthode de
Newton (e
n
(k)).
Mise en oeuvre
La mthode de Newton va tre dnie en itrant cette dmarche. Lalgorithme consiste
donc, partant de x
0
voisin dune racine, calculer pour k 0 :
x
k+1
= x
k

F(x
k
)
F

(x
k
)
(2.6)
Partant respectivement des valeurs x
0
= 2 et x
0
= 8, nous obtenons les valeurs
prsentes sur la table 2.2.
k x
k
x
k
0 2.0000000000000000 8.0000000000000000
1 1.1607032574053444 7.7425762473069293
2 1.2049212788797627 7.6507460430283869
3 1.2046178784694039 7.6400156469715865
4 1.2046178652072419 7.6398801183259391
5 1.2046178652072419 7.6398800969514733
6 1.2046178652072419 7.6398800969514733
TABLE 2.2 Convergence de la mthode de Newton en partant respectivement des va-
leurs x
0
= 2 et x
0
= 8.
On constate que la suite a converg, dans un cas la quatrime itration, et dans
lautre la cinquime! La mthode de Newton est beaucoup plus rapide que la prc-
dente. On peut aussi le voir en regardant les courbes reprsentant lvolution de lerreur
pour chaque mthode dans la recherche de la racine.
On y remarque que lerreur pour chacune de ces mthodes est reprsente par une
courbe sur la gure 2.1 :
44
0 1 2 3 4 5 6 7 8
10
12
10
10
10
8
10
6
10
4
10
2
10
0
k
|
x
k

r
|
Mthodes de Newton et de la scante
Newton
e
n
(k)
Scante
e
s
(k)
FIGURE 2.2 Comparaison entre la mthode de Newton et la mthode de la scante.
- pour la mthode de Newton, cest la courbe reprsentant e
n
(k) = (
1
2
)
2
k
,
- pour la mthode de dichotomie, cest la courbe reprsentant e
d
(k) = (
1
2
)
k
.
Pour la mthode de dichotomie, on retrouve le principe de la convergence linaire :
chaque itration, lerreur est divise par 2. Pour la mthode de Newton, cest le principe
observ pour la mthode de Heron que lon retrouve : en effet, ici [x
0
r[
1
2
, et au-del,
pour k 0, la relation [x
k+1
r[ [x
k
r[
2
entraine donc
[x
k+1
r[
_
[x
k1
r[
2
_
2
,
qui permet, en remontant jusqu k = 0, de retrouver
[x
k
r[ (
1
2
)
2
k
.
On dit quil y a convergence quadratique lorsque la mthode itrative pour calculer la
racine r est telle que pour tout k et pour un c < 1, [x
k+1
r[ c [x
k
r[
2
.
Remarque 6 Il ne faut pas stonner de retrouver ici une proprit de la mthode de
Heron. En effet, si lon veut appliquer la mthode de Newton la fonction F(x) = x
2
2,
dont la drive est F

(x) = 2 x, les itrations scrivent


x
k+1
= x
k

x
2
k
2
2 x
k
=
x
k
2
+
1
x
k
=
1
2
_
x
k
+
2
x
k
_
.
La mthode de Heron est une application particulire de la mthode de Newton.
On peut penser que la mthode de Newton est prfrable la mthode de dichotomie,
cependant pour notre exemple,
- partant de x
0
= 3, on converge, assez vite dailleurs puisque cest en 6 itrations,
mais vers une racine indsirable r = 2.35581727259318 qui est en dehors de
lintervalle qui nous intresse;
- partant de x
0
= 30, on converge bien vers r = 7.63988009695147, mais la conver-
gence est trs lente : il faut 29 itrations. Il est vrai que ce choix dinitialisation est
un peu absurde puisque F(30) 10
11
.
45
Combiner deux mthodes
La mthode de Newton est incontestablement la meilleure lorsquon est assez proche
de la racine recherche. Assez proche dpend de la fonction F. On peut le caractriser
lorsquon connait bien les drives premire et seconde de F au voisinage de la racine.
En gnral, cette caractrisation reste thorique et na que peu dintrt dans les cas
rels.
On peut combiner les deux mthodes de facon pragmatique. A linitialisation, on dis-
pose dun intervalle [a
0
, b
0
] tel que F(a
0
) F(b
0
) < 0. On choisit une des bornes a
0
ou b
0
pour x
0
. On calcule x
1
selon la mthode de Newton.
- Si x
1
/ [a
0
, b
0
], on le rejette et on effectue une itration de dichotomie pour trouver
[a
1
, b
1
].
- Si x
1
[a
0
, b
0
], alors :
* Si F(x
1
) F(a
0
) < 0, on pose a
1
= a
0
et b
1
= x
1
.
* Si F(x
1
) F(b
0
) < 0, on pose a
1
= x
1
et b
1
= b
0
.
- On itre en partant de lintervalle [a
1
, b
1
].
Quand on veut viter les drives
Un autre inconvnient de la mthode de Newton est que parfois les drives de F
sont difciles calculer.
On va alors se rappeler que lon peut approcher une drive par une formule de
diffrences nies.
Supposons calculs les itrs jusqu ltape k. La mthode de Newton demande de
calculer x
k+1
= x
k

F(x
k
)
F

(x
k
)
.
Lide de la mthode de la scante consiste remplacer F

(x
k
) par
d
k
=
F(x
k
) F(x
k1
)
x
k
x
k1
.
Cette mthode ncessite deux valeurs pour tre initialise. Partant de x
0
, on calculera
un d
0
en posant, pour un h convenablement choisi d
0
=
F(x
0
+h) F(x
0
)
h
.
La courbe montre sur la gure 2.2.3 compare la mthode de Newton celle de la
scante, initialise en choisissant h = 0.1 pour x
0
= 8.
Sur cette gure, la courbe reprsentant e
s
(k) donne une ide de la convergence de
la mthode de la scante.Les valeurs e
s
(k) sont dnies par e
s
(k) = (
1
2
)
d
k
, avec d =
1 +

5
2
.
Cette convergence nest pas trop mauvaise par rapport celle de la mthode de
Newton.
46
Chapitre 3
Equations Diffrentielles Ordinaires
3.1 Equations Diffrentielles
3.1.1 Diffrents types de problmes diffrentiels
Les quations diffrentielles constituent, avec les quations aux drives partielles,
loutil de base pour la description des modles mathmathiques de phnomnes rencon-
trs dans la nature. Le terme dquations diffrentielles ordinaires est employ pour
dsigner les quations diffrentielles qui peuvent se mettre sous la forme
y
(p)
(t) = f(t, y(t), . . . , y
(p1)
(t)) (3.1)
par opposition celles qui sexpriment seulement de faon implicite,
f(t, y(t), y

(t), . . . , y
(p)
(t)) = 0.
Lquation (3.1) est dordre p ; elle peut admettre une solution gnrale, mais il faut
ajouter p conditions pour esprer une solution unique.
Un problme diffrentiel sera toujours constitu dquation(s) et de condition(s).
Plus que lordre de lquation, cest la nature des conditions qui caractrise le type de
problme.
- Pour des quations ou des systmes du premier ordre, la condition xe la valeur
en un point de la solution. On peut avoir un problme valeur initiale :
_
y

(t) = f(t, y(t)) ; t [0, T], y R


n
,
y(0) = R
n
.
(3.2)
- Les problmes du second ordre peuvent tre des problmes aux limites comme
par exemple :
_
y

(x) = f(x, y(x), y

(x)) ; x [a, b],


y(a) = ; y(b) = .
(3.3)
- Les problmes du second ordre, ou dordre suprieur peuvent tre galement des
problmes valeur(s) initiale(s) ; on les transforme alors en problmes dordre 1 de
47
taille suprieure. Partant dune quation diffrentielle, on forme un systme diff-
rentiel ; cest le cas pour le problme :
_
y

(t) = f(t, y(t), y

(t)) ; t [0, T],


y(0) = ; y

(0) = .
que lon crira sous la forme :
_
Y

(t) = F(t, Y (t)) ; t [0, T],


Y (0) = Y
0
,
avec Y =
_
y(t)
y

(t)
_
=
_
y
1
(t)
y
2
(t)
_
et Y
a
=
_

_
. On obtient :
Y

(t) =
_
y
2
(t)
f(t, y
1
(t), y
2
(t))
_
Ce chapitre est consacr aux problmes valeurs initiales, et on ny taitera pas les
problmes de la forme (3.3). On a choisi dappeler t la variable dans ce cas et x pour
les problmes aux limites. On retrouvera ces deux variables dans ltude des quations
aux drives partielles. Les problmes valeur(s) initiale(s) seront toujours tudis sur
un intervalle de la forme [0, T].
Exemple 7 Le problme
_
y

(t) 4 y

(t) + 4 y(t) = exp(2 t), 0 t 1,


y(0) = 0 ; y

(0) = 1.
scrit sous la forme Y

(t) =
_
0 1
4 4
_
Y (t) +
_
0
exp(t)
_
, avec Y (0) =
_
0
1
_
.
Exemple 8 Le problme du pendule.
Le mouvement dun pendule de masse m, suspendu un point O par un l non pesant
de longueur l, en rotation dangle (t) autour de O est gouvern par lquation :

(t) =
g
l
sin((t)). (3.4)
Langle est mesur par rapport une verticale passant par O. On sintresse au
mouvement entre les instants t
0
= 0 et un instant nal T. Les conditions initiales peuvent
tre
0
=

3
rad. et

(0) = 0 rad s
1
. En gnral, on introduit
2
=
g
l
. Ce problme est un
problme non linaire.
Lquation (3.4) est dordre 2, mais les conditions donnes en font un problme va-
leurs initiales ; il doit donc tre transform en un systme de deux quations diffrentielles
du premier ordre. On pose y
1
(t) = (t) et y
2
=

(t). On obtient :
y

1
(t) = y
2
(t)
y

2
(t) =
2
sin(y
1
(t))
Ce systme entre dans le cadre de lquation (3.2) avec Y =
_
y
1
y
2
_
et
F =
_
F
1
(t, Y )
F
2
(t, Y )
_
=
_
y
2

2
sin y
1
_
(3.5)
48
3.1.2 Les quations diffrentielles en chimie
Cintique chimique
La description des ractions chimiques conduit des systmes diffrentiels. Suppo-
sons que lon tudie les ractions de 4 substances, notes A, B, C et D. Ces 4 espces
ragissent entre elles selon les quations chimiques
A+B
k
1

C +D
2 A+C
k
2

B
(3.6)
Les paramtres k
i
sont des constantes cintiques qui caractrisent la vitesse la-
quelle se produit chacune des ractions.
A partir de ces quations chimiques, dont on suppose quelles dcrivent la totalit
des interactions entre ces trois composants, on va crire les quations dvolution des
concentrations de chaque espce. On peut le faire en utilisant la loi daction de masse qui
stipule que la vitesse dune raction est proportionnelle aux concentrations des ractants.
Pour lespce A, en notant [A] sa concentration, on obtiendra
d[A]
dt
= k
1
[A] [B] 2 k
2
[A] [A] [C].
En effet la vitesse de la premire raction est proportionnelle aux concentrations de
A et B, et le signe exprime le fait que A est consomm par cette raction. Pour la
deuxime raction, la vitesse est donne de faon analogue par k
2
[A] [A] [C] car chaque
occurence de cette raction consomme 2 units du ractant A.
Suivant le mme raisonnement, on crit une quation diffrentielle pour lvolution de
chacune des espces. En notant Y (t) R
4
le vecteur dont les composantes sont les
concentrations respectives [A], [B], [C] et [D], on obtient un systme diffrentiel de la
forme Y

(t) = F(t, Y (t)) avec


F(t, Y ) =
_

_
k
1
Y
1
Y
2
2 k
2
Y
2
1
Y
3
k
1
Y
1
Y
2
+k
2
Y
2
1
Y
3
k
1
Y
1
Y
2
k
2
Y
2
1
Y
3
k
1
Y
1
Y
2
_

_
La raction de Belousov-Zhabotinsky
La raction BZ correspond loxydation en milieu acide dun rducteur organique
(acide malonique) par les ions Br0
+
3
, catalyse par un couple oxydo-reducteur (par exemple,
Ce
4+
Ce
3+
). Le mcanisme complet de cette raction a t dcrit par Field, Krs et
Noyes ; il met en jeu 18 ractions concernant 21 espces chimiques.
Les mmes auteurs ont propos un modle simpli connu sous le nom dOrego-
nateur en rfrence luniversit dOregon laquelle ils appartenaient et par analogie
avec un modle apppel Bruxellateur propos antrieurement par Lefever et Nicolis
lUniversit libre de Bruxelles. Les quations chimiques de ce modle simpli sont
49
Phase dinitiation,
Br0

3
+ Br

+ 2 H
+ k
1

HBr0
2
+ HOBr
Production autocatalytique de HBrO
2
,
Br0

3
+ HBrO
2
+ 2 Ce
3+
+ 3 H
+ k
2

2 HBrO
2
+ 2 Ce
4+
+ H
2
O
Consommation de HBrO
2
,
Br

+ HBr0
2
+ H
+ k
3

2 HOBr
2 HBr0
2
k
4

HOBr + BrO

3
+ H
+
Oxydation des composs organiques,
Organique + Ce
4+ k
5

2
Br

+ Organique
Organique dsigne toute espce organique oxydable et dsigne un facteur sto-
chiomtrique qui caractrise la chimie organique implique dans la raction.
On va sintresser aux variations temporelles des concentrations [HBrO
2
], [Br

] et
[Ce
4+
] notes respectivement Y
1
(t), Y
2
(t) et Y
3
(t).
Certaines concentrations seront supposes constantes, et notes [Br0

3
] = A (=
0.06) et [Organique] = B (= 0.02). LOregonateur prend galement en compte [HOBr] =
P, mais omet les autres ractants. Il scrit
A + Y
2
k
1

Y
1
+ P
A + Y
1
k
2

2 Y
1
+ 2 Y
3
Y
1
+ Y
2
k
3

2 P
2 Y
1
k
4

A + P
B + Y
3
k
5

2
Y
2
Suivant le raisonnement de la section prcdente, la fonction Y (t) est solution du
systme diffrentiel :
_

_
d Y
1
dt
= k
1
AY
2
+k
2
AY
1
k
3
Y
1
Y
2
2 k
4
Y
2
1
,
d Y
2
dt
= k
1
AY
2
k
3
Y
1
Y
2
+
k
5

2
BY
3
d Y
3
dt
= 2 k
2
AY
1
k
5
BY
3
(3.7)
Les solutions de ce systme ne peuvent se calculer que numriquement. Les constantes
cintiques, donnes en Moles
1
s
1
sont, suivant Fields, Noyes et Krs :
k
1
k
2
k
3
k
4
k
5
1.28 8 10
5
8 2 10
3
1
La valeur du facteur peut tre choisie plus ou moins arbitrairement. La gure 3.1
montre cette solution calcule pour =
2
3
.
50
FIGURE 3.1 La raction oscillante du modle FKN.
Exemple 9 Le systme diffrentiel (3.7) scrit un peu plus simplement si lon procde
une adimensionnalisation. Il sagit deffectuer un changement de variables et dincon-
nues.
Vous montrerez quen introduisant les fonctions y
1
=
Y
1
Y
0
1
, y
2
=
Y
2
Y
0
2
, y
3
=
Y
3
Y
0
3
et la
variable =
t
T
0
, avec Y
0
1
=
k
2
A
2 k
4
, Y
0
2
=
k
2
A
k
3
, Y
0
3
=
(k
2
A)
2
k
4
k
5
B
et T
0
=
1
k
5
B
, le systme
diffrentiel satisfait par la fonction y scrit
_

dy
1
d
= q y
2
y
1
y
2
+y
1
(1 y
1
)

dy
2
d
= q y
2
y
1
y
2
+y
3
dy
2
d
= y(1) y(3)
(3.8)
Les paramtres de (3.8) sont =
k
5
B
k
2
A
, =
2 k
4
k
5
B
k
2
k
3
A
et q =
2 k
1
k
4
k
2
k
3
.
Exemple 10 La raction BZ est oscillante pour des valeurs de comprises entre 0.5 et
2.4. En fait, pour ce modle diffrentiel, ces valeurs ne sont pas tout fait exactes. La
gure 3.2 montre cette solution calcule pour pour = 0.5130241 et = 0.5130242, avec
comme contition initiale Y
0
= [0, 10
5
, 0]
T
.
0n constate sur cette gure que les solutions dun systme diffrentiel peuvent tre
trs sensibles aux ventuelles perturbations de ce systme. Ici, une variation relative
denviron 2 10
7
du facteur stochiomtrique modie radicalement la nature de la solution !
51
FIGURE 3.2 Le modle FKN fournit une raction oscillante pour certaines valeurs de .
3.1.3 Problmes de Cauchy
Lorsque la fonction f est continue sur [0, T] R
n
, les problmes du type (3.2) sap-
pellent aussi problmes de Cauchy.
Nous allons simplement donner lnonc dun thorme qui assure lexistence et luni-
cit dune solution pour un problme valeurs initiales. Cest le thorme de Cauchy-
Lipschitz.
Thorme 6 Si f est continue dans [0, T] R
n
, et sil existe une constante L 0 telle
que |f(t, y) f(t, z)| L|y z| t [0, T], (y, z) R
2n
, le problme (3.2) admet une
solution unique pour toute donne initiale R
n
.
La seconde condition sappelle condition de Lipschitz par rapport la variable y. Bien
que ce thorme nous assure de lexistence dune solution, il est souvent impossible de
la calculer explicitement.
Exemple 11 Le problme du pendule satisfait les hypothses du thorme 6. La fonction
F de (3.5) vrie en effet, pour tous Y et Z de R
2
:
- [F
1
(Y ) F
1
(Z)[ = [y
2
z
2
[ |Y Z|,
- [F
2
(Y ) F
2
(Z)[ =
2
[ sin(y
1
) sin(z
1
)[
2
|Y Z|, puisque
[ sin(y
1
) sin(z
1
)[ = 2 [ sin(
y
1
z
1
2
) cos(
y
1
+z
1
2
)[ [y
1
z
1
[ |Y Z|.
On ne peut cependant pas expliciter sa solution laide de fonctions usuelles. Cette
solution peut sexprimer laide dune fonction spciale appele fonction sinus amplitu-
de de Jacobi, mais cest beaucoup plus compliqu que de rechercher une approximation
numrique de la solution en utilisant une des mthodes que nous allons exposer dans ce
cours.
52
Exemple 12 Le problme
_
y

(t) = y(t)
1/2
; t [0, 1],
y(0) = 0,
ne satisfait pas les hypothses
du thorme 6. Il admet au moins deux solutions distinctes y
1
(t) = 0 et y
2
(t) =
_
t
2
_
2
.
Exemple 13 Pour des valeurs adquates des paramtres, le problme (3.8) est un pro-
blme de Cauchy. La fonction F qui dnit ce problme ne satisfait pas la condition de
Lipschitz globale |F(t, y) F(t, z)| L|y z| pour tous y et z dans R
3
, mais elle
satisfait une condition de Lipschitz locale, cest dire pour y et z dans un domaine born
contenant Y
0
; cest toujours le cas lorsque F est continument drivable par rapport Y ,
et ici, la matrice jacobienne de F (relativement y) scrit :
J
Y
=
_

_
F
1
y
1
. . .
F
1
y
3
. . . . . .
F
3
y
1
. . .
F
3
y
3
_

_
=
_

_
1 2 y
1
y
2

q y
1

y
2


q +y
1

1 0 1
_

_
.
3.1.4 Approximation numrique des solutions
On cherche calculer des valeurs approches de la solution y(t) du problme (3.2).
Pour cela, on se donne une partition 0 = t
0
< t
1
< ... < t
N
= T et on cherche des y
i
aussi voisins que possible des y(t
i
).
Les pas de discrtisation sont les rels h
i
= t
i+1
t
i
. Lorsque lon naura pas expres-
sment besoin dun pas variable, on le supposera constant, et on le notera h =
T
N
.
Les mthodes dEuler
Construction des mthodes dEuler : En intgrant lquation (3.1) sur lintervalle [t
n
, t
n+1
],
on obtient :
y(t
n+1
) = y(t
n
) +
_
t
n+1
t
n
y

(s) ds = y(t
n
) +
_
t
n+1
t
n
f(s, y(s)) ds. (3.9)
On peut remplacer lintgrale par une formule approche, et si on choisit la formule
des rectangles gauche :
_
t
n+1
t
n
f(s, y(s)) ds hf(t
n
, y(t
n
)),
on obtient la formule dEuler explicite :
y
n+1
= y
n
+hf(t
n
, y
n
) ; 0 n N 1.
On peut choisir une formule des rectangles droite, et dans ce cas, cest la mthode
dEuler implicite que lon obtient :
y
n+1
= y
n
+hf(t
n+1
, y
n+1
) ; 0 n N 1.
53
Cette mthode est dite implicite car y
n+1
ne sobtient quaprs la rsolution dune
quation.
Ces deux mthodes sont dites un pas, car le calcul de y
n+1
se fait seulement en
fonction des valeurs ltape n, (y
n
, t
n
) et du pas h.
Exemple 14 La mthode dEuler explicite se construit aussi en considrant un dvelop-
pement de Taylor de la forme
y(t
n+1
) = y(t
n
) +hy

(t
n
) +O(h
2
) = y(t
n
) +hf(t
n
, y(t
n
)) +O(h
2
). (3.10)
On nglige le terme O(h
2
) et on remplace les valeurs xactes y(t
n
) par des valeurs
approches y
n
. On obtient de faon analogue la mthode implicite.
Une mise en uvre russie : Le problme
_
y

(t) = y(t), 0 t 1,
y(0) = 1,
(3.11)
admet comme unique solution y(t) = e
t
.
FIGURE 3.3 Les mthodes dEuler pour le problme (3.11)
La mthode dEuler explicite consiste calculer, pour n 0, y
n+1
= y
n
+hy
n
= (1 +
h) y
n
, de sorte partant de y
0
= 1, on obtient y
n+1
= (1 +h)
n+1
. Avec h =
1
N
, on retrouve
pour y
N
une valeur approche de y(1) = e puisque lim
N
y
N
= lim
N
(1 +
1
N
)
N
= e.
La mthode implicite fournit quant elle y
N
=
1
(1
1
N
)
N
qui converge galement
vers e lorsque N tend vers linni.
54
La gure 3.3 illustre cette convergence des deux mthodes ; on y constate que la m-
thode explicite calcule des valeurs lgrement infrieures aux y(t
i
), alors que la mthode
implicite calcule des valeurs suprieures.
En fait, ces comportements sexpliquent par un dveloppement limit :
_

_
y
N,e
= e
N ln(1+
1
N
)
= e
_
1
1
2 N
+O(
1
N
2
)
_
,
y
N,i
= e
N ln(1
1
N
)
= e
_
1 +
1
2 N
+O(
1
N
2
)
_
.
Cette estimation est conforte par les valeurs donnes dans le tableau suivant, o
e
N
dsigne lerreur absolue pour la valeur t = 1 de la variable et pour chacune des
mthodes.
Euler explicite Euler implicite
N
N

N
h

N

N
h
10 0.1245 1.2454 0.1497 1.4969
25 0.0524 1.3111 0.0564 1.4110
50 0.0267 1.3347 0.0277 1.3845
100 0.0135 1.3468 0.0137 1.3717
250 0.0054 1.3542 0.0055 1.3641
500 0.0027 1.3567 0.0027 1.3616
1000 0.0014 1.3579 0.0014 1.3604
Les valeurs du rapport
e
N
h
encadrent de mieux en mieux
e
2
1.3591.
Une mise en uvre dfaillante : Considrons le problme suivant :
_
y

(t) = 3 y(t) 3 t ; 0 t T,
y(0) =
1
3
,
(3.12)
dont la solution est y(t) = t +
1
3
et appliquons la mthode dEuler pour en chercher la
solution approche linstant T, pour diffrentes valeurs de T et diffrents choix du pas
h. Les rsultats obtenus peuvent surprendre. Le tableau suivant donne les erreurs dans
le calcul de y
N
:
h T = 5 T = 10 T = 20
1 1.8651 10
14
1.9403 10
11
2.0345 10
05
0.5 4.9560 10
13
4.7278 10
09
4.2999 10
01
0.1 5.2402 10
14
2.6318 10
08
6.5252 10
+03
0.05 1.5525 10
11
1.8232 10
05
2.5142 10
+07
55
On constate que lerreur semble crotre avec le pas, contrairement ce que lon es-
prait. Par ailleurs, pour T = 20, cette erreur atteint des valeurs astronomiques !
Pour chercher comprendre ce qui sest pass, nous calculons la solution gnrale
de lquation diffrentielle y

(t) = 3y(t) 3t. La solution de lquation homogne est


y(t) = Ke
3t
. La mthode de variation de la constante fournit pour notre quation
K

(t) = 3t e
3t
,
K(t) = (t +
1
3
) e
3t
+k,
y(t) = t +
1
3
+k e
3t
.
La constante k peut tre value laide de la valeur de y en 0, avec k = 0 si y(0) =
1
3
.
Mais si y(0) =
1
3
+, on obtient k = de sorte que la solution relle du problme devient
y

(t) =
1
3
+t + e
3t
.
Les valeurs de e
3T
sont respectivement :
- pour T = 5, e
3T
3.269 10
6
,
- pour T = 10, e
3T
1.068 10
13
,
- pour T = 20, e
3T
1.142 10
26
.
Avec une unit darrondi de lordre de 1.1102 10
16
, on retrouve lordre de grandeur des
erreurs constates ! Le problme (3.12) est typiquement un problme instable ; une petite
perturbation de la donne initiale entraine une grande perturbation de la solution.
3.1.5 Stabilit et comportement des solutions des problmes linaires
Lexemple (3.12) nous montre que le comportement des solutions du problme ho-
mogne associ une quation diffrentielle linaire peut avoir une grande importance
dans le calcul approch dune solution de cette quation. La solution gnrale de lqua-
tion linaire homogne du premier ordre y

= a y est y(t) = k e
a t
, la constante k tant
dtermine par la condition initiale. On constate que toute solution tendra vers linni avec
t si a > 0, vers 0 si a < 0 et restera constante si a = 0.
Plaons nous prsent dans le cas dun problme de Cauchy dni par une quation
du second ordre y

+y

+y = 0.
Cette quation scrit comme un systme du premier ordre,
Y

=
_
y
y

=
_
0 1
1
_ _
y
y

_
. (3.13)
Les valeurs propres
1,2
de la matrice
_
0 1
1
_
sont les racines du polynme
caractristique de lquation du second ordre, r
1,2
=

2
4
2
. Les deux compo-
santes de la solution auront le comportement reprsent sur la gure 3.4.
La forme des solutions valeurs relles de cette quation va dpendre de ,
56
- si
2
< 4, les racines sont complexes et y(t) = e

t
2
(a cos t + b sin t) ; le sys-
tme a une composante priodique qui sera amortie si est positif (cas stable) et
amplie jusqu lexplosion sinon ;
- si
2
> 4, les racines sont relles et le systme na plus de comportement prio-
dique. Sa solution est de la forme y(t) = e

t
2
(a e
t
+b e
t
), avec [[ <

, et le
systme reviendra ou non son tat dquilibre selon que sera ngatif ou positif.
En prsence dun second membre, ces comportements ne se retrouvent pas nces-
sairement dans la solution exacte ; cela dpend en particulier des conditions initiales.
FIGURE 3.4 Comportement des solutions du systme (3.13)
Lorsque le systme diffrentiel est de dimension suprieure 2, de la forme Y

(t) =
AY (t), le comportement des diffrentes composantes de la solution dpend encore des
valeurs propres de la matrice A. Lorsque cette matrice est diagonalisable, cest--dire
lorsquil existe une matrice P inversible telle que P
1
AP = soit une matrice diagonale,
dont les lments diagonaux sont les valeurs propres de A, on obtient
P
1
Y

(t) = P
1
AP P
1
Y (t) = P
1
Y (t),
de sorte que si X(t) = P
1
Y (t) reprsente la fonction Y (t) dans la base des colonnes
de P, ses composantes x
i
(t) seront de la forme x
i
(t) = k
i
e

i
t
. La encore, il apparait
quune petite perturbation de ce problme, par exemple de ses conditions initiales, pourra
produire une grosse perturbation des solutions si une des valeurs propres de la matrice
dnissant le systme est de partie relle positive.
Dnition 7 On dira quune quation ou un systme diffrentiel linaire est stable si
toutes les valeurs propres de la matrice qui le dnit sont partie relle ngative ou
nulle.
Dans le cas non linaire, ce comportement pourra varier au cours du temps. En fait,
pour les solutions dun systme Y

(t) = F(t, Y (t)), cest la matrice jacobienne de F


relativement Y qui dtermine localement ce comportement. On ne dispose donc gn-
ralement pas de cette information.
57
Exemple 15 Le comportement des solutions de (3.13) est dtermin par la valeur de
comme on la expliqu. Le cas o 0 < < 2 correspond un systme oscillant
avec amortissement de type visqueux (proportionnel la vitesse). Le cas dun systme
oscillant non amorti, pour lequel on aurait = 0 nest pas trs raliste physiquement. Si
maintenant on remplace cette constante par une fonction de y, qui serait ngative pour
y petit et positive pour y grand, on fera vivre durablement la solution, sans explosion ni
amortissement : en choisissant par exemple (y) = (1 y
2
), avec > 0, on obtient
lquation
y

(1 y
2
) y

+y = 0 (3.14)
Cette quation est connue sous le nom dquation de Van der Pol. Ses solutions ne
peuvent pas sexprimer laide de fonctions usuelles. La gure 3.5 montre la solution
obtenue pour = 20 avec comme conditions initiales y(0) = 2 et y

(0) = 0.
FIGURE 3.5 Un exemple de solution de (3.14).
Lquation (3.14) est quivalente au systme Y

=
_
y
1
y
2
_

=
_
y
2
(1 y
2
1
) y
2
y
1
_
.
Les oscillations obtenues sont remarquablement stables, au point que ce modle doscil-
lateur a t utilis pour la ralisation de stimulateurs cardiaques.
Exemple 16 Un autre exempe doscillateur est fournit par Le modle de Lotka-Volterra.
Il sagit dun modle de systme biologique deux espces, une herbivore et une carni-
vore, qui peut se reprsenter comme une raction chimique :
H + Y
1
k
1

2 Y
1
Y
1
+ Y
2
k
2

2 Y
2
Y
2
k
3

M
=
_

_
d Y
1
dt
= k
1
[H] Y
1
k
2
Y
1
Y
2
,
d Y
2
dt
= k
2
Y
1
Y
2
k
3
Y
2
.
On peut expliciter ce modle :
- Y
1
dsigne la population herbivore, par exemple des livres qui disposent dherbe
pour se nourrir ; La quantit [H] dherbe leur disposition est constante. La constante
de vitesse de leur reproduction est k
1
58
Y
2
dsigne la population carnivore, par exemple des renards, qui se reproduisent
avec une constante de vitesse k
2
en prsence de livres, ou disparaissent avec
une constante de vitesse k
3
en absence de livres.
Si les constantes sont choisies de faon quaucune des deux espce ne disparaisse,
on obtient encore un systme oscillant.
FIGURE 3.6 Le modle prdateur-proie de Lokta-Volterra.
3.1.6 Les mthodes explicites de type Runge-Kutta
Forme gnrale des mthodes explicites un pas
Nous restons dans le cadre gnral du problme (3.2) en supposant que les hypo-
thses du thorme 6 sont vries. On parle de mthode un pas lorsque le calcul de la
valeur approche y
n+1
de y(t
n+1
) ne fait intervenir que y
n
, t
n
et le pas h
n
. Par opposition,
les mthodes multipas utilisent aussi des valeurs calcules aux tapes prcdentes.
Dans le cas dun pas constant h =
T
N
, la forme gnrale des schmas un pas est
donc la suivante :
_
y
0
= ,
y
n+1
= y
n
+h(t
n
, y
n
, y
n+1
, h), 0 n N 1.
(3.15)
Cest la fonction qui caractrise le schma. Pour les mthodes explicites, elle ne
dpend pas de y
n+1
; on la note (t, y, h). Pour la mthode dEuler explicite, (t, y, h) =
f(t, y).
Exemple 17 On peut penser utiliser la formule des trapzes pour approcher lintgrale
gurant dans (3.9). On obtient alors un schma implicite dni par :
y
n+1
= y
n
+
h
2
(f(t
n
, y
n
) +f(t
n+1
, y
n+1
)) . (3.16)
59
Cest la mthode implicite du trapze, ou mthode de Crank-Nicholson. Si lon sou-
haite viter le caractre implicite de ce schma, on remplace f(t
n+1
, y
n+1
) par lestima-
tion quen donne le schma dEuler. On obtient la mthode du trapze explicite :
y
n+1
= y
n
+
h
2
(f(t
n
, y
n
) +f(t
n+1
, y
n
+hf(t
n
, y
n
))) . (3.17)
Pour cet exemple, on peut expliciter (t, y, h) =
1
2
(f(t, y) +f(t +h, y +hf(t, y))).
Les mthodes de type Runge-Kutta
Le schma explicite (3.17) possde une criture trs compacte, et on peut lallger
en introduisant une notation algorithmique :
_

_
k
1
= f(t
n
, y
n
),
k
2
= f(t
n
+h, y
n
+hk
1
),
(t
n
, y
n
, h) =
1
2
(k
1
+k
2
),
y
n+1
= y
n
+h(t
n
, y
n
, h).
(3.18)
Exemple 18 On peut proposer une autre mthode un pas sous une forme du mme
type :
_

_
k
1
= f(t
n
, y
n
),
k
2
= f(t
n
+
h
2
, y
n
+
h
2
k
1
),
(t
n
, y
n
, h) = k
2
,
y
n+1
= y
n
+h(t
n
, y
n
, h).
(3.19)
Cette mthode est connue sous le nom de mthode dEuler modie ou mthode du
point milieu. La fonction qui le dnit est (t, y, h) = f(t +
h
2
, y +
h
2
f(t, y)) Le calcul de
y
n+1
en fonction de y
n
scrit donc galement
y
n+1
= y
n
+hf(t
n
+
h
2
, y
n
+
h
2
f(t
n
, y
n
)).
Ce type de construction peut tre gnralis de la faon suivante. On dnit un
schma de Runge-Kutta q tages en se donnant :
- une partition 0 c
1
. . . c
q
1 de [0, 1],
- pour chaque c
i
, une formule dintgration approche sur [0, c
i
] :
_
c
i
0
g(s) ds
i

j=1
a
i,j
g(c
j
), (3.20)
- une formule dintgration approche sur [0, 1] :
_
1
0
g(s) ds
q

j=1
b
j
g(c
j
). (3.21)
60
Pour crire le schma, on va utiliser les formules (3.21) pour valuer lintgrale de
lexpression (3.9), avec le changement de variable qui envoie lintervalle [t
n
, t
n+1
] sur
[0, 1] :
_
t
n+1
t
n
y

(s) ds = h
_
1
0
y

(t
n
+s h) ds h
q

i=1
b
i
y

(t
n
+c
i
h).
Mais pour chaque i, les y

(t
n
+ c
i
h) = f(t
n
+ c
i
h, y(t
n
+ c
i
h)) sont inconnus, et on
utilise les formules (3.20) pour fournir des approximations intermdiaires
y(t
n
+c
i
h) y
n,i
= y
n
+h
q

j=1
a
i,j
f(t
n
+c
j
h, y
n,j
), 1 i q.
On gnralise la notation (3.18) en introduisant les variables k
i
f(t
n
+c
i
h, y
n,i
). Le
schma scrit alors :
_

_
k
i
= f(t
n
+c
i
h, y
n
+h
q

j=1
a
i,j
k
j
), 1 i q,
y
n+1
= y
n
+h
q

j=1
b
j
k
j
.
(3.22)
On ne va sintresser de faon gnrale quaux schmas explicites, et on imposera
c
1
= 0. Dans ce cas, pour chaque i, les a
i,j
sont nuls si j i : la matrice A = (a
i,j
)
1i, jq
est alors strictement triangulaire infrieure. Les k
i
sont des approximations de f(t, y) aux
instants intermdiaires t
n
+ c
i
h, 1 i q. On impose en outre une condition qui rend
consistantes ces approximations :
c
i
=
q

j=1
a
i,j
, 1 i q. (3.23)
Pour une prsentation synthtique de la mthode, on utilise gnralement le dia-
gramme suivant
0
c
2
a
21
c
3
a
31
a
32
.
.
.
.
.
.
.
.
.
.
.
.
c
i
a
i1
a
i2
. . . a
ii1
.
.
.
.
.
.
.
.
. . . .
.
.
.
.
.
.
c
q
a
q1
a
q2
. . . a
qi1
. . . a
qq1
b
1
b
2
. . . b
i1
. . . b
q1
b
q
(3.24)
On retrouve par exemple les mthodes (3.19) et (3.18) travers leurs diagrammes
respectifs :
0
1/2 1/2
0 1
0
1 1
1/2 1/2
Exemple 19 : La mthode classique de Runge-Kutta Cest la mthode habituelle-
ment dsigne par le nom de mthode de Runge-Kutta. Cest une mthode excellente
61
pour la plupart des problmes de Cauchy, en tous cas souvent la premire essayer.
Elle est 4 tages, dnie par la fonction (t, y, h) =
1
6
(k
1
+ 2k
2
+ 2k
3
+k
4
) avec :
k
1
= f(t, y),
k
2
= f(t +
h
2
, y +
h
2
k
1
),
k
3
= f(t +
h
2
, y +
h
2
k
2
),
k
4
= f(t +h, y +hk
3
)).
Explicitez la prsentation synthtique de cette mthode sous la forme (3.24).
3.1.7 Erreurs locales de discrtisation
Une mthode de la forme (3.15) sera satisfaisante si les valeurs y
n
quelle permet de
calculer se rapprochent des valeurs y(t
n
) de la solution de (3.2) aux instants t
n
, au moins
pour un pas h sufsament petit.
Pour caractriser cette ventuelle convergence, on introduit les erreurs locales
e
n
= [y(t
n
) y
n
[, (3.25)
qui sont domines par lerreur globale
E
N
= max
0nN
e
n
. (3.26)
Comme la solution y(t) est inconnue, ces erreurs e
n
ne seront pas accessibles. Nous
allons chercher valuer la contribution de chaque tape du calcul lerreur globale,
et rchir sa propagation. Plaons nous ltape n du calcul. Les calculs prcdents
nous ont fourni une valeur y
n
, laquelle est associe une erreur locale e
n
, et nous devons
calculer y
n+1
laquelle correspondra lerreur e
n+1
. Cette erreur e
n+1
sera donc la somme
dune contribution
n+1
de ltape courante et des contributions prcdentes.
Pour essayer de caractriser la contribution
n+1
de ltape courante, on considre le
problme
_
z

n
(t) = f(t, z
n
(t)) ; t
n
t T,
z
n
(t
n
) = y
n
.
(3.27)
On peut alors dnir lerreur locale de discrtisation,

n+1
= z
n
(t
n+1
) y
n+1
(3.28)
Les z
n
(t) sont des solutions de la mme quation diffrentielle que y(t), chacune
dentre elles tant celle qui passe par y
n
linstant t
n
. On obtient alors

n+1
=
_
z
n
(t
n+1
) z
n
(t
n
) h(t
n
, z
n
(t
n
), h),
z
n
(t
n+1
) y
n
h(t
n
, y
n
, h).
(3.29)
62
Exemple 20 Montrez que dans le cas de lquation diffrentielle y

(t) = a y(t), les z


n
(t)
sont de la forme
z
n
(t) = y
n
e
a (tt
n
)
. (3.30)
La contribution
n+1
ajoute lerreur par ltape n pourra tre amplie ou rduite
dans les calculs ultrieurs selon que le problme aura tendance amplier ou attnuer
les perturbations. Cette tendance pourra varier dans le cas de problmes non linaires.
Pour les quations linaires, cette tendance ne varie pas et caractrise la stabilit au
sens de la dnition 7 du problme. Considrons par exemple :
_
y

(t) = y t
2
+
7 t 3
2
; 0 t 1.6,
y(0) = 0.
La solution de ce problme est y(t) = t
2

3 t
2
.
La gure 3.7 montre 4 tapes de la mthode dEuler explicite applique ce pro-
blme, avec un pas h = 0.4. Les valeurs y
n
, 1 n 4 sont pointes par les ches
qui illustrent la trajectoire de la mthode. Cette gure fait galement apparaitre les trajec-
toires des diffrentes solutions exactes z
n
(t), 0 n 3 aux problmes (3.27), avec bien
sur z
0
(t) = y(t).
FIGURE 3.7 Les z
n
transportent les erreurs locales de discrtisation
Les erreurs locales (3.28) ne sont pas simplement additionnes pour contribuer ler-
reur globale : elles sont transportes par les solutions z
n
pour fournir des contributions

n
lerreur nale e
4
qui vrie :
e
4
=
4

n=1

n
.
Sur notre exemple, ce transport a plutt enrichi les erreurs locales.
63
Exemple 21 On applique la mthode dEuler explicite au problme (3.11). Montrez que
les erreurs locales de discrtisation vrient

n+1
y
n
h
2
2
.
Montrez que si lon applique la mthode du trapze (3.17), cette erreur vrie

n+1
y
n
h
3
6
.
3.1.8 Consistance dun schma
Dnition
Suivant la dnition (3.29), lerreur locale de discrtisation
n+1
est une erreur locale
de consistance : elle mesure avec quelle prcision le schma approche localement une
solution de lquation diffrentielle. Lexemple 21 montre que son comportement dpend
du schma.
Dnition 8 On dit que le schma (3.15) est consistant lordre p sil existe une constante
K > 0 telle que
[
n
[ K h
p+1
. (3.31)
Cette condition garantit que pour une mthode un pas consistante ( lordre 1), on
aura
lim
h0
N

n=1
[
n
[ = 0.
En effet, cette somme fait intervenir N =
T
h
termes, de sorte que
N

n=1
[
n
[ K T h.
Lordre dune mthode nest ralis que si le problme que lon veut rsoudre le per-
met. Lexemple 24 montre quun dfaut de rgularit du problme interdit de raliser la
prcision espre. Le thorme suivant donne une condition simple pour assurer quune
mthode est consistante.
Thorme 9 La mthode (3.15) est consistante si et seulement si, pour tout t [0, T] et
tout y R :
(t, y, 0) = f(t, y).
Exemple 22 On suppose que f et sont sufsament rgulires pour autoriser un dve-
loppement lordre 2 de z
n
(t
n+1
). Montrez que, pour un [t
n
, t
n+1
],

n+1
= h (f(t
n
, y
n
) (t
n
, y
n
, h)) +
h
2
2
z

n
().
Utiliser un dveloppement lordre 1 en h de (t
n
, y
n
, h) pour dmontrer le thorme
9.
64
Cas des mthodes de type Runge-Kutta
Ltude des schmas de Runge-Kutta est facilite par leur prsentation matricielle. On
note A la matrice des paramtres a
i, j
de la mthode introduite dans la dtion (3.22). On
dnit le vecteur b = [b
1
, . . . , b
q
]
T
, la matrice C M
q
(R), diagonale, dont les lments
diagonaux sont les c
i
et le vecteur 1 R
q
tel que 1 = [1, . . . , 1]
T
. La condition (3.23)
scrit alors A1 = C 1. Ces lments permettent dnoncer le thorme suivant :
Thorme 10 La mthode de Runge-Kutta caractrise par les lments A, b, C et 1
dnis ci-dessus est :
- consistante si et seulement si b
T
1 = 1,
- dordre 2 si en outre b
T
C 1 = b
T
A1 = 1/2,
- dordre 3 si en outre
_
b
T
C
2
1 = 1/3,
b
T
AC 1 = 1/6, (= b
T
A
2
1),
- dordre 4 si en outre
_

_
b
T
C
3
1 = 1/4,
b
T
AC
2
1 = 1/12,
b
T
A
2
C 1 = 1/24, (= b
T
A
3
1),
b
T
C AC 1 = 1/8.
Exemple 23 La mthode classique de lExemple 19 est dordre 4. On la dsignera d-
sormais sous le nom de mthode RK4.
Exemple 24 Calculer la solution du problme
_
y

= 1 +[y 1[ , t > 0,
y(0) = 0.
On calcule la solution approche aux points T = 1/2 et T = 2 avec diffrents pas
h, en utilisant la mthode RK4. On note e
N
lerreur aux points T. Le tableau ci-dessous
fournit dans chaque cas les valeurs des rapports
e
N
h
4
. Commentez les.
T h = 1/8 h = 1/16 h = 1/32 h = 1/64
1/2 5.61 10
3
5.32 10
3
5.18 10
3
5.12 10
3
2 7.70 38.83 54.93 343.74
Stabilit du problme
Le transport des erreurs locales de discrtisation par les solutions z
n
(t) ne les enrichit
pas ncessairement, et cela ne dpend pas de la solution y(t).
Exemple 25 Montrez que la fonction y(t) = t
2

3 t
2
est galement solution des pro-
blmes :
65
_
y

(t) =
4
3
(y t
2
) + 4t
3
2
;
y(0) = 0.
_
y

(t) =
4
3
(t
2
y)
3
2
;
y(0) = 0.
En appliquant nouveau la mthode dEuler implicite avec un pas h = 0.4 ces deux
problmes, on obtient les rsultats reprsents par la gure 3.8. On constate que dans
un cas les erreurs locales de discrtisation sont clairement amplies, et dans lautre
clairement attnues.
FIGURE 3.8 Les erreurs locales de discrtisation peuvent tre amplies ou attnues
Ces deux problmes sont dnis par des quations diffrentielles linaires. La dri-
ve partielle
y
f est constante, et cest elle qui permet de savoir si les erreurs locales
seront amplies ou attnues. Dans le cas stable, elle est gale
4
3
, et dans le cas
instable +
4
3
.
Dans le cas gnral, ce comportement va varier au cours du calcul. On peut montrer
qui si
y
f(t, y) < 0, alors on aura [
n
[ [
n
[ pour tout n.
Exemple 26 En utilisant (3.30), montrez que pour lquation diffrentielle y

(t) = a y(t),
on a

n+1
=
n+1
e
a (Tt
n+1
)
. (3.32)
3.1.9 Notion de A-stabilit
Lexpression (3.32) montre que pour un problme linaire stable, les erreurs locales
de discrtisation seront transportes de faon favorables. Comme leurs contributions
sur des temps longs seront crases, on peut esprer dans ce cas mener des calculs en
temps long avec des pas de temps pas trop petits.
Considrons par exemple le problme
_
y

(t) = a (y(t) sin(t)) + cos(t), 0 < t < 2 ,


y(0) = 1.
(3.33)
66
La solution gnrale de lquation diffrentielle qui le dnit est donne en fonction du
paramtre a par y(t) = c exp(a t) + sin(t). Si le paramtre a est positif, et par exemple
pour a = 10, cest un problme stable. La condition initiale permet de calculer la constante
c = y(0) = 1.
Exemple 27 Les solutions z
n
(t) de (3.27) dans le cas du problme (3.33) sont donnes
par
z
n
(t) = (y
n
sin(t
n
)) e
a(t
n
t)
+ sin(t).
Les erreurs locales de discrtisation pour la mthode dEuler explicite vrient donc

n+1

a
2
h
2
2
(y
n
sin(t
n
))
h
2
2
sin(t
n
). (3.34)
On se place dans le cas o a = 10. Compte-tenu de (3.34) et (3.32), on peut tenter
des calculs avec un pas raisonnable, au moins pour les temps un peu longs. Ainsi, pour
un pas h = 0.01, de sorte que a h = 0.1 , lerreur globale E
N
est denviron 0.0211, ralise
en debut de calcul ; lerreur au point T = 2 est denviron 0.0005 ! La gure 3.9 montre la
solution calcule avec ce pas, ainsi quavec trois autres pas, et fait apparaitre galement
la solution exacte.
FIGURE 3.9 Apparition dinstabilits pour certaines valeurs du pas.
Pour le pas h = 0.19, la solution calcule commence par osciller autour des valeurs
de la solution exacte avant de se stabiliser.
Pour le pas h = 0.20, la solution oscille autour de la solution exacte sans se stabiliser,
et nalement, pour le pas h = 0.21, les oscillations initiales sont constament amplies
au cours du calcul ! La valeur 0.20 semble bien tre un seuil de stabilit pour ce calcul.
67
On va donc essayer de comprendre ce qui se passe en sintressant au calcul dune
solution de lquation homogne associe au problme (3.33) :
y

(t) = 10 y(t). (3.35)


Sa solution gnrale est y(t) = y(0) e
10t
et tend vers 0 lorsque t tend vers linni. Il
faut que le schma quon utilise pour calculer la solution de (3.33) respecte ce compor-
tement.
Aprs avoir choisi y
0
= y(0), le schma dEuler calcule
y
1
= y
0
10 hy
0
= (1 10 h) y
0
.
et au-del, pour tout n, y
n
= (1 10 h)
n
y
0
.
y
n
ne tendra vers 0 lorsque n tend vers linni qu la condition que [1 10 h[ < 1,
et comme le pas h est positif, il devra vrier 10 h < 2, dou h <
2
10
= 0.2. Cette valeur
constitue le seuil de stabilit de la mthode dEuler explicite pour le problme (3.35), et
par suite pour le problme (3.33). Cette notion est gnralise par le thorme suivant.
Thorme 11 Lorsquon applique une mthode un pas lquation diffrentielle y

(t) =
a y(t), en utilisant le pas h, cette mthode calcule des approximations y
n
de y(tn) sous
la forme
y
n
= R(a h)
n
y
0
, n > 0. (3.36)
La fonction R(x) sappelle fonction de stabilit de la mthode.
La mthode est inconditionellement stable si [R(x)[ < 1 pour tout x > 0. Sinon, on
appelle rayon de stabilit de cette mthode le nombre r > 0 tel que 0 < x < r entraine
[R(x)[ < 1.
Le seuil de stabilit de la mthode pour un problme donn sera donc s =
r
a
. Toute
mthode un pas dordre p sera telle que R(x) =
p

k=0
(1)
k
x
k
k!
+O(x
p+1
).
Exemple 28 La fonction de stabilit des mthodes (3.18) et (3.19) est R(x) = 1x+
x
2
2
.
Le rayon de stabilit est r = 2.
Exemple 29 Pour la mthode dEuler implicite, la fonction R(x) est donne par
R(x) =
1
1 +x
.
Cette fonction est telle que [R(x)[ < 1 pour tout x > 0. Il ny a donc pas de restriction
la stabilit de cette mthode : elle est inconditionnellement stable.
68
Remarque 30 Pour des systmes diffrentiels, le rel a est remplac par une matrice
A M
n
(R) symtrique dnie positive. La solution du problme y

= Ay est donne
par y(t) = exp(t A) y(0), o lexponentielle est une exponentielle de matrice.
Lexponentielle de matrice est dnie, par analogie avec la fonction exponentielle, par
la relation
exp(t A) =

k=0
(t)
k
(k!)
A
k
.
Lorsque la matrice A est diagonalisable, selon A = P P
1
, dsignant une matrice
diagonale dont les lments diagonaux sont les valeurs propres
i
de A, et P une matrice
dont les colonnes forment une base de vecteurs propres, on obtient :
exp(t A) = P
_

_
exp(
1
t)
exp(
2
t) 0
...
0 exp(
n
t)
_

_
P
1
.
Si A est symtrique dnie positive, elle est diagonalisable, et ses valeurs propres
sont strictement positives : y(t) tend donc vers 0 lorsque t tend vers linni. Le seuil de
stabilit est alors s =
r

M
(A)
, o
M
(A) dsigne la plus grande valeur propre de A.
3.2 Pour en savoir plus...
3.2.1 Convergence des mthodes un pas
Au-del de lobservation empirique de la convergence de certains schmas vers la
solution du problme diffrentiel quon cherche approcher, il nest pas inutile dtablir
formellement cette proprit.
Dnition 12 On dit que la mthode (3.15) est convergente lordre p sil existe une
constante C > 0 telle que
E
N
C h
p
. (3.37)
La consistance lordre p ne suft pas garantir cette convergence. Il faut ajouter
une condition de stabilit. A priori, cest la mthode qui doit tre stable, et une mthode
un pas consistante lordre p sera toujours stable si le problme satisfait les hypothse
du thorme 6.
Thorme 13 Si la fonction f vrie les hypothses du thorme 6, la mthode un pas
(3.15) vriant la condition de consistance lordre p (3.31) est convergente lordre p.
Lerreur globale E
N
satisfait lingalit
E
N

K
L
h
p
_
e
LT
1
_
.
69
On a remarqu que les erreurs
n
sont transportes par les solutions de (3.27). Nous
allons essayer de donner une majoration des contributions
n
lerreur nale e
N
.
A un instant t > t
n+1
,
n+1
scrit comme une fonction de t :

n+1
(t) = z
n
(t) z
n+1
(t),
[
n+1
(t)[ =

z
n
(t
n+1
) z
n+1
(t
n+1
) +
_
t
t
n+1
_
z

n
(s) z

n+1
(s)
_
ds

.
De la dnition (3.28) et de (3.27), on tire
[
n+1
(t)[ [
n+1
[ +
_
t
t
n+1
[f(s, z
n
(s)) f(s, z
n+1
(s))[ ds.
En supposant que f satisfait les hypothses du thoreme 6, on obtient
[
n+1
(t)[ [
n+1
[ +L
_
t
t
n+1
[z
n
(s) z
n+1
(s)[ ds. (3.38)
On pose alors v
n
(t) =
_
t
t
n+1
[z
n
(s) z
n+1
(s)[ ds. La fonction v
n
est telle que v
n
(t
n+1
) =
0, et vrie :
v

n
(t) = [
n+1
(t)[ [
n+1
[ +Lv
n
(t). (3.39)
(3.39) scrit galement v

n
(t) Lv
n
(t) [
n+1
[ qui fournit, en multipliant par e
Lt
:
_
v

n
(t) Lv
n
(t)
_
e
Lt
=
d
dt
_
v
n
(t) e
Lt
_
[
n+1
[ e
Lt
.
En intgrant de t
n+1
t, et comme v
n
(t
n+1
) = 0 :
v
n
(t) e
Lt

[
n+1
[
L
_
e
Lt
n+1
e
Lt
_
.
v
n
(t)
[
n+1
[
L
_
e
L(tt
n+1
)
1
_
.
Lingalit (3.38) fournit nalement :
[
n+1
(t)[ [
n+1
[ +L
[
n+1
[
L
_
e
L(tt
n+1
)
1
_
= [
n+1
[ e
L(tt
n+1
)
. (3.40)
La relation (3.40) va nous permettre de majorer lerreur e
N
=
N

n=1

n
(T) pour une
mthode dordre p, avec T = t
N
= N h. Dans ce cas, suivant (3.31),
[e
N
[ K h
p+1
N

n=1
e
L(Tt
n
)
= K h
p
e
LT
N

n=1
he
Lt
n
.
En remarquant que la somme de droite est la formule compose des rectangles droite
pour lintgrale
_
T
0
e
Ls
ds =
1 e
LT
L
, et que cette intgrale domine la somme, on
obtient
[e
N
[
K
L
h
p
_
e
LT
1
_
.
70
Remarque 31 Dans la dnition du schma, on suppose que y
0
est donn exactement.
On verra ci-dessous que dans le cas derreurs darrondi, la convergence nest plus ga-
rantie en cas derreur initiale..
3.2.2 Calculs en arithmtique nie
On va supposer que les calculs sont perturbs par des erreurs darrondi, ce qui va
introduire un terme supplmentaire aux erreurs locales de discrtisation. On aura pr-
sent
[
n+1
[ K h
p+1
+[
n+1
[.
On aura galement une erreur initiale
0
. Cette erreur correspond lcriture de la
condition initiale en arithmtique nie : cest par exemple lcart entre
1
3
et sa valeur ap-
proche par larithmtique de lordinateur pour lexemple (3.12). Cette erreur sera trans-
porte par la solution du problme perturb, pour fournir une contribution
0
=
0
e
LT
lerreur nale, selon le principe de la dmonstration prcdente ou de lanalyse de
lexemple (3.12).
En supposant que les erreurs darrondi des tapes 1 N sont majores en valeur
absolue par , on obtiendra alors une majoration de la forme
[e
N
[ [
0
[ e
LT
+ (K h
p
+

h
) e
LT
N

n=1
he
Lt
n+1
e
LT
_
[
0
[ +C h
p
+

h
_
. (3.41)
On remarque un terme en
1
h
qui tend vers linni lorsque h tend vers 0.
Exemple 32 On applique la mthode du point-milieu (3.19) au problme (3.11) On ra-
lise alors les calculs en utilisant MATLAB, cest--dire en arithmtique IEEE pour la-
quelle lunit darrondi est u 1.11 10
16
. On convient de choisir
0
= = u. La fonc-
tion qui donne la majoration empirique de lerreur rsultant de (3.41) est alors, avec ici
L = T = 1 :
e(h) = e
_
u +
e
6
h
2
+
u
h
_
.
La gure 3.10 reprsente les erreurs observes pour 200 valeurs du pas h rgulire-
ment rparties entre 10
7
et 2 10
5
: elle fait clairement apparaitre que le comportement
des erreurs observes est globalement bien reprsent par la courbe empirique.
On constate aussi que linuence des erreurs darrondi est ngligeable : il est inutile
de choisir un pas trop petit et les risques derreurs proviennent surtout de lventuelle
instabilit du problme.
71
FIGURE 3.10 Estimation et observation des erreurs darrondi
3.2.3 Problmes raides
Quest-ce quun problme raide ?
Reprenons lexemple (3.33). Sa solution est une combinaison linaire de deux fonc-
tions :
y
R
(t) = exp(a t) est la solution gnrale de lquation homogne ; lorsque le pa-
ramtre a devient grand, elle dcrit un phnomne rapide ; son effet sur la solution
a une dure de vie de lordre de
1
a
.
y
L
(t) = sin(t) qui dpend ici directement du second membre dcrit un phenomne
plus lent.
La gure 3.11 ilustre ce comportement ; on y constate que la contribution de la fonction
y
R
la solution devient vite ngligeable.
Cet exemple est typique des problmes de phase transitoire, lorsquune contribution
telle que y
R
nexiste que sur un temps trs petit. Pour ces temps petits, la formule (3.34)
montre que, si lon utilise une mthode dEuler, on devra imposer une contrainte de pr-
cison de la forme (a
2
+ 1) h
2
2 pour garantir localement une prcison de lordre de
, et on pourrait aussi le vrier pour la mthode implicite. Pour t >>
1
a
, cette contrainte
nest plus valide. Cest alors la contrainte de stabilit a h 2 qui va prendre le relai, sauf
si lon utilise une mthode implicite.
En fait, aucune mthode explicite ne peut tre A-stable, alors que les mthodes im-
plicites peuvent ltre. Cest ce qui les rend indispensables pour les problmes raides.
72
FIGURE 3.11 Le problme (3.33) est raide si a est grand.
Problmes raides en cintique chimique
Lexemple de Robertson : Un exemple, propos par Robertson en 1966 et souvent
repris dans la littrature des quations diffrentielles, est devenu un classique. Il dcrit
une raction chimique entre trois composants :
A
0.04

B (lente)
B +B
3.10
7

B +C (trs rapide)
B +C
10
4

A+C (rapide)
On constate que les temps caractristiques des trois ractions sont trs disparates :
on peut sattendre ce que ce problme soit raide; il lest !
On notera Y = [Y
1
, Y
2
, Y
3
]
T
, le vecteur des concentrations respectives [A], [B] et [C].
La raction est alors dcrite par le systme dquations diffrentielles (3.42) :
_
_
_
Y

1
(t) = 0.04Y
1
(t) +10
4
Y
2
(t) Y
3
(t)
Y

2
(t) = 0.04Y
1
(t) 10
4
Y
2
(t) Y
3
(t) 3 10
7
Y
2
2
(t)
Y

3
(t) = 3 10
7
Y
2
2
(t)
(3.42)
initialise par Y (0) = [1, 0, 0]
T
.
Comparaison des solveurs MATLAB : Nous allons proposer le calcul dune solution
approche sur lintervalle [0, 6] en utilisant ode45 ainsi quun solveur adapt aux pro-
blmes raides, le solveur ode15s (on aurait pu choisir ode23s). La liste des solveurs de
MATLAB sobtient en utilsant laide en ligne; les solveurs adapts aux problmes raides
sont ceux dont le nom se termine par la lettre s (pour stiff).
Pour utiliser un de ces solveurs, on commence par crer la fonction qui le dnit :
function yprime = FoncRobertson(t, y);
73
yprime = [-0.04
*
y(1)+1e4
*
y(2)
*
y(3);
0.04
*
y(1)-1e4
*
y(2)
*
y(3)-3e7
*
y(2)^2;
3e7
*
y(2)^2];
Dans un M-chier dinstructions, nous allons maintenant comparer nos deux solveurs.
Lappel le plus simple aux solveurs est de la forme
[t, y]=ode
***
(fontion, intervalle, yini);
On peut en outre xer un certain nombre doptions (prcision, ...) ; vous pouvez utiliser
laide en ligne pour les dcouvrir. Pour rcuprer des informations sur le droulement des
calculs qui ont permis dobtenir la solution, on utilise loption Stats. Nous reprsenterons
graphiquement les deux solutions calcules pour le composant B.
Le chier Robertson.m pourra scrire
intervalle = [0, 6];
yini = [1 ; 0 ; 0];
options = odeset(Stats,on);
[t1,y1]=ode45(@FoncRobertson, intervalle, yini,options);
[t2,y2]=ode15s(@FoncRobertson, intervalle, yini,options);
figure(1);
subplot(121), plot(t1, y1(:,2));
ax = axis ; ax(1) = ax(1) - 0.5 ; axis(ax);
title (ode45)
subplot(122), plot(t2, y2(:,2));
ax = axis ; ax(1) = ax(1) - 0.5 ; axis(ax);
title(ode15s)
Lexcution de cette fonction fournit la gure 3.12 qui reprsente la concentration du
composant B. La fonction subplot permet de reprsenter les deux courbes sur une
mme gure avec deux systmes daxes ; on a translat laxe des ordonnes de faon
faire apparaitre la variation initiale trs brutale de ce composant. Les oscillations ob-
serves dans le calcul par ode45 restent en dea des tolrances par dfaut, puisque
lordonne maximale est de lordre de 4.10
5
.
Les statistiques renvoyes sont les suivantes :
- pour ode45 :
4205 successful steps
874 failed attempts
30475 function evaluations
- pour ode15s :
36 successful steps
5 failed attempts
81 function evaluations
2 partial derivatives
14 LU decompositions
71 solutions of linear systems
Il est clair que le solveur ode15s est le mieux adapt ce problme ; les drives par-
tielles sont des matrices jabienne 3 3 calcules par diffrences nies ; les factorisations
et rsolutions de systmes linaires le sont pour des matrices 3 3.
74
FIGURE 3.12 Comparaison de deux solveurs de MATLAB sur un temps court.
Calcul et reprsentation sur un temps long : On sait maintenant quel solveur choisir
pour la simulation complte de cette raction. On va le faire sur lintervalle [0, 10
8
]. Pour
reprsenter la solution, et comme les trois concentrations ont des ordres de grandeurs
trs diffrents, on utilise la fonction subplot. La concentration [B] connait une phase
transitoire au dmarrage ; pour mieux observer son volution, on utilisera des reprsen-
tations en coordonnes semilogarithmiques, avec semilogx; on doit alors modier la
valeur initiale t
0
= 0 ! On peut complter le chier Robertson.m avec :
intervalle = [0, 1e8];
[t,y]=ode15s(@FoncRobertson, intervalle, yini);
t(1) = 0.5
*
t(2);
figure(2) ;
subplot(3,1,1),semilogx(t,y(:,1));title(Evolution de [A]);
subplot(3,1,2),semilogx(t,y(:,2));title(Evolution de [B]);
subplot(3,1,3),semilogx(t,y(:,3));title(Evolution de [C]);
Lexcution de ce programme fournit la gure 3.13
3.3 Pour en savoir encore plus !
3.3.1 Contrle du pas pour les mthodes explicites
La gure 3.12 montre les hsitations de la mthode ode45 sur un problme raide.
Ces hsitations sexpliquent par sa stratgie de contrle du pas.
75
FIGURE 3.13 Evolution des trois concentrations dans la raction de Robertson..
Estimation de lerreur
En gnral, les solutions peuvent varier lentement certains endroits, et plus rapide-
ment dautres. Un pas constant nest donc pas toujours adapt. Il est souhaitable de
pouvoir dcider chaque instant dun pas qui permet de respecter une tolrance xe
priori. Cest le comportement local de la solution qui permettra de dcider, et on va se
servir des erreurs locales de discrtisation (3.28).
Ces erreurs font a priori intervenir une solution exacte du problme, qui est inacces-
sible. Supposons cependant que lon dispose de deux mthodes, une dordre p
1
et lautre
dordre p
2
, avec p
1
> p
2
. Partant de la valeur y
n
calcule ltape n, elle fournissent sui-
vant (3.28) et (3.31)
y
(1)
n+1
= z
n
(t
n+1
) +
(1)
n+1
z
n
(t
n+1
) +C
1
h
p
1
+1
y
(2)
n+1
= z
n
(t
n+1
) +
(2)
n+1
z
n
(t
n+1
) +C
2
h
p
2
+1
On dduit [y
(2)
n+1
y
(1)
n+1
[ [C
2
h
p
2
+1
C
1
h
p
1
+1
[ [C
2
h
p
2
+1
[ au voisinage de h = 0.
On se xe une tolrance tol, et on souhaite que = [y
(2)
n+1
y
(1)
n+1
[ soit aussi voisin
que possible de cette tolrance, sans la dpasser. On choisira par exemple de calculer
un pas nouveau h
nouv
de faon que tol C
2
h
p
2
+1
nouv
.
On a donc
tol

=
C
2
h
p
2
+1
nouv
C
2
h
p
2
+1
, de sorte que
h
nouv
h
=
_
tol

_ 1
p
2
+1
.
76
On choisit alors, avec une petite marge de scurit, le nouveau pas :
h
nouv
= 0.9 h
_
tol

_ 1
p
2
+1
(3.43)
Le seul problme est que lon doit mettre en oeuvre 2 mthodes pour mener bien
ces calculs.
Mthodes emboites
Lide des mthodes de Runge-Kutta emboites est dutiliser les mmes calculs pour
les deux mthodes. Pour illustrer ce principe, observons les diagrammes la mthode
dEuler amliore et de la mthode de Runge-Kutta dordre 4 :
0
1/2 1/2
0 1
0
1/2 1/2
1/2 0 1/2
1 0 0 1
1/6 1/3 1/3 1/6
Ces deux diagrammes peuvent se rassembler en un seul :
0
1/2 1/2
1/2 0 1/2
1 0 0 1
y
(1)
1/6 1/3 1/3 1/6
y(2) 0 1 0 0
La mise en oeuvre de la mthode dordre p
1
= 4 conduit calculer, ltape n, pour
le pas courant h :
k
1
= f(t
n
, y),
k
2
= f(t
n
+
h
2
, y
n
+
h
2
k
1
),
k
3
= f(t
n
+
h
2
, y
n
+
h
2
k
2
),
k
4
= f(t
n
+h, y
n
+hk
3
)),
avant de poser y
(1)
n+1
= y
n
+
h
6
(k
1
+ 2k
2
+ 2k
3
+k
4
). Ces mmes calculs peuvent tre
utiliss pour calculer y
(2)
n+1
= y
n
+ hk
2
. Cette fois, la mthode est dordre p
2
= 2, et
suivant (3.43), le nouveau pas sera donn par :
h
nouv
= 0.9 h
_
tol

_1
3
Remarque 33 En fait, on travaille plutt avec des erreurs relatives,
=
[y
(2)
n+1
y
(1)
n+1
[
max[y
(2)
n+1
[, [y
(1)
n+1
[
.
77
A ltape n, on commence par comparer tol, et le calcul nest conserv que lorsque
< tol. La valeur choisie pour la suite sera y
n+1
= y
(1)
n+1
.
La paire de Bogacki et Shampine
Les fonctions ode23 et ode45 de MATLAB embotent respectivement des mthodes
dordres (2, 3) et (4, 5). ode45 est 7 tages, connue dans la littrature sous le nom de
mthode de Dormand-Prince dordres (4, 5).
ode23 est caractrise par le diagramme suivant :
0
1/2 1/2
3/4 0 3/4
1 2/9 1/3 4/9
y
(1)
2/9 1/3 4/9 0
y(2) 7/24 6/24 8/24 3/24
Elle est connue sous le nom de mthode de Bogacki et Shampine. On vriera en
exercice quelle est bien dordres (2, 3). Cest la mthode 1 qui est dordre 3, de sorte que
lon ne calcule pas y
(2)
n+1
.
Avec y
(1)
n+1
= y
n
+
h
9
(2 k
1
+ 3 k
2
+ 4 k
3
), on doit calculer k
4
= f(t
n+1
, y
(1)
n+1
) pour esti-
mer
y
(2)
n+1
= y
n
+
h
24
(7 k
1
+ 6 k
2
+ 8 k
3
+ 3k
4
) ,
puis faire la diffrence = y
(1)
n+1
y
(2)
n+1
. On prfre calculer directement
=
h
72
(5 k
1
+ 6 k
2
+ 8 k
3
9 k
4
) .
3.3.2 Mthodes implicites
Les mthodes implicites ncessitent chaque pas la rsolution dune quation (ou
dun systme) non linaire. Cette quation est dnie par :
y
n+1
= y
n
+h(t
n+1
, y
n+1
, h). (3.44)
Stratgie de prdiction-correction (PECE)
On considre la mthode dEuler implicite. Il faut rsoudre lquation x = y
n
+hf(t
n+1
, x),
o x dsigne linconnue y
n+1
.
78
On peut imaginer une mthode de point xe dnie par la fonction g(x) = y
n
+
hf(t
n+1
, x). Si f satisfait les hypothses du thorme 6, on aura
[g(y) g(z)[ = [hf(t
n+1
, y) hf(t
n+1
, z)[ hL[y z[.
Choisissons alors x
(0)
, si possible voisin de la solution, et calculons
x
(1)
= y
n
+hf(t
n+1
, x
(0)
) = g(x
(0)
) (3.45)
Comme g(x) = x, on aura
[x
(1)
x[ hL[x
(0)
x[. (3.46)
Il faudra choisir un pas h tel que h <
1
L
pour que la fonction g soit une application
contractante et donc que x
(1)
soit meilleur que x
(0)
. Cette contrainte impose des condi-
tions pour la convergence qui sont du mme ordre que les containtes de stabilit de la
mthode explicite !
On prfre travailler uniquement avec x
(0)
et x
(1)
en mettant en place une stratgie
de contrle du pas. La premire tape est un bon choix de x
(0)
: on le calcule en utilisant
la mthode dEuler explicite, et on calcule x
(1)
suivant (3.45). Cette stratgie est connue
sous le nom de stratgie de prdiction-correction.
En supposant y
n
calcul, et en notant f
n
= f(t
n
, y
n
), le calcul de y
n+1
se fait selon :
Prdiction y
(P)
n+1
= y
n
+hf
n
Evaluation f
(P)
n+1
= f(t
n+1
, y
(P)
n+1
)
Correction y
(C)
n+1
= y
n
+hf
(P)
n+1
Evaluation f
n+1
= f(t
n+1
, y
(C)
n+1
)
Remarque 34 Cette stratgie est galement utilise dans le cadre de mthodes multi-
pas. Les plus utilises sont les mthodes d Adams :
- les mthodes dAdams-Basforth sont explicites,
- les mthodes dAdams-Moulton sont implictes.
On peut donc les associer dans une stratgie PECE avec un contrle du pas. La
fonction ode113 de MATLAB implante cette mthode, pour des ordres pouvant varier de
1 13.
Contrle du pas des mthodes PECE
Pour dcider de garder x
(1)
, il faut sassurer que la majoration (3.46) est acceptable.
On le fait de faon empirique en valuant lcart
= [y
(P)
n+1
y
(C)
n+1
[
79
Pour tirer prot de cette valuation, il faut un peu plus dinformations sur lerreur locale
de discrtisation
n
(3.28). Pour les mthodes dEuler, on a
- dans le cas explicite, z
n
(t
n+1
) = y
n
+hf(t
n
, y
n
)) +
h
2
2
z

n
(t
n,1
),
- dans le cas implicite, z
n
(t
n+1
) = y
n
+hf(t
n
, z
n
(t
n+1
))
h
2
2
z

n
(t
n,2
).
t
n,1
et t
n,2
sont tous deux dans lintervalle [t
n
, t
n+1
]. On peut donc esprer que
z
n
(t
n+1
)) y
(P)
n+1
+
h
2
2
y

(t
n,1
),
z
n
(t
n+1
)) y
(C)
n+1

h
2
2
y

(t
n,2
).
Par soustraction, on obtient Kh
2
, de sorte que
[y
(C)
n+1
z
n
(t
n+1
)[

2
.
Pour une tolrance tol choisie, si

2
< tol, on accepte la valeur y
n+1
=
1
2
(y
(P)
n+1
+y
(C)
n+1
).
Dans tous les cas, on choisit alors un nouveau pas h
nouv
selon, par exemple,
h
nouv
= 0.9 h
_
2 tol

.
80
Deuxime partie
Sujets de Travaux Pratiques
81
Sujet du TP 1
Estimation de paramtres par la
mthode des moindres carrs
1.1 Objectif du TP
Ce TP porte sur la dtermination, partir de rsultats exprimentaux, des para-
mtres permettant de calculer la vitesse dune raction enzymatique obissant la loi
de Michaelis-Menten.
De manire gnrale, une raction enzymatique peut tre modlise de la faon sui-
vante :
E +S
k
1

1
ES
k
2
E +P, (1.1)
o E dsigne lenzyme, S le substrat avec lequel ragit lenzyme, ES le complexe enzyme
+ substrat, et P le produit de la raction. Dans ce processus, on note que lenzyme joue
uniquement le rle dun catalyseur pour la raction globale :
E +S E +P, (1.2)
En toute rigueur, il faudrait galement tenir compte de la raction inverse, E+P ES.
Cependant, au moins en dbut de raction, la concentration en produit(s) P est sufsam-
ment faible pour que lon puisse ngliger la vitesse de cette raction devant celle de la
raction directe.
Pour les applications (dimensionnement dun racteur, par exemple), il est utile de
disposer dune relation permettant de calculer la vitesse de la raction globale (1.2) en
fonction de la concentration totale en enzyme[E]
t
et de la concentration en substrat [S].
On dnit la vitesse de la raction (1.2) par :
V =
d[P]
dt
. (1.3)
83
Pour obtenir une expression simple de V en fonction de [S] et [E]
t
, il est ncessaire
de faire les hypothses suivantes :
(i) [S] [E]
t
, si bien que la formation du complexe ES na pas deffet sur la concen-
tration du substrat [S] ;
(ii) la vitesse de la raction E + S ES est inniment rapide devant celle de la r-
action ES E +P, de sorte que lon peut considrer que la premire raction est
constamment lquilibre chimique;
(iii) la vitesse de la raction inverse E + P ES est ngligeable devant celle de la
raction directe.
A partir de lhypothse (ii) et de la loi daction de masse, on obtient :
[E][S]
[ES]
= K
M
, (1.4)
o K
M
est une constante, fonction de la temprature et du pH de la solution, mais
indpendante des concentrations [E], [S], et [ES]. K
M
est appele constante de Michae-
lis.
Dautre part, daprs (iii) et par dnition de la constante de vitesse k
2
(fonction de la
temprature et du pH), on a :
d[P]
dt
= k
2
[ES]. (1.5)
Sachant que [E]
t
= [ES] + [E], on dduit de (1.4) et (1.5) la relation suivante :
V
[E]
t
=
k
2
[ES]
[ES] + [E]
=
k
2
[S]
K
M
+ [S]
, (1.6)
soit encore, en posant V
M
= k
2
[E]
t
,
V =
V
M
[S]
K
M
+ [S]
. (1.7)
Lquation (1.7) est appele quation de Michaelis-Menten. On note que, par d-
nition, la constante V
M
est fonction de la temprature, du pH et de la concentration en
enzyme [E]. Elle correspond la vitesse maximale de la raction, obtenue lorsque la
concentration en substrat [S] tend vers linni.
En pratique les constantes K
M
et V
M
peuvent difcilement tre obtenues thorique-
ment. Il est donc ncessaire de les estimer partir de mesures exprimentales de la
vitesse V pour diffrentes valeurs de la concentration en substrat. On est donc amen
rsoudre un problme inverse non linaire.
Pour se ramener un problme linaire, on remarque quen posant
84
s =
1
[S]
, v =
1
V
, a =
K
M
V
M
, b =
1
V
M
, (1.8)
lquation (1.7) est quivalente lquation suivante :
v = as +b. (1.9)
Par consquent, si on a effectu n mesures de vitesse de raction, on est conduit
la rsolution dun systme linaire surdtermin, dinconnues a et b :
_

_
s
1
a +b = v
1
s
2
a +b = v
2
.
.
.
.
.
.
.
.
.
s
n
a +b = v
n
(1.10)
o les couples (s
i
, v
i
) correspondent aux n rsultats de mesure.
1.2 Principe de la mthode
Daprs (1.10), le problme rsoudre est de la forme suivante :
A.x = f, (1.11)
o A est une matrice relle, injective, de dimension np, x un vecteur de dimension p
et f un vecteur de dimension n avec n > p. Un tel systme linaire est dit surdtermin.
En gnral, il ne possde pas de solution sauf si f Im(A). En pratique, cette condition
nest jamais satisfaite du fait des erreurs de mesure et des approximations inhrentes
au modle physique utilis. Il est donc ncessaire de dnir une solution gnralise du
systme (1.11).
On dit que x est solution de (1.11) au sens des moindres carrs si et seulement si :
z R
p
, |A.x f|
2
2
|A.z f|
2
2
, (1.12)
o |y|
2
dsigne la norme euclidienne du vecteur y dans R
n
. Lintret de cette norme
tient au fait que la solution du problme de minimisation (1.12) possde alors une solution
explicite donne par :
x = (A
T
.A)
1
A
T
.f, (1.13)
o A
T
dsigne la transpose de la matrice A. Dans certaines situations, il peut tre
intressant daffecter un poids diffrent aux quations du systme (1.11), an de traduire
85
le fait que certaines mesures sont plus ables que dautres ou bien que le modle utilis
est plus prcis dans certaines plages de valeurs que dans dautres. On remplace alors la
dnition (1.12) par :
z R
p
, |W.(A.x f)|
2
2
|W.(A.z f)|
2
2
(1.14)
o W est une matrice diagonale de coefcients w
1
, w
2
, . . . , w
n
. Daprs (1.14), on voit
que le rel w
2
i
sinterprte comme le poids relatif affect lquation (i) du systme (1.11).
Tout comme (1.12), le problme (1.14) possde une solution explicite donne par :
x = (A
T
.P.A)
1
A
T
.P.f, (1.15)
avec P = W
T
.W.
1.3 Travail demand
On sintresse des ractions enzymatiques faisant intervenir la lactase neutre. On
tudie deux substrats diffrents : lONPG (orthonitrophenyl galactoside) qui est un sub-
strat articiel et le lactose qui est le substrat naturel de lenzyme. Dans les deux cas, on
considre que la vitesse initiale de la raction enzymatique, V, obit la loi de Michaelis-
Menten (1.7) et on souhaite estimer les deux paramtres K
M
et V
M
.
Pour cela, on effectue des mesures de la vitesse de raction ( 40 C et pH 7) partir
dune solution liquide de lactase neutre pour diffrentes concentrations en substrat. Les
tableaux suivant regroupent les rsultats obtenus pour chacun des deux substrats :
ONPG (g/l) 1.25 2.5 5.0 7.5 10.0 15
V (U/ml) 1180 2000 2980 3820 4310 5000
Lactose (mM) 5 10 20 50 100 200 300
V (U/ml) 750 1400 2170 4380 6410 8890 9250
o U dsigne lunit choisie pour la vitesse de raction (M/s ou g/s).
On sait quen posant s = 1/[S] ([S] dsignant la concentration en substrat) et v = 1/V ,
lquation de Michaelis-Menten est quivalente lquation linaire suivante :
v =
1
V
m
+
K
m
V
m
s (1.16)
86
Questions
1. En vous servant de lquation (1.16), montrer que le problme de la dtermina-
tion des constantes K
m
et V
m
, partir des rsultats de mesures, est quivalent
la rsolution dun systme linaire surdtermin. Donnez lexpression de la ma-
trice et du second membre de ce systme en fonction des donnes exprimentales
(concentrations en substrat, vitesses initiales de la raction).
2. Ecrire une fonction MATLAB, dont les arguments sont 2 vecteurs contenant res-
pectivement les concentrations en substrat et les vitesses de raction, et qui ren-
voie les paramtres cintiques K
m
et V
m
, calculs par la mthode des moindres
carrs. Pour chacun des substrats, tracer la courbe thorique V = f([S]) donne
par la loi de Michaelis-Menten pour les valeurs obtenues de K
m
et V
m
et faire gu-
rer sur le mme graphe les points exprimentaux. Que constatez vous dans le cas
du lactose ? Expliquer en vous servant de linterprtation graphique de la mthode
des moindres carrs le lien entre ce problme et le changement de variable utilis
pour linariser la loi de Michaelis-Menten.
3. Proposer une mthode de moindres carrs pondre qui permet de corriger ce
problme en donnant un poids plus important aux rsultats exprimentaux cor-
respondant aux grandes valeurs de [S]. Vrier son efcacit en lappliquant aux
valeurs exprimentales du lactose.
87
88
Sujet du TP 2
Rsolution dun systme non linaire
par la mthode de Newton
2.1 Sujet du problme
Lobjectif du TP est de rsoudre par la mthode de Newton un systme dquations
algbriques non linaires permettant de dterminer lquilibre dadsorbtion dun mlange
de protines par une rsine changeuse dions. La modlisation du problme et lutili-
sation de la loi daction de masse (voir document joint en annexe) conduisent aux deux
relations suivantes :
C
1
=
q
1
K
1
_
C
S
Q
X
z
1
q
1
z
2
q
2
_
z
1
(2.1)
C
2
=
q
2
K
2
_
C
S
Q
X
z
1
q
1
z
2
q
2
_
z
2
(2.2)
o les inconnues sont les concentrations q
1
et q
2
des 2 protines adsorbes par la
rsine. On prendra les donnes suivantes :
K
1
= 8200, K
2
= 148,
z
1
= 6, z
2
= 2,
C
1
= C
2
= 0, 01,
C
S
= 0, 03, Q
X
= 0, 011.
89
2.2 Travail demand
1. Pour rsoudre le systme (2.1)-(2.2) par la mthode de Newton, vous mettrez
dabord ce systme sous la forme
f(q) = 0, (2.3)
avec q IR
2
et f(q) IR
2
. Plusieurs choix sont possibles pour la fonction f. Vous
veillerez ce que lexpression choisie pour la fonction f ne contienne pas de frac-
tion dont le dnominateur peut sannuler pour certaines valeurs particulires de q.
Calculez ensuite lexpression de la matrice jacobienne de f.
2. Pour rsoudre le systme (2.2) par la mthode de Newton, vous crerez les chiers
suivants :
un cher fun.m avec lentte :
function y = fun(q,K1,K2,z1,z2,....)
qui prend en entre q et la liste des donnes K
1
, K
2
, z
1
, z
2
, . . ., et renvoie la valeur
de la fonction f(q).
un cher dfun.m avec lentte :
function df = dfun(q,K1,K2,z1,z2,....)
qui prend en entre q et les donnes et renvoie la matrice Jacobienne :
Df(q) = (f
i
/q
j
)
i,j=1,N
un cher main.m, le programme principal, dans lequel vous initialisez vos don-
nes et variables, et mettez en oeuvre la mthode de Newton.
3. Une fois votre programme termin, calculer la valeur des concentrations q
1
et q
2
correspondant aux donnes de lnonc. Tester la sensibilit des rsultats obtenus
par rapport la prcision du critre darrt choisi et par rapport au choix des valeurs
initiales pour q
1
et q
2
. Que constatez vous ?
90
Sujet du TP 3
Equations Diffrentielles Ordinaires
Les questions 1 et 2 doivent tre trates avant le TD en temps de travail personnel.
Pour a > 0, on considre le problme
_
y

(t) = a(cos t y(t)), t [0, /2] ,


y(0) = 0
(3.1)
1. Montrer que la solution exacte du problme (1) est
y(t) =
a
a
2
+ 1
_
a cos t + sin t a e
at
_
(3.2)
2. Montrer que lim
a
y(t) = cos t pour t > 0.
3. Ecrire une fonction MATLAB ayant comme arguments dentre les paramtres a, le
nombre de points de discrtisation N et le temps nal T
f
(le pas h est une fonction de N
et T
f
). Cette fonction doit restituer en sortie les points t
n
= nh tels que 0 t
n
4 et les
valeurs y(t
n
) de la solution exacte aux points t
n
. La dclaration propose est :
function [t,yex]=euler(a,N,Tf)
4. Tracer la solution exacte du problme (3.1), avec 100 points, pour diffrents para-
mtres : a = 5, a = 20 et a = 50. Quobserve-t-on ?
5. Enrichir la fonction MATLAB an quelle retourne en sortie les points t
n
= nh, les
valeurs y(t
n
) de la solution exacte aux points t
n
, ainsi les valeurs de la solution approche
obtenue par lalgorithme dEuler explicite et lalgorithme dEuler implicite. La dclaration
propose est :
function [t,yex,yexp,yimp]=euler(a,N,Tf)
6. On sintresse aux rsultats obtenus pour les jeux de donnes correspondant
a = 20 et N = 40, 42, 50, 100. Tracer dans une mme gure la courbe exacte (en train
continu), celle obtenue par le schma dEuler explicite (en pointills ) et par le schma
dEuler implicite (en pointills alterns ). Pouvez-vous expliquer les rsultats obtenus ?
91
7. Tracer les courbes derreurs commises par ces deux mthodes, en coordonnes
logarithmiques (commande loglog avec la mme syntaxe que plot), pour les valeurs
de N suivantes :
ListeN=[5 10 20 30 40 50 80 100 200 400 1000 5000 1e4 5e4 1e5];
Expliquez et commentez.
8. Implmenter une mthode dordre 2 au choix dans la fonction euler : RK2, Point-
Milieu ou Crank-Nicholson pour les plus tmraires. Ajouter sa courbe derreur au dia-
grame prcdent.
9. Mesurer les pentes des diffrentes courbes derreur, et justiez les valeurs de ces
pentes.
92
Sujet du TP 4
Cintique chimique dun processus
dozonation
4.1 Une raction enzymatique enzyme substrat
Une raction enzymatique simple met en prsence une enzyme E, un substrat S pour
former un complexe C qui fournit de lenzyme et un produit P. On traite un modle trs
schmatique de cette raction :
E +S C
C E +P
(4.1)
Les concentrations respectives du substrat et du complexe, notes x
s
et x
c
vont vo-
luer au cours du temps. Au dbut de la raction , cest--dire au moment o lon met en
prsence enzyme et substrat, la concentration en substrat est 1 et celle du complexe est
0. dsignera la proportion denzyme dans le substrat, typiquement de lordre de 10
5
.
La raction (4.1) est alors dcrite par le systme dquations diffrentielles (4.2) :
_
x

s
= x
s
+ (x
s
+k
1
) x
c
,
x

c
= x
s
(x
s
+k
2
) x
c
.
(4.2)
Dans ce systme, k
1
et k
2
dsignent des constantes convenablement normalises ;
on prendra k
1
= 1 et k
2
= 2, et
_
x
s
(0) = 1,
x
c
(0) = 0.
.
La mise en oeuvre se fait grce aux deux chiers Enzime.m et Foncenzyme.m
que vous allez crer, en dnissant une variable vectorielle y dont les deux composantes
seront x
s
et x
c
:
Le chier Enzime.m contient lappel un solveur de MATLAB, et vous commence-
rez avec ode45, Lappel se faisant selon :
[t,Y]=ode45(@Foncenzyme,[0, Tfin],Yini);
Foncenzyme est le nom du chier dnissant la fonction MATLAB qui implante
la fonction F(t, y) dcrivant lquation (4.2). Cette fonction renvoie un vecteur co-
lonne. Ses arguments sont dans cet ordre t et le vecteur y,
93
FIGURE 4.1 Schma du racteur gaz-liquide semi-continu considr.
On visualisera la solution calcule en lgendant la gure. On peut simplier les mani-
pulations en utilisant des variables globales (vrier la syntaxe en tapant help global).
Ce problme est rput trs raide : la valeur du paramtre est telle que la raction est
brutale linstant initial : vous observerez cette relation sur lintervalle t
0
= 0, t
f
= 10
4
.
On peut constater que le logiciel a du mal calculer la solution sur un temps un peu long.
Matlab propose des solveurs adapts aux problmes raides. Vous pouvez par exemple
utiliser le solveur ode23s. Pour mieux visualiser la phase initiale, vous pourrez utiliser
une reprsention graphique utilisant la fonction semilogx.
4.2 Transfert dozone gaz-liquide et raction chimique en phase
liquide
Les applications industrielles o une espce gazeuse est transfre dune phase gaz
vers une phase liquide contenant un ou plusieurs ractifs avec le(s)quel(s) le gaz dissous
peut ragir sont frquentes. Nous allons ici nous intresser un procd de dpollution
de leau par ozonation.
4.2.1 Position du problme
Lozonation seffectue dans une colonne bulles. Il ny a pas de dbit de liquide. Le
gaz est inject la base de la colonne et vacu la sortie.
Dans notre exemple, le dbit de gaz est Q
g
= 8.6 10
5
m
3
s
1
. Le gaz monte sous
forme de bulles de 3.5 mm de diamtre une vitesse V
g
de 25 cms
1
. La section occupe
par le gaz est donc A
g
= Q
g
/V
g
= 3.4 10
4
m
2
. La section de la colonne de diamtre
10 cm tant A = 7.8 10
3
m
2
, le taux de gaz est donc
g
= A
g
/A = 4.4 %.
Lozone est transfr des bulles de gaz dans le liquide travers laire interfaciale
volumique note a, avec une vitesse de transfert k
L
. Laire interfaciale dpend de la taille
des bulles et de la rtention volumique de bulles dans la colonne. Le taux de gaz, not
94

g
, correspond aussi la fraction volumique de phase disperse dans la colonne. Il est
donc aussi dni comme le rapport du volume
g
de la phase disperse au volume du
contacteur,
g
=

g

. Dans le cas dune dispersion de sphres de mme diamtre d, la


fraction volumique scrit
g
=
n d
3
6
.
Par dnition, laire interfaciale dchange par unit de volume du contacteur, note a
scrit a =
A
i

, o A
i
reprsente laire interfaciale dchange de lensemble des inclusions
dans le contacteur. Dans le cas dune dispersion de sphres de mme diamtre d, laire
interfaciale dchange par unit de volume du contacteur a scrit a =
n d
2

.. Il est alors
possible de relier laire interfaciale dchange par unit de volume du contacteur a la
fraction volumique de phase disperse par
a =
6
g
d
.
Pour une fraction volumique de gaz de 4.4 % et des bulles de 3.5 mm de diamtre,
laire interfaciale volumique vaut a = 75 m
1
. La vitesse de transfert peut tre estime
par le modle de Higbie,
k
L
= 2
_
D
t
c
,
o D dsigne le coefcient de diffusion de lozone dans lefuent et t
c
le temps de contact
entre le gaz et le liquide. Le temps de contact se calcule en fonction du diamtre des
bulles et de leur vitesse. La vitesse dascension de bulles dair de 3.5 mm de diamtre
est de 25 cms
1
. Le temps de contact est
t
c
=
d
V
g
= 0.0014 s.
La diffusivit de lozone dans lefuent est D = 1.74 10
9
m
2
s
1
, de sorte que la
vitesse de transfert sera k
L
= 4 10
4
ms
1
. On en dduit le coefcient de transfert k
L
a =
3 10
2
s
1
.
Lozone, gaz couramment utilis en traitement de leau, se dissout puis ragit avec
lacide malique (HO
2
CCH=CH0
2
H), compos organique tudi dans notre cas, en
donnant plusieurs composs : lacide glyoxalique (HOCC0
2
H) et de lacide formique
(HCO
2
H) ; lacide glyoxalique ragit galement avec lozone et fournit de lacide oxalique
(HO
2
CCO
2
H).
Acide malique + ozone
2
acide glyoxalique +
3
acide formique,
acide glyoxalique + ozone
4
acide oxalique,
acide formique + ozone produits,
acide oxalique + ozone produits.
Ces quations ne sufsent pas pour crire le systme diffrentiel !
95
4.2.2 Mise en quation
La premire opration consiste crire les bilans de matire dans la phase gaz et
dans la phase liquide. Un bilan de matire scrit suivant le schma
ENTRE = SORTIE + ACCUMULATION + RACTION + TRANSFERT
On commence par crire la bilan de lozone gaz dans la colonne. Le gaz entre la
base de la colonne et sort travers la surface libre ; Q
g
reprsente le dbit gazeux. Pen-
dant lascension du gaz dans la colonne, une partie de lozone gaz est transfre : elle
est dcrite par le coefcient de transfert k
L
a et par la concentration dozone linterface
gaz-liquide C
eq
= 0.34 C
o
. La concentration dozone dans le gaz en moyenne dans la
colonne varie donc au cours du temps. La concentration en ozone du gaz lintrieur du
racteur est note
C
o
=
[0
3, g
]
e
+ [0
3, g
]
s
2
.
Le bilan de matire pour lozone dans la phase gaz scrit donc
Q
g
[0
3, g
]
e
= Q
g
[0
3, g
]
s
+k
L
a (C
eq
[0
3, l
])
l
+
g
d C
o
dt
(4.3)
On crit ensuite le bilan de matire pour lozone liquide dans la colonne. Le rac-
teur est ferm au liquide : il ny a pas dcoulement de liquide. Lozone est transfr au
niveau des interfaces gaz-liquide. Il ragit ensuite avec les diffrents composants et sa
concentration varie au cours du temps. Le bilan de matire de lozone liquide scrit
k
L
a (C
eq
[0
3, l
]) =
d[0
3, l
]
dt
+ [0
3, l
] (k
1
[AM] +k
2
[AG] +k
3
[AF] +k
4
[AO]) . (4.4)
On crit enn les bilans de matire pour les diffrentes espces qui ragissent dans
le liquide avec lozone.
Acide malique :
d [AM]
dt
+k
1
[0
3, l
] [AM] = 0 (4.5)
Acide glyoxylique :
d [AG]
dt

2
k
1
[0
3, liq
] [AM] +k
2
[0
3, liq
] [AG] = 0 (4.6)
Acide formique :
d [AF]
dt

3
k
1
[0
3, liq
] [AM] +k
3
[0
3, liq
] [AF] = 0 (4.7)
Acide oxalique :
d [AO]
dt

4
k
2
[0
3, liq
] [AG] +k
4
[0
3, liq
] [A0] = 0 (4.8)
4.2.3 Mise en uvre
Les inconnues du problme sont les six concentrations pour lesquelles on a crit
lquation du bilan. Elles seront les six composantes dune fonction y(t) , dnie sur
96
[0, t
fin
] valeurs dans R
6
. Ce sont respectivement [0
3, g
]
s
, [0
3, l
], [AM], [AG], [AF] et
[AO]. La fonction y(t) est solution du systme diffrentiel form des quations (4.3)
(4.8) que lon peut crire sous la forme
y

(t) = F(t, y(t)). (4.9)


La mise en uvre se fait en utilisant deux chiers, le chier dinstructions Resolution.m
et le chier de fonction Bilmat.m.
Le chier Bilmat.m est un chier de fonction qui dcrit la fonction F de (4.9). Sa
dclaration pourra tre function yprime = Bilmat(t, y);.
Le chier Resolution.m contiendra
Les initialisations, et dclaration de constantes. On choisira t
fin
= 6000 s. Les
autres constantes sont donnes dans le tableau suivant, en units du systme
international :
Q
g
8.6 10
5
k
L
a 0.03 k
1
1
[O
3, g
]
e
0.67
2
1 k
2
0.002

l
8.5 10
3

3
1.15 k
3
0.07
V
g
2.5 10
4

4
0.75 k
4
4 10
5
Lappel au solveur de MATLAB, sous la forme
[t, y] = ode45(@bilmat, intervalle, yini, options);
La variable intervalle contient une spcication des instants auquels on de-
mande au solveur de nous fournir les solutions calcules. On devra linitialiser avant
lappel au solveur, par exemple selon
tfin = 6000 ; Nt = 1000 ; intervalle = [0: tfin/Nt : tfin];
La variable yini contient les composantes de y(0), xes 0 sauf pour lacide
malique pour lequel la concentration initiale est 3.685 mol.m
3
.
La variable options est facultative, et dans un premier temps, on peut sen dis-
penser. Elle permet de prciser certains paramtres du solveur. Elle est cre par
la fonction odeset. On pourra tester linuence dune prcision augmente en mo-
diant les seuils de tolrances utiliss pour le contrle du pas, par exemple :
options = odeset(Reltol,1e-6,Abstol, 1e-6
*
ones(6,1));
On pourra aussi demander des informations sur le cot des diffrentes mthodes
en activant loption Sats si lon veut comparer ode45 une mthode recomman-
de pour les problmes raides (ode15s ou ode23s). On peut aussi faire cette
comparaison au niveau des temps de calcul (fonctioncputime).
Vous reprsenterez les volutions des concentration de [0
3, g
], [0
3, l
] et des 4 acides
sur trois gures diffrentes.
Vous ferez une tude de sensibilit au diamtre des bulles.
Vous reprsenterez sur les gures correspondantes les donnes exprimentales
fournies dans le tableau 4.1 en utilisant des marqueurs.
Vous commenterez votre travail
Ces donnes ainsi que les paramtres utiliss peuvent sobtenir en xcutant le -
chier donnees.m que lon peut tlcharger ladresse :
97
t [0
3, g
] [0
3, l
] [AM] [AG] [AF] [A0]
0 0 0 3.685 0 0 0
180 0.219 0.005 2.888 0.558 0.540 0
360 0.227 0.006 2.112 1.159 1.322 0
540 0.233 0.008 1.409 2.023 2.564 0
720 0.244 0.011 0.699 3.376 3.203 0.004
900 0.252 0.016 0.137 3.707 3.494 0.013
1080 0.263 0.021 0.001 3.615 2.981 0.050
1260 0.275 0.038 0 3.517 2.373 0.097
1500 0.290 0.050 0 3.447 1.536 0.165
1800 0.329 0.088 0 3.366 0.642 0.266
2100 0.442 0.159 0 3.097 0 0.449
2400 0.527 0.186 0 2.780 0 0.649
2700 0.542 0.189 0 2.454 0 0.825
3150 0.552 0.188 0 2.107 0 1.082
3600 0.560 0.189 0 1.786 0 1.303
4200 0.579 0.194 0 1.412 0 1.548
4800 0.592 0.195 0 1.191 0 1.734
TABLE 4.1 Donnes exprimentales, en secondes et Moles m
3
.
http://www-gmm.insa-toulouse.fr/~poncet/tpgpi3ozone.m
98
Sujet du TP 5
Stabilit des schmas dEDP
5.1 Formulation du problme
On considre lquation de la chaleur suivante :
_

_
u
t
a

2
u
x
2
= 0 dans ]0, L[]0, T[
u(0, t) = 0 et u(L, t) = 0
u(x, 0) = u
0
(x)
(5.1)
avec a > 0 le coefcient de conductivit thermique.
On discretise lintervalle [0, L] en n + 2 points par x
i
= i x, i = 0..n + 1 et x =
L/(n + 1). On utilise cette discrtisation en espace pour lquation (5.1) en introduisant
la fonction U(t) R
n
telle que
U
i
(t) u(x
i
, t)
pour i = 1..n (pour i = 0 et i = n + 1 la solution est nulle).
On sintresse prsent uniquement aux indices de 1 N, puisque la solution est
nulle aux bord (indices 0 et N + 1). Soit P la matrice de taille N N suivante :
P =
_

_
2 1
1 2 1
1 2 1
.
.
.
.
.
.
.
.
.
1 2 1
1 2
_

_
La fonction U : R
+
R
n
est alors solution de lquation diffrentielle ordinaire sui-
vante :
U

i
(t) = a
U
i1
(t) + 2U
i
(t) U
i+1
(t)
x
2
(5.2)
cest dire
U

(t) = (a/x
2
) P U(t) (5.3)
99
avec la condition initiale U
i
(0) = u
0
(x
i
) avec :
u
0
(x) =
1

2
e
(xx
0
)
2
/2
2
la gaussienne 1D centre en x
0
= 0.5 et dcart-type = 0.05. On peut alors intgrer, au
choix, cette EDO par un schma de type Euler explicite ou Euler implicite.
Application numrique : On prendra dans tout le TD L = 1, n = 49 et a = 4 10
4
.
5.2 Euler explicite
On considre prsent une discrtisation en temps t
n
= nt. Lquation (5.3), dis-
crtise par le schma dEuler Explicite, scrit sous la forme de litration suivante :
U
n+1
i
U
n
i
t
= a
U
n
i1
+ 2U
n
i
U
n
i+1
x
2
avec U
n
i
U
i
(t
n
), cest dire
U
n+1
= (I P)U
n
(5.4)
avec = at/x
2
et la condition initiale U
0
i
= u
0
(x
i
).
Travail 1 : Coder en MATLAB la matrice I P pour un pas de temps t = 0.1, ainsi
que litration (5.4).
Travail 2 : Quelle est la condition de stabilit de ce schma, vue en cours ? Quelle
relation, avec les paramtres de lapplication numrique ci-dessus, a-t-on entre et t ?
Comment se traduit la condition de stabilit pour le choix de t dans notre cas ?
Travail 3 : On souhaite calculer la solution au temps nal Tf = 500, avec Nt points
de discrtisation en temps (en incluant la condition initiale). Le pas de temps est donc
t = Tf/(Nt + 1)
Ecrire une fonction qui prend en entre Nt, Tf et la donne initiale U
init
sous forme dun
vecteur ligne de taille N. Le prototypage propos est :
function [Uexp,dt]=stabsol(Nt,Tf,Uinit)
Tracer les solutions obtenues, et calculer (condition CFL) et le pas de temps t pour les
valeurs suivantes de Nt :
Nt=2000,1000, 980, 960
Quobserve-t-on ?
Travail 4 : Calculer prsent les valeurs maximales de la solution |U(Tf)|

en
Tf = 200 pour les valeurs suivantes de Nt :
ListeNt=[200 250 300 350 390 400 410 420 450 500 600 800 1000] ;
100
Tracer |U(Tf)|

en fonction de t en coordonnes logarithmiques sur laxe des or-


donnees seulement (commande semilogy). Quobserve-t-on et pourquoi ? Comment ex-
pliquer le trs lger dcalage entre la valeur thrique et la valeur de dcrochage effec-
tive ?
5.3 Euler implicite
On considre prsent lquation (5.3) discrtise par le schma dEuler Implicite,
sous la forme de litration suivante :
U
n+1
i
U
n
i
t
= a
U
n+1
i1
+ 2U
n+1
i
U
n+1
i+1
x
2
cest dire
U
n+1
= (I +P)
1
U
n
(5.5)
avec = at/x
2
et la condition initiale U
0
i
= u
0
(x
i
).
Il est bien evidemment impossible dinverser la matrice I + P. On rsoudra le sys-
tme linaire suivant chaque itration, en utilisant la commande :
(I +P)U
n+1
= U
n
Travail 5 : Mme travail (1 3) que pour Euler Explicite, en enrichissant la fonction
stabsol an quelle retourne galement la solution en Tf obtenue par la mthode dEuler
implicite :
function [Uexp,Uimp,dt]=stabsol(Nt,Tf,Uinit)
Travail 6 : Superposer les courbes de valeurs maximales (cf. question 4) en Tf = 200
pour les deux mthodes.
Travail 7 : Faire une analyse critique des deux mthodes.
101
102
Sujet du TP 6
Construction dun solveur elliptique
On considre lquation de convection-diffusion 1D suivante :
_
_
_

1
(x)u

(x) +
2
(x)u

(x) = f(x) dans ]L


1
, L
2
[
au(L
1
) +bu

(L
1
) = g
1
et cu(L
2
) du

(L
2
) = g
2
(6.1)
avec
1
(x) > 0 le coefcient de diffusivit, a priori variable. Cette quation appartient la
catgorie des quations aux drives partielles elliptiques du second ordre.
Les fonctions
1
et
2
doivent tre codes dans deux fonctions MATLAB nu1 et nu2
qui sont des fonctions relles dune variable, rendant par dfaut respectrivement 1 et 0.
On considre le maillage en espace de linterval [L
1
, L
2
] en N points incluant les
bords :
x
i
= L
1
+ (i 1)x, pour i = 1..N et x = (L
2
L
1
)/(N 1)
Vriez que x
1
= L
1
et x
N
= L
2
.
On discrtise la drive seconde par le schma classique centr dordre 2 3 points :
u(x
i1
) + 2u(x
i
) u(x
i+1
)
x
2
= u

(x
i
) +O(x
2
)
et la drive premire par
u(x
i+1
) u(x
i1
)
2x
= u

(x
i
) +O(x
2
)
Pour les drives sur les bords, on utilise un schma dcentr dordre 2 :
3u(x
i
) + 4u(x
i+1
) u(x
i+2
)
2x
= u

(x
i
) +O(x
2
)
et sa formule symtrique :
3u(x
i
) + 4u(x
i1
) u(x
i2
)
2x
= u

(x
i
) +O(x
2
)
Ainsi la condition limite au bord gauche de lquation (6.1), cest dire
au(L
1
) +bu

(L
1
) = g
1
103
va se discrtiser par :
(a 3b/2x)U
1
+ (2b/x)U
2
(b/2x)U
3
= g
1
(6.2)
La discrtisation de lquation (6.1) conduit la rsolution dun systme linaire
MU = F o la premire et dernire lignes de M et de F constituent la discrtisation
des conditions aux limites. Par exemple, la premire ligne de ce systme linaire, daprs
lequation (6.2), scrit :
[a 3b/2x 2b/x b/2x 0 . . . 0] U = g
1
Travail 1 : Ecrire les coefcients de la matrice M.
Travail 2 : Implmenter une fonction MATLAB qui prend tous les paramtres de
lquation (6.1) et qui rend la solution sous forme dun vecteur colonne de R
N
et le
maillage sous forme dun vecteur colonne de mme taille. Le prototypage propos est
le suivant : function [U,X]=solveurelliptique(N,L1,L2,F,a,b,G1,c,d,G2)
Les coefcients de la matrice M seront entrs lintrieur de cette fonction. La solu-
tion du systme linaire est calcule en utilisant la commande MATLAB : U = M F.
Commencez nanmoins par le coder le vecteur X dans cette procedure, ainsi que les
fonctions
1
et
2
!
Travail 3 Problme de Dirichlet homogne : testez votre solveur sur le problme
suivant :
_
u

(x) = 2 sur ] 1, 1[
u(1) = u(1) = 0
(6.3)
avec N = 20, qui admet comme solution exacte u(x) = 1 x
2
. Tracer sur une mme
gure la solution exacte en trait continu et la solution numrique avec des +. Que dire de
la prcision de la solution ?
Travail 4 Problme mixte Dirichlet/Neumann homogne : mme question avec
_
u

(x) = 2 sur ]0, 1[


u

(0) = u(1) = 0
(6.4)
avec N = 50, qui admet encore comme solution exacte u(x) = 1 x
2
.
Travail 5 Testez votre solveur sur le problme suivant :
_
_
_
u

(x) +
u

(x)
x
= 0 sur ]0, 1[
u(0) = 1 et u(1) = 0
(6.5)
avec N = 50, qui admet une solution que lon cherchera sous la forme u(x) = x
2
+x+
et que lon comparera la solution numrique.
Travail 6 Trouver la solution exacte et tracer en log-log lerreur commise en fonction
de x pour le problme :
_
u

(x) =
2
sin(x) sur ]0, 1[
u(0) = u(1) = 0
(6.6)
avec N prennant plusieurs valeurs entre 5 et 2000. Analyser et commenter le rsultat
obtenu.
104
Sujet du TP 7
Ecoulement en conduite
On considre lcoulement dun uide visqueux newtonien incompressible dans une
conduite verticale dont la paroi est immobile, indformable et impermable. On suppose
lcoulement permanent et tabli. Lcoulement se fait dans la direction verticale x
3
. Le
rayon de la conduite est not R. On xe le gradient de pression moteur. On cherche le
dbit de uide associ. Pour cela, on calculera le prol radial de la vitesse U
1
(x
3
) que
lon intgrera ensuite.
7.1 Ecoulement laminaire
On rappelle lquation de conservation de la quantit de mouvement longitudinale de
Navier-Stokes :
0 =
P
x
3
+
1
r

r
_
r
U
3
r
_
+g
3
(7.1)
Les conditions la limite traduisent la symtrie sur laxe :
r = 0 :
U
3
r
= 0
et ladhrence la paroi :
r = R : U
3
(R) = 0
Travail demand :
1. Rsoudre numriquement lquation (7.1).
2. Tracer le prol de vitesse numrique et le comparer la solution analytique.
3. Calculer le dbit. En dduire le nombre de Reynolds.
4. Calculer numriquement le prol de cisaillement et le tracer.
5. Faire une analyse de sensibilit au maillage.
Application numrique : Le uide est de leau. Le diamtre de la conduite est de
0, 005m. On prendra g = 9.8m/s
2
. Le gradient de pression moteur vaut 9 900Pa/m,
puis 9 700Pa/m.
105
7.2 Ecoulement turbulent
On rappelle lquation de conservation de la quantit de mouvement longitudinale en
moyenne de Reynolds :
0 =


P
x
3
+
1
r

r
_
( +
t
(r))r


U
3
r
_
+g
3
(7.2)
les conditions la limite scrivent :
r = 0 :


U
3
r
= 0
et prs de la paroi
r = R :

U
3
(R) = U

_
1

ln(
+
) + 5.5
_
o reprsente la distance la paroi partir de laquelle la vitesse logarithmique sap-
plique. Pour la viscosit turbulente, on tablira une forme polynomiale telle que sur laxe,
la viscosit vrie la condition de symtrie :
r = 0 :

t
r
= 0
et telle qu proximit de la paroi, la viscosit vrie deux conditions, lune sur le niveau de
viscosit, lautre sur la variation radiale de la viscosit en accord avec les comportements
tablis en cours :
r = R :
t
(r) = U

On pourra soit calculer lexpression analytique de la viscosit turbulente de faon expli-


cite, soit tablir numriquement les valeurs des coefcients du polynme.
Travail demand :
1. Rsoudre numriquement lquation (7.2).
2. Tracer le prol de viscosit turbulente.
3. Tracer le prol de vitesse numrique et le comparer au prol logarithmique de vi-
tesse prs des parois.
4. Calculer le dbit. En dduire le nombre de Reynolds.
5. Calculer numriquement le prol de cisaillement turbulent et le tracer.
6. Faire une analyse de sensibilit au maillage.
7. On pourra tester la sensibilit de la solution diffrentes valeurs de
+
.
Application numrique : Le uide est de leau. Le diamtre de la conduite est de
0, 05m. On prendra g = 9, 8m/s
2
. Le gradient de pression moteur vaut 15 000Pa/m,
puis 0Pa/m.
106
107

Sujet de TP 8

Modle K- pour les
coulements turbulents



Lobjectif du TD est de vous familiariser avec la modlisation de la turbulence.
Lexemple traite dun coulement turbulent entre plaques. Le programme de
rsolution du problme, crit sous Matlab vous est fourni, et se trouve disponible en
tlchargement sur le site :

http://www-gmm.insa-toulouse.fr/~poncet/
dans la section INSA students . Il sagit dexcuter ce code, de le comprendre et
den exploiter les rsultats.

Le programme rsout 3 types de modles de turbulence 0 quation, une
quation et 2 quations. Cest ce dernier modle qui sera utilis ultrieurement
avec le code Fluent pour traiter des cas industriels.

Le programme trace les profils de :
- vitesse longitudinale
- nergie cintique turbulente
- taux de dissipation de lnergie cintique turbulente
- viscosit turbulente

Au terme de lexcution, nous vous demandons :
- de sauvegarder les donnes dans un fichier data.mat
- de tracer les profils de :
o production de lnergie cintique turbulente
o diffusion turbulente de lnergie cintique turbulente
o dissipation visqueuse de lnergie cintique turbulente.

Pour cela, il faudra crire un programme sous Matlab. Il faudra vrifier que le bilan
est bien calcul. Lobjectif est de comprendre dans quelle zone la turbulence est
produite et dans quelle zone elle est diffuse.

Il sagira ensuite de tracer des chelles caractristiques de longueur de la turbulence,
savoir les profils de :
- macrochelle de Taylor ,
- microchelle de Taylor ,
- microchelle de Kolmogorov .
108


8.1 Description de lexemple trait

On considre lcoulement dun fluide visqueux newtonien incompressible entre deux
plaques parallles, immobiles, indformables et impermables. On suppose
lcoulement permanent et tabli. Lcoulement se fait dans la direction x
1
qui est
horizontale. Le fluide est born par les parois dans la direction x
2
; les deux parois
sont distantes de H . On fixe le gradient de pression moteur. On cherche le dbit de
fluide associ. Pour cela, on calculera le profil transversal de la vitesse U
1
(x
2
) .















On rappelle lquation de conservation de la quantit de mouvement longitudinale :
( ) 0
1 2
1
2
1
= + +
|
\

| +


P
x x
U
x
g
t

Les conditions la limite pour la vitesse scrivent
(

+ = =
(

+ = =
+
+
5 , 5 ) (
1
* ) (
5 , 5 ) (
1
* ) (
2 1 2
2 1 2

Ln U x U H x
Ln U x U x


reprsente la distance la paroi laquelle la vitesse logarithmique sapplique.


8.1.1- Modle algbrique de viscosit turbulente

On peut tablir une forme polynomiale de la viscosit turbulente telle qu proximit
de la paroi, la viscosit vrifie :
x x U et
x
U
x H x U et
x
U
t
t
t
t
2 2
2
2 2
2
= = =
= = =


( ) * *
( ) * *

Ce premier modle a dj t rsolu. Il fournit le profil de vitesse et le profil de
viscosit turbulente algbrique.
X
2

X
1

U
1
(X
2
)
0
H
109


8.1.2- Modle une quation de turbulence

Dans ce cas, la viscosit turbulente scrit :

o lchelle de longueur l est dfinie de faon algbrique et lnergie cintique
turbulente k est calcule par la rsolution de son quation de transport :


dans cette quation, le taux de dissipation de lnergie cintique turbulente scrit :

On peut tablir une forme polynomiale de lchelle de longueur telle qu proximit
de la paroi, elle vrifie :


= = =
= = =
2
2 2
2
2 2
) (
) (
x
l
et x l H x
x
l
et x l x

Les conditions aux limites pour lnergie cintique turbulente sont :

Ce deuxime modle une quation de turbulence fournit les profils de vitesse,
dnergie cintique turbulente, de viscosit turbulente ainsi que le profil dchelle de
longueur algbrique l.

8.1.3- Modle deux quations de turbulence

Dans ce cas, la viscosit turbulente scrit :

Pour la viscosit turbulente, on rsout un modle de turbulence 2 quations:


l k C
t
'


|
|

\
|
=
2
1
2 1
2 2
' ' 0
x
U
u u
x
k
x
k
t
l
k
C
d
2
3
=


|
|

\
|
=
2
1
2 1
2 2
' ' 0
x
U
u u
x
k
x
k
t


2
k
C
t
=

C
U
x k H x
C
U
x k x
2
2 2
2
2 2
*
) (
*
) (
= =
= =
110

Le premier terme est un terme de diffusion turbulente, le second terme reprsente la
production et le dernier terme reprsente la dissipation.
Les conditions aux limites pour lnergie cintique turbulente et pour son taux de
dissipation sont :


Ce dernier modle deux quations de turbulence, appel modle (k,) fournit les
profils de vitesse, dnergie cintique turbulente, de son taux de dissipation et de
viscosit turbulente. Cest partir de ces rsultats quil faudra calculer et tracer les 3
termes du bilan de lnergie cintique turbulente.

8.2 Echelles caractristiques de longueur

La macrochelle de Taylor correspond aux tourbillons nergtiques et est dfinie
par :

2 / 3
k
=
La microchelle de Taylor correspond aux plus petits tourbillons qui contiennent
une quantit dnergie et est dfinie par :


La microchelle de Kolmogorov correspond aux plus petits tourbillons qui dissipent
lnergie cintique et est dfinie par :


En tout point dun coulement turbulent sont prsents toute une gamme de
tourbillons. Les 3 chelles ci-dessus sont les principales composantes du spectre.


k
C
x
U
u u
k
C
x x
t
2
2
2
1
2 1
1
2 2
' ' 0


|
|

\
|
=



3
2
2
2 2
3
2
2
2 2
*
) (
*
) (
*
) (
*
) (
U
x
C
U
x k H x
U
x
C
U
x k x
= = =
= = =

k 15
=
4 / 1
3
|
|

\
|
=

Vous aimerez peut-être aussi