Download - Analyse numérique avec TP INSA Toulouse

Transcript
Page 1: Analyse numérique avec TP INSA Toulouse

DÉPARTEMENT STPI

TROISIÈME ANNÉE

PRÉORIENTATION ICBE

Analyse Numérique

Cours : A. Huard, P. Poncet

TD : N. Dietrich, M. Fraisse, A. Huard, A. Liné

J. Morchain, P. Poncet, G. Quinio, P. Villedieu

2010/2011

Page 2: Analyse numérique avec TP INSA Toulouse

2

Page 3: Analyse numérique avec TP INSA Toulouse

Table des matières

I Cours 51 Résolution Numérique des Systèmes Linéaires 7

1.1 Problèmes de réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Sensibilité des systèmes linéaires . . . . . . . . . . . . . . . . . . . . . . . . 91.3 Factorisation LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.4 Matrices symétriques définies positives . . . . . . . . . . . . . . . . . . . . 32

2 Equations et Systèmes Non Linéaires 352.1 Heron d’Alexandrie et les racines carrées . . . . . . . . . . . . . . . . . . . 362.2 Résolution d’une équation non linéaire . . . . . . . . . . . . . . . . . . . . . 39

3 Equations Différentielles Ordinaires 473.1 Equations Différentielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.2 Pour en savoir plus... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.3 Pour en savoir encore plus ! . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

II Sujets de Travaux Pratiques 811 Estimation de paramètres par la méthode des moindres carrés 83

1.1 Objectif du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831.2 Principe de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851.3 Travail demandé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

2 Résolution d’un système non linéaire par la méthode de Newton 892.1 Sujet du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892.2 Travail demandé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

3 Equations Différentielles Ordinaires 91

4 Cinétique chimique d’un processus d’ozonation 934.1 Une réaction enzymatique enzyme substrat . . . . . . . . . . . . . . . . 934.2 Transfert d’ozone gaz-liquide et réaction chimique en phase liquide . . . . 94

5 Stabilité des schémas d’EDP 995.1 Formulation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995.2 Euler explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005.3 Euler implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

6 Construction d’un solveur elliptique 103

7 Ecoulement en conduite 1057.1 Ecoulement laminaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057.2 Ecoulement turbulent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

8 Modèle K-ε pour les écoulements turbulents 1078.1 Description de l’exemple traité . . . . . . . . . . . . . . . . . . . . . . . . . 1088.2 Echelles caractéristiques de longueur . . . . . . . . . . . . . . . . . . . . . . 110

3

Page 4: Analyse numérique avec TP INSA Toulouse

4

Page 5: Analyse numérique avec TP INSA Toulouse

Première partie

Cours

5

Page 6: Analyse numérique avec TP INSA Toulouse
Page 7: Analyse numérique avec TP INSA Toulouse

Chapitre 1

Résolution numériquedes systèmes linéaires

L’étude des méthodes de résolution des systèmes linéaires est une étape obligatoired’un cours de calcul scientifique ; presque tous les calculs passent par la résolution detels systèmes : nous en avons rencontré à l’occasion de problèmes d’interpolation etd’approximation, et l’ingénieur se trouve fréquement confronté à la résolution de tels sys-tèmes.

1.1 Problèmes de réseaux

Un réseau est un ensemble de noeuds Pi et d’arètes Ei,j reliant certains de cesnoeuds :

– lignes éléctriques,– canalisations d’eau, égouts,...

Dans chaque arète circule un fluide ; à chaque noeud est associé un potentiel ; l’inten-sité (ou le débit) du fluide est proportionnelle à la différence de potentiel entre les deux

7

Page 8: Analyse numérique avec TP INSA Toulouse

extrémités de l’arète où il circule ; c’est la loi d’Ohm pour les circuits électriques :

qi,j = ki,j(ui − uj)

Une loi physique de conservation (de Kirchoff dans le cas électrique) impose un équi-libre : la somme algébrique des intensités en chaque noeud est égale à la valeur de lasource (ou du puit) qu’il figure (0 s’il est isolé).

Au noeud Pi, on a dans le cas du circuit électrique :

Si =∑j

qi,j =∑j

ki,j(ui − uj)

Cette somme est étendue aux noeuds Pj adjacents de Pi ; considérons le reseaureprésenté par la figure ci-dessus. Les équations d’équilibre s’écrivent :

S1 = k1,2(u1 − u2) + k1,9(u1 − u9)0 = k2,1(u2 − u1) + k2,9(u2 − u9) + k2,7(u2 − u7) + k2,3(u2 − u3)· · · = · · ·S8 = k8,7(u8 − u7) + k8,9(u8 − u9)0 = k9,1(u9 − u1) + k9,2(u9 − u2) + k9,7(u9 − u7) + k9,8(u9 − u8)

de sorte que l’équilibre du système est connu en résolvant le système linéaire

Au = S

avec une matrice A dont les coefficients non nuls sont représentés ci-dessous parune ∗ :

A =

∗ ∗ ∗∗ ∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗

∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗

∗ ∗ ∗ ∗ ∗

Le second membre est défini par ST = (S1, 0, 0, S4, 0, S6, 0, S8, 0).

On sait aujourd’hui résoudre assez correctement des systèmes à plusieurs millionsd’inconnues (et d’équations), lorsqu’ils sont ”assez creux”, c’est-à-dire lorsque la matricedu système possède beaucoup de coefficients nuls ; pour les systèmes ”pleins”, on com-mence à avoir des problèmes au-delà de quelques centaines de milliers d’inconnues.Cela dépend bien sur des performances des ordinateurs que l’on utilise.

8

Page 9: Analyse numérique avec TP INSA Toulouse

Pour les très grands systèmes, on utilise des méthodes itératives : on construit unesuite de vecteurs qui converge vers la solution. Ces méthodes sont adaptées aux grandssystèmes creux car elles ne manipulent pas la matrice, mais seulement une fonction quiréalise le produit de cette matrice avec un vecteur quelconque.

Pour les systèmes pleins, on utilise des méthodes directes, susceptibles de fournir lasolution en arithmétique exacte après un nombre fini d’opérations élémentaires. Ce sontces méthodes que nous étudierons dans ce cours.

Les logiciels EXCEL et MATLAB proposent des solveurs de systèmes linéaires quimettent en oeuvre ce type de méthodes. La disponibilité de ces logiciels ne dispense pasde la connaissance du principe des algorithmes qu’ils mettent en oeuvre, ne serait-ceque pour les utiliser à bon escient, et pour comprendre les indications qui sont fournies,ou les messages d’erreur qui sont renvoyés.

1.2 Sensibilité des systèmes linéaires

Un système comme celui que l’on vient de décrire sera construit à partir de valeursmesurées. On peut se poser la question de la sensibilité de la solution à d’éventuelleserreurs de mesures.

Plus généralement, le système étant résolu par ordinateur en effectuant un certainnombre d’opérations élémentaires, la solution sera-t-elle très affectée par l’accumulationd’erreurs d’arrondis qu’implique cette succession d’opérations.

1.2.1 Exemple

On considère le système linéaire :

Ax =

(0.780 0.5630.913 0.659

) (x1x2

)=

(0.2170.254

)= b (1.1)

dont la solution est x = (1, −1)T .

La solution approchée x1 = (0.999, −1)T = x+ ∆1x peut sembler satisfaisante au vude sa faible différence avec la solution exacte ; elle fournit le résidu :

r1 = A x1 − b =

(−0.00078−0.00091

)

Le vecteur x2 = (0.341, −0.087)T = x + ∆2x ne semble pas être un candidat rai-sonnable pour la résolution de ce système ; et pourtant, cette fois, le résidu est bien plussatisfaisant :

r2 = A x2 − b =

(−0.000001

0

)9

Page 10: Analyse numérique avec TP INSA Toulouse

En terme de résidus et d’erreur, on a obtenu, respectivement pour x1 et x2 :

‖∆x‖2 0.001 1.126

‖r‖2 0.0012 0.000001

On constate ici que dans un cas, une modification très légère de la solution fournit unrésidu du même ordre de grandeur, mais dans l’autre une modification assez importantede cette solution fournit un résidu très petit.

Une autre expérience consiste à modifier légèrement le second membre. Considé-

rons le vecteur ∆b =

(−0.76030.6496

)et résolvons A x3 = b+ 10−3 ∆b. Cette fois la solution

est approximativement(−865.761199.84

)soit en notant ∆3x = x− x3, ‖∆3x‖2 ' 1481.

La figure suivante représente la solution exacte du système Ax = b et les solutionsobtenues pour 100 perturbations aléatoires du second membre, toutes inférieures ennorme euclidienne à 0.0029.

On peut imaginer que le second membre est le résultat d’une mesure, ou de calculsprécédents : accepteriez vous, par exemple, d’être le premier passager d’un avion ensachant que sa conception est passée par la résolution de ce système !

Le problème de la résolution d’un système linéaire n’est pas toujours un problèmefacile. On voit déja dans cet exemple très simple que l’on peut se poser la question desavoir si l’on cherche le vecteur solution du système, ou un vecteur qui vérifie le système.A précision donnée, les réponses peuvent être très différentes !

1.2.2 Distance à la singularité

On dit que la matrice A est singulière lorsque les systèmes linéaires de matrice A nesont pas inversibles. Une matrice A ∈MN (R) sera donc singulière si l’une ou l’autre des

10

Page 11: Analyse numérique avec TP INSA Toulouse

conditions équivalentes suivantes est vérifiée :- le déterminant de A est nul,- une des valeurs propres de A est nulle,- le rang de A est strictement inférieur àN : c’est le cas si les lignes (ou les colonnes)

de A ne sont pas linéairement indépendantes.

Une interprétation géométrique de l’exemple

On constate sur la figure précédente que toutes les solutions perturbées semblent setrouver sur une même droite. Un système linéaire 2× 2 s’écrit sous la forme :{

a1,1 x1 + a1,2 x2 = b1a2,1 x1 + a2,2 x2 = b2

Chacune des équations est l’équation d’une droite du plan (x1, x2). La solution estdonnée par les coordonnées du point d’intersection de ces deux droites.

Pour notre exemple, les coefficients directeurs de ces deux droites sont respective-ment −1.3854351 et −1.3854324 ! Elles sont donc presque parallèles. Il n’est pas étonnantque la localisation du point d’intersection soit délicate.

Si l’on modifie par exemple f1, la première droite est remplacée par une droite qui luiest parallèle. Si les deux droites sont presque parallèles, le nouveau point d’intersectionest très éloigné du précédent. La figure 1.2.2 illustre ce phénomène pour deux droites

dont les coefficients directeurs sont−1 et−10

9, c’est-à-dire quand même assez différents,

et qui se coupent en un point P . La droite en pointillé est parallèle à l’une des deuxdroites ; on a modifié la première composante du second membre pour l’obtenir. Sonintersection avec la droite inchangée est le point Q.

FIGURE 1.1 – Intersection de deux droites presque parallèles

11

Page 12: Analyse numérique avec TP INSA Toulouse

Sensibilité et distance à la singularité

Le système pécédent est sensible aux perturbations. Comme on obtient un systèmeéquivalent en multipliant chaque ligne par un scalaire non nul, on peut le remplacer par

le système obtenu en remplaçant chaque équation (Eq : i) par1

ai,1(Eq : i)

(1 0.72179481 0.7217962

) (x1x2

)=

(0.27820510.2782037

)(1.2)

On voit ici que les lignes A(1,:) et A(2,:) sont presque dépendantes puisque

A(1, :)− A(2, :) = [0, 1.4 10−6].

A vrai dire, (1.2) est une autre façon d’écrire l’équation des deux droites mentionnéesprécédemment. On voit mieux que ces droites sont presque parallèles.

Lorsque les lignes d’une matrice ne sont pas indépendantes, cette matrice est noninversible. On peut donc penser, que d’une certaine façon, c’est parce que la matrice Aest proche d’une matrice singulière que le système est très sensible aux perturbations.

C’est effectivement une matrice proche de la singularité que l’on a utilisé. La pluspetite valeur propre de A est à peu près 0.000000694. La matrice A+ ∆A ci-dessous estsingulière ; la perturbation ∆A qui la rend singulière est très petite.

A + ∆A =

(0.780 0.5630.913 0.659

)+

(0 0.000001095290250 0

)

Remarque 1 Dans R, le seul élément singulier est 0, de sorte que |x|mesure la distancedu réel x à la singularité. Dans Mn(R), les matrices de la forme ε I, où I désigne la ma-

trice identité, sont d’inverse1

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

des matrices, comme la matrice A+ δA ci-dessus, qui ne semblent pas particulièrementproches de 0 peuvent être non inversibles.

1.2.3 Mesurer la distance à la singularité

Une matrice est singulière lorsqu’elle n’est pas inversible. Il existe plusieurs façons decaractériser cela. A ∈Mn(R) est singulière si :

- son determinant est nul ; cela ne peut pas nous être d’une grande utilité, puisquepar exemple, la matrice 0.5 I100 qui est loin d’être singulière a un determinant à peuprès égal à 7.8886× 10−31,

- une de ses valeurs propres est nulle ; le calcul des valeurs propres n’est pas unproblème très simple, et cette caractérisation n’est pas utilisable en pratique

- son rang est strictement inférieur à n ; dans ce cas, son noyau n’est pas réduit à 0,et il existe un vecteur x non nul tel que Ax = 0.

Nous allons chercher à nous appuyer sur cette dernière caractérisation. Mais, il convientde réfléchir un peu si on veut le faire. Pour un vecteur x d’une grandeur donnée, mesurée

12

Page 13: Analyse numérique avec TP INSA Toulouse

par sa norme ‖x‖, le vecteur Ax pourra être d’une grandeur très variable. La remarque 1

nous laisse penser que lorsque‖Ax‖‖x‖

reste constant, l’inversion de la matrice n’est pas

toujours un problème numériquement difficile.

Nous pouvons alors associer à une matrice A donnée les deux nombres

a(A) = max‖x‖=1

‖Ax‖ = maxx 6=0

‖Ax‖‖x‖

r(A) = min‖x‖=1

‖Ax‖ = minx6=0

‖Ax‖‖x‖

(1.3)

Ces deux nombres s’appelleront coefficients d’agrandissement et de réduction de lamatrice A relativement à la norme considérée. Leurs deux expressions sont égales pardéfinition des normes..

L’ensemble des x ∈ R2 tels que ‖x‖2 = 1 est le cercle unité. Si A ∈ M2(R), l’imagedu cercle unité par A est une ellipse. La figure 1.2 montre ces images dans le cas de la

matrice M =

(0.5 10.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 réalisent l’agrandissement et la réduction de lamatrice M pour la norme euclidienne. Cette matrice n’est pas particulièrement proched’une matrice singulière, et l’ellipse n’a rien de vraiment particulier.

Par contre, on constate sur la partie gauche de cette figure que l’ellispe associée àla matrice A est très aplatie. On a vu que cette matrice est assez proche d’une matricesingulière.

Si une matrice n’est pas inversible, , on aura Au = 0 pour au moins 2 vecteurs uet −u du cercle et l’ellipse sera complètement aplatie. Mais, plus que l’agrandissementou la réduction, c’est le rapport de ces deux nombres qui caractérise l’aplatissement

de l’ellipse, et on peut penser à utiliser ce rapportr(M)

a(M)pour évaluer la distance d’une

matrice à la singularité. Ce rapport indique un changement de nature géométrique quiillustre la perte de rang caractéristique de la singularité ; on passe d’une surface à unsegment. Lorsque ε devient très petit, l’image du cercle unité par la matrice ε I reste uncercle, et il suffit de changer d’échelle pour retrouver la surface initiale.

13

Page 14: Analyse numérique avec TP INSA Toulouse

Remarque 2 L’utilisation de la norme euclidienne n’est pas indispensable. On peut aussibien utiliser une autre norme. La figure 1.3 montre les images de la boule unité pour lanorme ‖.‖∞, 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 d’une matrice

C’est plus précisément le conditionnement d’une matrice pour la résolution d’un sys-tème linéaire que l’on veut étudier. Soit à résoudre le système linéaire Ax = b. On sup-pose que la calcul de la solution est fait par un algorithme quelconque implanté sur unordinateur. Notons x = x+ δx la solution obtenue.

On va supposer que x + δx est la solution exacte dans Rn d’un problème perturbéA (x+ δx) = b + δb. On a ainsi choisi l’ensemble des perturbations admissibles, qui neportent que sur le second membre ; d’autres choix sont possibles.

Comme Ax = b et Aδx = δb, les définitions (1.3) nous fournissent :

‖b‖ 6 a(A) ‖x‖‖δb‖ > r(A) ‖δx‖

d’où l’on tire, si A est inversible

‖δx‖‖x‖

6a(A)

r(A)

‖δb‖‖b‖

(1.4)

On peut donc d’éfinir K(A) =a(A)

r(A), avec K(A) =∞ si A est singulière. C’est l’inverse

de la distance à la singularité de la matrice A.

14

Page 15: Analyse numérique avec TP INSA Toulouse

Conditionnement et normes matricielles

La notion de norme définie pour les vecteurs de RN s’étend aux matrices, en posant,

‖A‖ = max‖x‖=1

{‖Ax‖} (1.5)

ce qui permet de vérifier, pour tout x ∈ RN :

‖Ax‖ 6 ‖A‖ × ‖x‖ (1.6)

L’agrandissement a(A) n’est autre que ‖A‖. Par ailleurs, si la matrice A est inversible,elle définit une bijection sur Rn, de sorte que

r(A) = minx 6=0

‖Ax‖‖x‖

= miny 6=0

‖y‖‖A−1 y‖

=1

maxy 6=0

‖A−1 y‖‖y‖

=1

‖A−1‖.

On obtient alorsK(A) = ‖A ‖

∥∥A−1∥∥ (1.7)

‖δb‖‖b‖

mesure ici l’erreur inverse relative. K (A) = ‖A‖∥∥A−1∥∥ s’appelle conditionne-

ment de la matrice A, relativement à la norme choisie, pour la résolution des systèmeslinéaires.

Remarque 3 Les matricesA etA−1 jouent un rôle analogue dans (1.6). Le nombreK (A)est en fait aussi le nombre de conditionnement de A pour les produits matrice-vecteur !

On a considéré que la matrice A était fixée, et que seul le second membre b pouvaitêtre perturbé. On peut montrer que le conditionnement en fonction de perturbations dela matrice A est le même.

De façon générale, ce nombre K(A) sera tel que

‖∆x‖‖x‖

6 K(A)

(‖∆A‖‖A‖

+‖∆b‖‖b‖

)(1.8)

Essayons de vérifier la pertinence de ce nombre de conditionnement sur notre exemple.Nous pouvons utiliser la norme du maximum.

Pour x =

(x1x2

), on aura Ax =

(0.780x1 + 0.563x20.913x2 + 0.659x2

), de sorte

‖Ax‖∞ = max {|0.780x1 + 0.563x2|, |0.913x2 + 0.659x2|} .

15

Page 16: Analyse numérique avec TP INSA Toulouse

Si on impose max{|x1|, |x2|} = 1, le maximum de ‖Ax‖∞ sera atteint pour le vecteurx tel que x1 = x2 = 1, et il vaut ‖A‖∞ = 1.572.

Par contre la matrice A−1 est donnée par A−1 = 105 ×(

6.59 −5.63−9.13 7.80

), et par un

raisonnement analogue, ‖A−1‖∞ = 16.93 × 105. On a donc un conditionnement de lamatrice donné par K∞ = 2.661396× 106.

Appelons u la solution du système Au =

(1.3431.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 système est u '(

11

), mais u+ ∆u ' 106 ×

(1.7585−2.4362

).

L’inégalité (1.8) est bien vérifiée :

106 × 2.4362 6 2.661396× 106 × 1.077.

Remarque 4 Comme on l’a déjà vu, on préfère souvent travailler avec la norme eucli-dienne. On peut montrer que la norme matricielle associée est définie par

‖A‖2 =√λmax(AT A) (1.9)

où λmax(AT A) désigne la plus grande valeur propre de la matrice AT A.

1.3 Factorisation LU

1.3.1 Comment résoudre les systèmes linéaires ?

Les systèmes faciles à résoudre

Il existe des systèmes linéaires qui sont de résolution facile. Commençons par enexaminer la résolution.

16

Page 17: Analyse numérique avec TP INSA Toulouse

Systèmes diagonaux Si A est une matrice diagonale, A = (ai,j)16i,j6n avec ai,j = 0si i 6= j, le système Ax = b est immédiatement résolu en posant pour tout i, 1 6 i 6 n,

xi =biai,i

.

Le coût de cette résolution est c(n) = n opérations élémentaires.

Systèmes triangulaires Les systèmes de matrice triangulaire sont également de réso-lution facile. Examinons le cas de systèmes triangulaires supérieurs T x = b. La matriceT est telle que ti,j = 0 si i > j.

Prenons l’exemple du système 4 5 10 3 40 0 2

x1x2x3

=

412

. (1.10)

Ce genre de système se résoud par une méthode dite de substitution rétrograde oude remontée. On commence par calculer la dernière composante, on utlise sa valeur pourcalculer l’avant dernière, et on recommence selon le même principe jusqu’a la première.

On calcule successivement

x3 =2

2= 1

x2 =1− 4× 1

3= −1

x1 =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 d’opérations nécessaires à la résolution d’un systèmetriangulaire en fonction de la taille n du système :

- 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 produitT(k,k+1:n)*x(k+1:n)1 soustratcion et 1 division pourx(k) = (b(k) - T(k,k+1:n)*x(k+1:n))/T(k,k);

Cela fait donc 2 (n−k)+1 opérations, et comme k varie de 1 à n−1, n−k varie également

de 1 à n− 1 : on obtient 2(n− 1)n

2+ n− 1 = n2 − 1 opérations auxquelles on ajoute la

première division pour obtenir le coût c(n) = n2 opérations élémentaires.

17

Page 18: Analyse numérique avec TP INSA Toulouse

1.3.2 L’idée des méthodes directes

Transformer le système en un système diagonal, c’est diagonaliser A. Quand c’estpossible, c’est le problème de recherche des éléments propres de la matrice A, et c’estbeaucoup plus difficile que la résolution du système linéaire ! On ne peut pas espérers’en sortir de cette façon.

Par contre on peut espèrer transformer notre système en un système triangulaire. Enfait, on va remplacer la résolution de notre système par la résolution de deux systèmestriangulaires, à l’aide d’une factorisation de la matrice A de la forme :

A = LU

où L est une matrice triangulaire inférieure (Lower) et U une matrice triangulairesupérieure (Upper).

1.3.3 De l’élimination de Gauss à la factorisation LU

Elimination de Gauss

Soit à résoudre le système Ax = b, où la matrice A appartient à Mn(R). C’est unsystème de n équations, notées (Eq.1), . . . , (Eq.n), à n inconnues notées x1, . . . , xn, quisont les composantes du vecteur x.

Le principe de la méthode est d’éliminer les inconnues de proche en proche, en fai-sant disparaitre :

- l’inconnue x1 des équations (Eq.2) à (Eq.n),- l’inconnue x2 des équations (Eq.3) à (Eq.n),- ... et pour k variant de 1 à n, l’inconnue xk des équations (Eq.k + 1) à (Eq.n).Pour ce faire, on transforme à chaque étape le système en un système équivalent,

c’est-à-dire admettant exactement le même ensemble de solutions, au moyen d’unetransformation élémentaire :

- ajout d’un multiple d’une équation à une équation donnée : cela consiste par exempleà remplacer l’équation (Eq.i) par l’équation (Eq.i) + α (Eq.k)

- permutation de deux équations,A l’étape k, le coefficient a(k)k,k de l’inconnue xk s’appelle le pivot. On le note pk. Il

permet l’élimination de l’inconnue xk des équations (Eq.k + 1) à (Eq.n), en remplaçant

l’équation (Eq.i) par (Eq.i)−a(k)i,k

pk(Eq.k) pour k + 1 6 i 6 n.

On va d’abord s’intéresser à la méthode de Gauss sans permutation des équations.Le pivot intervient en dénominateur d’une fraction : il doit être non nul.

18

Page 19: Analyse numérique avec TP INSA Toulouse

Exemple

On considère le système2x1 +x2 +x3 = 16x1 +2x2 +x3 = −1−2x1 +2x2 +x3 = 7

⇐⇒

2 1 16 2 1−2 2 1

x1x2x3

=

1−17

(1.11)

On note A(1) = A et b(1) = b ces données initiales : ce système s’écrit donc A(1) x =b(1). On peut choisir comme pivot le coefficient p1 = 2 de x1 dans la première équation.On élimine x1 des équations (Eq.2) et (Eq.3) par la transformation élémentaire :

- (Eq.2) est remplacée par (Eq.2)− 6

p1(Eq.1) = (Eq.2)− 3 (Eq.1),

- (Eq.3) est remplacée par (Eq.3)− −2

p1(Eq.1) = (Eq.3) + (Eq.1).

On obtient le système équivalent :2x1 + x2 + x3 = 1

− x2 − 2x3 = −4+ 3x2 + 2x3 = 8

⇐⇒

2 1 10 −1 −20 3 2

x1x2x3

=

1−48

On note A(2) x = b(2) ce deuxième système, équivalent au premier. On peut choisir

comme pivot le coefficient p2 = −1 de x2 dans la deuxième équation. On élimine x2 del’équation (Eq.3) :

- (Eq.3) est remplacée par (Eq.3)− 3

p2(Eq.2) = (Eq.2) + 3 (Eq.2).

On obtient le système équivalent :2x1 + x2 + x3 = 1

− x2 − 2x3 = −4− 4x3 = −4

⇐⇒

2 1 10 −1 −20 0 −4

x1x2x3

=

1−4−4

Ce dernier système, A(3) x = b(3) est triangulaire supérieur. Il est inversible puisque

les éléments diagonaux de A(3), p1, p2 et p3 = −4 sont tous non nuls. On le résoud par

substitution rétrograde pour obtenir x =

−121

.

Ecriture matricielle des transformations élémentaires

A la première étape de l’exemple (1.11), la matrice A(1) =

2 1 16 2 1−2 2 1

est rem-

placée par la matrice A(2) =

2 1 10 −1 −20 3 2

. En termes de matrice, le fait de modifier

une équation correspond a la modification d’une ligne. On constate en effet, en utilisantla 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

Page 20: Analyse numérique avec TP INSA Toulouse

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) s’écrit : 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 03 0 0−1 0 0

A(1). (1.13)

de sorte que finalement, 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 simplifie en introduisant les vecteurs l1 = (0, 3, −1)T et e1 =(1, 0, 0)T , premier vecteur de la base canonique :

A(2) = (I − l1 eT1 )A(1) = E(1)A(1). (1.15)

De façon analogue, le passage de A(2) à A(3) =

2 1 10 −1 −20 0 −4

se fait selon

A(3) =

I − 0 0 0

0 0 00 −3 0

A(2) = (I − l2eT2 )A(2) = E(2)A(2),

où l2 = (0, 0, −3)T et e2 désigne le second vecteur de la base canonique.

Notons U = A(3) la matrice triangulaire supérieure obtenue à l’issue de cette étaped’élimination. Elle vérifie :

U = E(2)E(1)A. (1.16)

Les matrices E(1) et E(2) sont inversibles, selon

-(E(1)

)−1= L(1) = (I + l1 eT1 ) =

1 0 0−3 1 01 0 1

; on le vérifie en écrivant (I −

l1 eT1 ) (I + l1 eT1 ) = I − l1(eT1 l

1)eT1 = I, puisque

eT1 l1 = 1× 0 + 0× 3 + 0× (−1) = 0 ;

-(E(2)

)−1= L(2) = (I + l2 eT2 ) ; on le vérifie de la même façon en écrivant (I −

l2 eT2 ) (I + l2 eT2 ) = I − l2 (eT2 l2) eT2 = I, puisque

eT2 l2 = 0× 0 + 1× 0 + 0× (−3) = 0.

20

Page 21: Analyse numérique avec TP INSA Toulouse

En multipliant à gauche (1.16) par L(1) L(2), on obtient :

L(1) L(2) U = LU = A. (1.17)

La matrice L “s’assemble” sans calcul, selon

L =

1 0 03 1 0−1 0 1

1 0 00 1 00 −3 1

=

1 0 03 1 0−1 −3 1

(1.18)

Pour résoudre le système Ax = f , on procède ensuite en deux étapes :– l’étape de descente consiste à résoudre Ly = f , c’est-à-dire 1 0 0

3 1 0−1 −3 1

y1y2y3

=

1−17

,

dont la solution se calcule par substitutions progressives : y = (1,−4,−4)T ;– l’étape de remontée consiste à résoudre U x = y ; elle est identique à celle que l’on

a décrite dans le cadre de l’élimination puisque y = b(3).

Cas général

Dans l’élimination de Gauss pour le système Ax = f , avec A = A(1) ∈ Mn(R), lapremière étape s’écrit :

A(1) x = f (1) ⇔ A(2) x = f (2)

de telle façon que la matrice A(2) n’ait que des 0 sous l’élément diagonal a(2)1,1 de sapremière colonne.

En supposant que a1,1 = a(1)1,1 6= 0, la matrice A(2) se déduit de A(1) par les relations

suivantes :a(2)1,j = a

(1)1,j , ∀j, 1 6 j 6 n,

a(2)i,1 = 0, ∀i, 2 6 i 6 n,

a(2)i,j = a

(1)i,j − li,1 a

(1)1,j , ∀i,∀j, 2 6 i, j 6 n.

où les coefficients li,1 sont définis par li,1 =a(1)i,1

a(1)1,1

. La matrice A(2) s’interprète donc ici

aussi comme le produit A(2) = E(1)A(1), avec E(1) définie de la façon suivante :

E(1) =

1 0 · · · · · · 0

−l2,1 1. . .

...... 0

. . . . . ....

......

. . . 1 0−ln,1 0 · · · 0 1

.

On vérifie immédiatement que E(1) = (I − l1 eT1 ), e1 désignant le premier vecteur dela base canonique de Rn et l1 le vecteur (0, l2,1, . . . , ln,1)

T .

21

Page 22: Analyse numérique avec TP INSA Toulouse

La matrice s’écrit, 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 p2 = a(2)2,2 6= 0, on peut renouveler l’opération pour la matrice A(2)(2 : n, 2 : n)

qui appartient à Mn−1(R) au moyen d’une matrice E(2)(2 : n, 2 : n) construite de façonanalogue à E(1). On complète cette matrice E(2) pour en faire une matrice de Mn(R)telle que le produit à gauche par E(2) laisse invariantes le première ligne et et la premièrecolonne :

E(2) =

[1 , 0

0 , E(2)(2 : n, 2 : n)

]=(I − l2 eT2

),

avec e2 le second vecteur de la base canonique de Rn et l2 = (0, 0, l3,2, . . . , ln,2)T tel

que pour 3 6 i 6 n, li,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) ∈ Mn−2(R) : Si au-delà, les a

(k)k,k sont tous non nuls, on pourra

réitérer l’opération pour obtenir finalement :

E(n−1) · · ·E(2) E(1) A(1) = U.

La factorisation A = LU cherchée se déduit alors du lemme suivant :

Lemme 1 Soit E(k) la matrice définie pour 1 6 k 6 n − 1 par E(k) = I − lk eTk , aveclk = (l1,k, . . . , ln,k)

T telle que li,k = 0 si i 6 k, et ek le k-ième vecteur de la base canoniquede Rn. Alors,

(i) la matrice E(k) est inversible d’inverse L(k) = I + lk eTk ,(ii) le produit L = L(1) . . . L(n−1) “s’assemble” sans calculs de telle façon que

L(i, j) =

0 si i < j,1 si i = j,li,j si i > j

En effet, (I − lk eTk ) (I + lk eTk ) = I − lk (eTk lk) eTk et eTk l

k =

n∑i=k+1

δk,i li,k = 0.

D’autre part, (I + l1 eT1 ) . . . (I + ln−1 eTn−1) = I + l1 eT1 + . . . + ln−1 eTn−1 puisque lesproduits eTi l

j sont nuls dès que j > i.

Partant de E(n−1) . . . E(1)A = U , on obtient donc :

A = L(1) . . . L(n−1) U = LU.

22

Page 23: Analyse numérique avec TP INSA Toulouse

C’est la factorisation cherchée, avec L triangulaire inférieure d’éléments diagonaux

égaux à 1, et dont les élements sous-diagonaux sont les li,j =a(j)j,j

a(j)i,j

, 1 6 j < i 6 n, et U

triangulaire supérieure inversible puisque sa diagonale est constituée des pivots qui sonttous différents de 0.

Une condition nécessaire et suffisante :

On admettera le théorème suivant :

Théorème 2 Soit A = (ai,j)16i,j6n ∈ Mn(R) ; si pour tout k, 1 6 k 6 n, la sous-matriceprincipale Ak = (ai,j)16i,j6k de A est telle que det(Ak) 6= 0, il existe une matrice triangu-laire inférieure L, dont les éléments diagonaux sont égaux à 1, et une matrice triangulairesupérieure inversible U telles que A = LU . Cette factorisation est unique.

Cette condition nécessaire et suffisante n’est pas très satisfaisante : on ne peut pascalculer les déterminants mineurs principaux de la matrice d’un système linéaire avantde le résoudre !

Implantation (version élémentaire) :

Nous allons proposer un algorithme de cette factorisation sous la forme d’une fonctionMATLAB . Comme il s’agit d’une fonction, on peut “écraser” la matriceA qui lui est passéeen argument, car elle alors considérée comme une variable locale de la fonction.

Observons d’abord la première étape de la factorisation : la matrice A = A(1) esttransformée en A(2) = (I − l1 eT1 )A(1) = A(1) − l1 (eT1 A

(1)).

Le produit eT1 A(1)) est une matrice à une ligne (vecteur ligne) qui est égale à la pre-

mière ligne de A(1) : on a donc

A(2) = A(1) − l1A(1)(1, :) (1.19)

Le vecteur l1 = (0, l2,1, . . . , ln,1)T est tel que :

- la première ligne de A(2) sera égale à la première ligne de A(1),- les coefficients des lignes 2 à N de la première colonne de A(2) seront nuls. On a

donc besoin de ne modifier que la sous-matrice A(1)(2 : n, 2 : n) ; on peut disposerdes positions 2 à n de la première colonne de la matrice A(1) pour stocker lescomposantes non nulles de l1, c’est-à-dire les lj,1, pour 2 6 j 6 n.

- dès que les composantes du vecteur l1 sont calculées, on n’a donc plus à calculerque

A(2)(2 : n, 2 : n) = A(1)(2 : n, 2 : n)− l1(2 : n) A(1)(1, 2 : n) (1.20)

- si l’on stocke les lj,1 non nuls en utilisant les positions A(1)(2 : n, 1) inutiles pour lasuite, (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

Page 24: Analyse numérique avec TP INSA Toulouse

Le procédé que l’on à décrit va se répéter pour le passage de A(2) à A(3), et cettefois ce sont les positions A(2)(3 : n, 2) qui seront utilisées pour stocker les composantesnon nulles de l2 ; seule la sous-matrice A(2)(3 : n, 3 : n) sera modifiée par soustractiond’une matrice de rang 1, c’est-à-dire une matrice de la forme M = u vT où u et v sont desvecteurs. Et ce même principe sera mis en oeuvre jusqu’à obtention de la factorisation.

A l’issue de cette factorisation, la partie triangulaire supérieure de la matrice A seraoccupée par la matrice U , et sa partie triangulaire strictement inférieure par celle de L.

La fonction MATLAB ci-dessous réalise cette factorisation. Les commentaires quisuivent immédiatement la ligne de déclaration de la fonction en indiquent l’objet, le formatd’appel et la façon de l’utiliser.

function [L, U] = Gauss(A);% Gauss calcule la factorisation LU de la matrice A% par la methode d’elimination de Gauss.% L’appel 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) == 0error(’Matrice non factorisable ...’)

endIndices = 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) ;

endL = tril(A,-1) + eye(n);U = triu(A);

Coût de la factorisation

Pour chaque valeur de k, la variable Indices contient n − k valeurs ; on doit donceffectuer :

- n− k divisions pour le calcul de la colonne k de L,- (n−k)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 coût CF (n) de la factorisation s’obtient en sommant pour k variant de 1 à n− 1 :

CF (n) =1

2n(n− 1) +

2

3n(n− 1

2)(n− 1) = n(n− 1)

4n− 1

6.

On a donc CF (n) ∼ 2 n3

3opérations élémentaires pour l’étape de factorisation.

24

Page 25: Analyse numérique avec TP INSA Toulouse

Pour la résolution d’un système linéaire, on fait suivre cette étape de factorisation pardeux étapes de résolution, respectivement d’un système triangulaire inférieur de matriceL = tril(A) + eye(n) et supérieur de matrice U = triu(A) :{

Ly = f,U x = y.

Le coût de la résolution du système reste donc O(2 n3

3) opérations.

Retour à l’exemple

On peut observer sur la matrice A =

2 1 16 2 1−2 2 1

les différentes étapes de la

fonction ci-desssus ; par souci de lisibilité, nous imprimons en caractères gras les valeurscalculées de la matrice L et leur positionnement dans la matrice A :

- pour k = 1, la matrice A est remplacée par A =

2 1 13 −1 −2−1 −3 2

,

- pour k = 2, la matrice A est remplacée par A =

2 1 13 −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 réserve d’une permutation de ses lignes, toute matrice inversible est facto-risable. Formellement, cette permutation des lignes peut s’écrire comme le produit àgauche de cette matrice par une matrice de permutation.

Théorème 3 Si det(A) 6= 0, il existe une matrice P de permutation telle que P A soitfactorisable selon P A = LU .

Ce théorème exprime le fait que si A est inversible, on trouvera à chaque étape k de lafactorisation, 1 6 k 6 n− 1, au moins un coefficient a(k)i,k , k 6 i 6 n, non nul.

25

Page 26: Analyse numérique avec TP INSA Toulouse

Un exemple

Pour résoudre le système Ax = f suivant :x1 +x2 +x3 +x4 = 1x1 +x2 +3x3 +3x4 = 3x1 +x2 +2x3 +3x4 = 3x1 +3x2 +3x3 +3x4 = 4

⇐⇒

1 1 1 11 1 3 31 1 2 31 3 3 3

x1x2x3x4

=

1334

La première étape de l’élimination conduit au système équivalent :

x1 + x2 + x3 + x4 = 12x3 + 2x4 = 2x3 + 2x4 = 2

2x2 + 2x3 + 2x4 = 3

On constate que dans ce système, l’inconnue x2 est déjà éliminée des équations(Eq.2) et (Eq.3), c’est-à-dire que a(2)2,2 = a

(2)3,2 = 0. La poursuite du processus d’élimination

nécessite une permutation des équations (Eq.2) et (Eq.4) :

A(2) x = f (2) ⇐⇒ P2A(2) x = P2 f

(2) ⇐⇒

x1 + x2 + x3 + x4 = 1

2x2 + 2x3 + 2x4 = 3x3 + 2x4 = 2

2x3 + 2x4 = 2

La matrice P2 qui multiplie à gauche chaque membre du système d’équations est lamatrice d’une permutation élémentaire. On peut l’écrire

P2 =

1 0 0 00 0 0 10 0 1 00 1 0 0

et on vérifie immédiatement que

1 0 0 00 0 0 10 0 1 00 1 0 0

1 1 1 10 0 2 20 0 1 20 2 2 2

=

1 1 1 10 2 2 20 0 1 20 0 2 2

On poursuit l’élimination sans problème pour obtenirx1 + x2 + x3 + x4 = 1

2x2 + 2x3 + 2x4 = 3x3 + 2x4 = 2− 2x4 = −2

On a obtenu un système triangulaire inversible.

26

Page 27: Analyse numérique avec TP INSA Toulouse

Ecriture matricielle de la factorisation avec permutation

Le système triangulaire obtenu ci-dessus s’écrit U x = f (4), avec f (4) = (1, 3, 2, −2)T

et U =

1 1 1 10 2 2 20 0 1 20 0 0 −2

.

La matrice U de ce système est définie par :

E(3)E(2) P2E(1)A = U, (1.22)

avec, pour chaque k, 1 6 k 6 3, E(k) = I − lk eTk , et- l1 = (0, −1, −1, −1)T ,- l2 = (0, 0, 0, 0)T , puisque les coefficients a(2)3,2 et a(2)4,2 sont tous deux nuls,- l3 = (0, 0, 0, −2)T .La matrice P2 s’écrit également sous une forme P2 = I − uuT , avec u = e2 − e4

(c’est la différence des deux vecteurs de la base canonique correspondant aux indicesdes lignes à permuter) ! Elle est telle que P 2

2 = I (vérification immédiate). On peut alorsglisser P 2

2 à droite de E(1) dans les deux membres de (1.22) :

E(3)E(2) P2E(1) P2 P2A = U.

Le produit matriciel est associatif : on peut isoler les facteurs

P2E(1) P2 = P2 (I − l1 eT1 )P2 = P 2

2 − P2 l1 eT1 P2 = I − (P2 l

1) (eT1 P2),

et calculer :

- eT1 P2 = (1, 0, 0, 0)

1 0 0 00 0 0 10 0 1 00 1 0 0

= eT1 ,

- P2 l1 =

1 0 0 00 0 0 10 0 1 00 1 0 0

0l2,1l3,1l4,1

=

0l4,1l3,1l2,1

= l1

de sorte que finalement

E(3)E(2) E(1) P2A = U,

d’où l’on tire, de façon analogue à ce qu’on a vu précédemment, en notant P la matriceP2 :

P A = L(1) L(2) L(3) U = LU (1.23)

avec L = [l1, l2, l3, l4].

Pour représenter cette factorisation, il est inutile de construire la matrice P . Il suffitd’adjoindre à la matrice A un compteur de permutation sous forme d’une colonne sup-

27

Page 28: Analyse numérique avec TP INSA Toulouse

plémentaire, p, initialisée à l’ordre naturel :

(A | p) =

1 1 1 1 11 1 3 3 21 1 2 3 31 3 3 3 4

=⇒

1 1 1 1 11 0 2 2 21 0 1 2 31 2 2 2 4

=⇒

1 1 1 1 11 2 2 2 41 0 1 2 31 0 2 2 2

=⇒

1 1 1 1 11 2 2 2 41 0 1 2 31 0 2 −2 2

On vérifie en effet que

1 0 0 01 1 0 01 0 1 01 0 2 1

1 1 1 10 2 2 20 0 1 20 0 0 −2

=

1 1 1 11 3 3 31 1 2 31 1 3 3

= P A.

Le compteur de permutation p = (1, 4, 3, 2)T permet de retrouver la permutation deslignes que l’on doit effectuer pour résoudre le système P A = LU = P f .

Généralisation

Considérons à présent une matrice inversible A ∈ Mn(R). De même que ci-dessusà la seconde étape de la factorisation, si on rencontre un pivot nul à l’étape k, la permu-tation de la ligne k avec une ligne i > k telle que a

(k)i,k 6= 0 s’écrira Pk = I − uuT , avec

u = ek − ei.

Pour tout j < k, on aura

Pk E(j) Pk = I − Pk lj eTj Pk == I − lj eTj = E(j),

puisPk E

(k−1) . . . E(1) = (Pk E(k−1) Pk) (Pk . . . Pk) (Pk E

(1) Pk)Pk

= E(k−1) . . . E(1) Pk.

En introduisant des matrices Pk à chaque étape, avec éventuellement Pk = I lors-qu’aucune permutation n’est nécessaire, on obtiendra(

E(n−1) E(n−2) . . . E(1)

)(Pn−1 . . . P1) A = U,

puisP A = LU.

Stratégie de pivot partiel

La factorisation P A = LU est nécessaire lorsqu’on rencontre un pivot nul. Il se peutque l’on rencontre un pivot qui sans être nul est très petit. Dans ce cas, l’effet des erreursd’arrondi peut-être catastrophique.

28

Page 29: Analyse numérique avec TP INSA Toulouse

Voici par exemple quelques instructions MATLAB qui utlisent la fonction Gauss listéeprécédement, pour calculer la factorisation A = LU d’une matrice pour laquelle a1,1 esttrès 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 précision relative de l’arithmétique dans laquelleest implanté MATLAB. Ici, eps = 2.2204e-16. Pour une réalisation j’ai obtenu :

>> erreur = 0.1940

En divisant par un pivot très petit, on augmente le risque d’erreurs dues à l’éliminationde chiffres significatifs des mantisses.

En effet, si à l’étape k de la factorisation, le pivot a(k)k,k est très petit, les coefficients li,k,k 6 i 6 n seront en général très grand.

Les lignes de la matrice A(k+1) sont définies par l’expression MATLAB

A(i, k + 1 : n)− l(i, k) ∗ A(k, k + 1 : n);

Le premier terme sera négligeable, et ces lignes seront presque dépendantes, puis-qu’à peu près proportionnelles à A(k,k+1:n) ! En terme de méthode d’élimination,le système A(k+1) x = f (k+1) sera très sensible aux perturbations, puisque proche d’unsystème non inversible.

Pour limiter ce risque, on utilise en général une stratégie de recherche du pivot maxi-mal dans chaque colonne. A l’étape k, plutôt que de rechercher le premier coefficient nonnul parmi les a(k)i,k , i > k, on recherche l’indice im tel que

a(k)im,k

= maxk6i6n

{∣∣∣a(k)i,k ∣∣∣} .On permute ensuite les lignes k et im.

La fonction MATLAB ci-dessous met en oeuvre cette stratégie :

function [L, U, permute] = Gausspiv(A);

29

Page 30: Analyse numérique avec TP INSA Toulouse

% Gauss calcule la factorisation LU de la matrice% A avec strategie de pivot partiel.% L’appel 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) == 0error(’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) ;

endL = tril(A,-1) + eye(n);U = triu(A);

Cette stratégie est considérée comme suffisament stable par la plupart des biblio-thèques scientifiques ; c’est celle qui est généralement implantée, en particulier dansMATLAB par la fonction lu.

Un exemple

On peut suivre les étapes de l’exécution de la fonction précédente sur la matrice

[ A | p ] =

1 2 4 17 13 6 −12 3 22 3 −3 2 30 2 −2 6 4

30

Page 31: Analyse numérique avec TP INSA Toulouse

k = 1 :

3 6 −12 3 21 2 4 17 12 3 −3 2 30 2 −2 6 4

=⇒

3 6 −12 3 2

1/3 0 8 16 12/3 −1 5 0 3

0 2 −2 6 4

k = 2 :

3 6 −12 3 20 2 −2 6 4

2/3 −1 5 0 31/3 0 8 16 1

=⇒

3 6 −12 3 20 2 −2 6 4

2/3 −1/2 4 3 31/3 0 8 16 1

k = 3 :

3 6 −12 3 20 2 −2 6 4

1/3 0 8 16 12/3 −1/2 4 3 3

=⇒

3 6 −12 3 20 2 −2 6 4

1/3 0 8 16 12/3 −1/2 1/2 −5 3

On vérifie que

1 0 0 00 1 0 0

1/3 0 1 02/3 −1/2 1/2 1

3 6 −12 30 2 −2 60 0 8 160 0 0 −5

=

3 6 −12 30 2 −2 61 2 4 172 3 −3 2

= P A.

La matrice P A ne se calcule pas par un produit matriciel. A l’issue de l’éxécution decet algorithme, on a p = (2, 4, 1, 3)T et P A = A(p, :).

Stratégie de pivot total

Les systèmes qui la rende indispensable sont très rares , et elle n’est que rarementimplantée. La factorisation peut alors s’écrire :

P AQ = LU

La matrice Q est ici également une matrice de permutation ; son effet est de permuter lescolonnes de A. Il faut alors conserver la mémoire de cette permutation pour replacer lesinconnues du système dans le bon ordre.

Unicité de la factorisation

On suppose que la matrice A est ”factorisable” selon P A = LU , les éléments dia-gonaux de L étant tous égaux à 1. Supposant que l’on puisse former deux factorisationsdifférentes, on écrit :

P A = L1 U1 = L2 U2.

On peut alors former :M = L−12 L1 = U2U

−11

L−12 L1 est triangulaire inférieure de diagonale unité, et U2U−11 est triangulaire supé-

rieure : toutes deux sont égales à l’identité.

31

Page 32: Analyse numérique avec TP INSA Toulouse

Factorisation LDR

Il suffit d’écrire :

u1,1. . . ui,j

. . .

0 . . .un,n

=

u1,1. . . 0

. . .

0 . . .un,n

1. . . ui,j

ui,i. . .

0 . . .1

pour obtenir U = DR

1.4 Matrices symétriques définies positives

1.4.1 Matrices symétriques définies positives

Parmi les problèmes qui conduisent à un système linéaire où la matrice est symé-trique, les plus intéressants sont ceux pour lesquels on n’a pas besoin de stratégie depivot ; c’est le cas lorsque la matrice est symétrique définie positive.

1.4.2 Factorisation de Choleski

Théorème 4 Une condition nécessaire et suffisante pour que A soit symétrique définiepositive est qu’il existe B, triangulaire inférieure inversible, unique si ses éléments diago-naux sont choisis positifs, telle que A = BBT .

On vérifie sans problème la condition suffisante : si A = BBT , alors xT Ax =

xT BBT x =∥∥BT x

∥∥2 > 0 si x 6= 0.

Pour la condition nécessaire, on raisonne par récurrence en vérifiant que le théorèmeest vrai pour n = 1, puisque a ∈ Rn n’est strictement positive que si et seulement si ilexiste b > 0 tel que b2 = a, et en l’occurence, b =

√a.

On suppose alors la condition vérifiée jusqu’à l’ordre n − 1, et on écrit par blocs lamatrice A selon :

A =

(An−1 aaT m2

)

où An−1 ∈Mn−1(R) (sous-matrice principale de A) est également symétrique définiepositive, a ∈ Rn−1 et an,n = m2 est strictement positif.

On cherche B de la forme :

32

Page 33: Analyse numérique avec TP INSA Toulouse

B =

(Bn−1 0bT bn,n

)

telle que :

BBT =

(Bn−1 0bT bn,n

)(BTn−1 b0 bn,n

)= A

c’est-à-dire :

(Bn−1B

Tn−1 Bn−1b

bTBTn−1 bT b+ b2n,n

)=

(An−1 aaT m2

)

Par hypothèse de récurrence, on peut trouver Bn−1 triangulaire inférieure inversibletelle que An−1 = Bn−1B

Tn−1, et le vecteur b ∈ Rn−1 est solution du système inversible

Bn−1b = a.

Le seul problème est donc le calcul de bn,n, qui n’est possible que si m2 − bT b > 0.

m2 − bT b = m2 −(B−1n−1 a

)T (B−1n−1 a

)= m2 − aT A−1n−1 a > 0

En effet, A est symétrique définie positive : en choisissant le vecteur X qui s’écrit par

blocs X =

(A−1n−1 a−1

), avec A−1n−1 ∈Mn−1(R) on vérifie que XT AX = m2− aT A−1n−1 a.

1.4.3 Algorithme

Nous pouvons déduire cet algorithme de la démonstration du théorème 4 : le rai-sonnement par récurrence, dans cette démonstration, permet d’affirmer que si Ak =(ai,j)16i,j6k désigne la sous-matrice principale de A, et Bk celle de B, alors Ak = Bk B

Tk .

Le passage de Bk−1 à Bk se fait en deux étapes :– calcul de bT = B(k, 1 : k− 1) en résolvant le système triangulaire inférieur Bk−1 b =a, avec a = A(1 : k− 1, k) ;

– calcul de bk, k =√ak,k − bT b.

L’algorithme de factorisation, peut donc s’écrire, en langage MATLAB, et dans uneforme qui n’écrase 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 inférieur :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

Page 34: Analyse numérique avec TP INSA Toulouse

% Calcul de l’element diagonalB(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 matricesymétrique définie positive A selon A = HT H avec H triangulaire supérieure. C’estgénéralement le cas dans la littérature anglo-saxonne, et c’est en particulier l’implantationde la fonction chol de MATLAB.

Complexité

On peut s’aider du programme MATLAB ci-dessus pour calculer le coût de la facto-risation. Pour chaque valeur de k comprise entre 2 et n, on effectue, sans compter lesextractions de racines carrées :

- une résolution de système triangulaire de taille k − 1, soit (k − 1)2 opérations élé-mentaires,

- 2 (k − 1) opérations élémentaires pour le calcul de l’élément diagonal.Le coût de la factorisation est donc

C(n) =n−1∑l=1

l2 + 2n−1∑l=1

l,

=n (n− 1) (2n− 1)

6+ n (n− 1),

=n (n− 1) (2n+ 5)

6,

auquel s’ajoutent n calculs de racines.

34

Page 35: Analyse numérique avec TP INSA Toulouse

Chapitre 2

Equations et Systèmes Non Linéaires

Dans le cas général, on ne peut pas espérer résoudre une équation ou un systèmed’équations non linéaires par une formule directe : ça n’est possible que pour quelqueséquations algébriques, comme par exemple les équations du second degré.

La formule qui donnne les deux racines des équations du second degré est connuedepuis très longtemps ; elle a été retrouvée sur des tablettes babyloniennes datées desenvirons de 1500 avant notre ère. Pour les équations de degré 3 la solution a été établiepar l’italien Tartaglia en 1535, mais publiée en 1545 par Jérôme Cardan, qui par ailleursa laissé son nom à un système de transmission cher aux automobilistes. Pour le degré 4,c’est encore un italien, dont le nom sonne de façon plaisante aux oreilles des amateursd’automobiles qui a établi la méthode (Ludovico Ferrari en 1565). Ces formules sontexactes si l’on considère que l’extraction d’une racine est une opération exacte. Et on saitdepuis Niels Abel et Evariste Galois que l’on ne peut pas étendre ce type de formules aucalcul des racines d’un polynôme quelconque de degré supérieur.

Mais si les calculettes nous fournissent immédiatement la valeur α =√a pour un réel

a positif, cette opération est en fait la résolution de l’équation non linèaire x2 − a = 0, ets’obtient en calculant de proche en proche les itérés d’une suite qui tend vers α.

De façon plus générale, on peut être amené à rechercher une racine réelle d’uneéquation F (x) = 0, où F est une fonction quelconque. On devra construire une suite(xk)k∈N qui converge vers une solution du problème. Il est important de remarquer quel’on parle ici d’une solution : on n’a généralement pas unicité de solution, et il arrive quel’on en cherche plusieurs, ou qu’on les cherche toutes.

Il faudra alors :

1. localiser la ou les racines que l’on veut calculer,

2. s’assurer que la suite (xk) converge vers une limite r telle que F (r) = 0,

3. prévoir un test d’arrêt des calculs, et estimer la précision qu’il garantit,

4. éventuellement, savoir comparer différentes méthodes.

35

Page 36: Analyse numérique avec TP INSA Toulouse

2.1 Heron d’Alexandrie et les racines carrées

Egalement appelé Heron l’ancien, il vécut au premier siècle de notre ère et fut undes grands mécaniciens de l’antiquité ; il inventa diverses machines et instruments demesure comme l’odomètre permettant de mesurer les distances parcourues en comptantle nombres de tours d’une roue, et dont le principe est encore utilisé par les compteurskilomètriques des bicyclettes.

L’algorithme de calcul des racines carrées qu’on lui atribue était en fait déja connudes Babyloniens.

2.1.1 La methode de Héron :

Approche pragmatique :

Soit a un nombre positif dont on veut calculer la racine carrée α =√a ; α est la

longueur du côté d’un carré dont l’aire est a. On va chercher à construire un tel carréen partant d’un rectangle, qu’on va peu à peu transformer pour le faire ressembler à uncarré. Si l’on considère une valeur x0 donnée comme une estimation grossière de α, onconstruit d’abord un rectangle R d’aire a ayant un côté de longueur L = x0 et un secondcôté égal à l =

a

L=

a

x0.

Pour construire un nouveau rectangle qui ressemble plus à un carré, il est raisonnablede choisir pour longueur d’un côté la moyenne des longueurs des côtés du rectangle

précédent. Cette longueur sera L = x1 =1

2(x0+

a

x0). Le second côté aura pour longueur

l =a

L=

a

x1. Et l’on va continuer jusqu’à ce que notre appareil de mesure ne nous

permette plus de distinguer les longueurs des deux côtés. La figure ci-dessous nousmontre trois étapes de ce procédé :

Rectangle initial

x0 = 160

Première réduction

x1 = 105

x2 = 88.3049

Deuxième réduction

x3 = 89.4354

Troisème réduction

Sur cet exemple, nous cherchons à calculer α =√

8000. La valeur initiale est x0 = 160.Le rectangle initial a pour côtés 160 et 50.

36

Page 37: Analyse numérique avec TP INSA Toulouse

Pour construire un rectangle qui ressemble plus à un carré, on le remplace par le

rectangle dont un côté est la moyenne des deux précédents, c’est-à-dire x1 =1

2(x0 +

a

x0) = 105 de sorte que l’autre côté a pour longueur

8000

105= 76.1905.

On va ensuite réitérer cette démarche en appliquant la formule

xk+1 =1

2(xk +

a

xk) (2.1)

xka

xk

160.00000000000000 50.00000000000000105.00000000000000 76.1904761904761990.59523809523810 88.3048620236530989.45005005944560 89.4353887413529789.44271940039928 89.4427187995838989.44271909999159 89.44271909999158

On a obtenu la racine cherchée “à la précision machine”. Les chiffres corrects sontsoulignés, et l’on constate que dès que l’on a obtenu 3 chiffres corrects (pour x3), laconvergence devient très rapide : 8 chiffres pour x4 et 15 pour x5 !

Le principe des approximations successives

On peut regarder cet algorithme d’un point de vue légèrement différent. Partant del’équation F (x) = x2 − a = 0, qu’on écrit de façon équivalente x2 = a ou x =

a

x, on

obtient successivement :x2 = ax2 + a = 2 a1

2(x2 + a) = a

1

2(x+

a

x) =

a

x= x

On a remplacé l’équation F (x) = 0 par une équation équivallente f(x) = x, avec ici

f(x) =1

2

(x+

a

x

), qui permet de retrouver la définition (2.1) de la méthode de Heron :{

x0 ∈ R, point de départ des itérationsxk+1 = f(xk), k > 0.

Ces deux relations définissent les itérations de la méthode. C’est un exemple deméthode de point fixe : la limite α =

√a de la suite ainsi définie par récurrence est

telle que α = f(α).

37

Page 38: Analyse numérique avec TP INSA Toulouse

Ces deux relations restent imprécises sur deux points fondamentaux :- le choix de x0,- le critère à vérifier pour arrêter les itérations : il n’est pas question de continuer

indéfiniment les calculs.On va voir que pour notre algorithme, ces deux points peuvent être élucidés facilement.

Choix d’une valeur initiale

Notre choix de x0 était assez empirique, et pour tout dire pas très heureux : le premierrectangle est un peu trop allongé. On peut essayer de rechercher une meilleure valeurpour x0

Pour cela, on va écrire a sous la forme a = m × 4p, avec1

46 m 6 1. Attention, m

n’est pas tout à fait une mantisse car il est écrit en base 10. On aura alors α =√m× 2p,

et 0.5 6√m 6 1.

Il nous suffit maintenant de savoir initialiser les itérations pour rechercher√m. La

figure suivante montre que le courbes représentant s(x) =√x et la droite d’équation

y =1 + 2x

3qui passe par les points

(1

4,

1

2

)et (1, 1) sont assez proches.

0 0.5 1 1.50

0.2

0.4

0.6

0.8

1

1.2

1.4Initialisation de l’algorithme de Heron sur [0.25, 1]

m

On va donc choisir d’initialiser la recherche de√m en utilisant la valeur x0 =

1 + 2m

3.

Auparvant, il vaut trouver la valeur de p.

On remarque, mais l’ordinateur le fera très facilement pour nous, que

1

46

8000

47= 0.48828125 6 1,

38

Page 39: Analyse numérique avec TP INSA Toulouse

de sorte que l’on choisira cette valeur pour m, avec p = 7. On obtient alors :

xim

xi

0.65885416666667 0.741106719367590.69998044301713 0.697564131785400.69877228740126 0.698770198537670.69877124296946 0.698771242967900.69877124296868 0.69877124296868

On retrouve√a ' 0.69877124296868× 27 = 89.44271909999159.

Arrêt des itérations

Supposons calculé un itéré xi de notre suite, et évaluons :

xk+1 −√m =

1

2(xk +

m

xk)−√m =

1

2

x2k − 2xk√m+ (

√m)2

(√xk)2

=1

2

(xk −

√m

√xk

)2

de sorte que si ek = xk −√m désigne l’erreur après k itérations, on aura :

ek+1 =1

2xke2k

Mais si xk−1 ∈ [0.5, 1], alors xk ∈ [0.5, 1], de sorte que 2xk > 1 et :

ek+1 6 e2k.

Par ailleurs, la fonction e(x) =√x− 1 + 2x

3a sa dérivée e′(x) =

1

2√x− 2

3qui s’annule

pour x =9

16. C’est donc pour m =

9

16que l’erreur e0 sera maximale. Ce maximum de

l’erreur est d’environ 0.041666 < 0.05

On en déduit que e4 6 e23 6 e42 6 e

81 6 (0.05)16 < 2× 10−21, de sorte que 4 itérations

suffisent à atteindre une précision meilleure que l’unité d’arrondi u.

2.2 Résolution d’une équation non linéaire

Au long de cette section, nous considérons la fonction

F (x) = 0.01 expx+ 10 cosx− 3x.

39

Page 40: Analyse numérique avec TP INSA Toulouse

2.2.1 Localisation des racines

La recherche d’une solution de l’équation F (x) = 0 ne peut se faire que par uneméthode itérative. On verra que l’on peut utiliser deux types de méthodes. Certainestravaillent sur des intervalles contenant la racine cherchée, d’autres avec une seule valeur(la méthode de Heron pour la recherche d’une racine carrée).

La méthode doit donc être alimentée par une ou deux valeurs initiales et à priori, cesvaleurs doivent être assez proche de la racine cherchée

Représentation graphique

Une première façon de choisir une valeur initiale consiste à faire une représentationgraphique. Voici une représentation graphique de F sur l’intervalle [−1, 10] :

0 2 4 6 8 10−50

0

50

100

150

200Graphe de la fonction F(x)= 0.01 exp(x) + 10cos(x) −3x

On constate au vu de cette figure que notre fonction possède deux racines :- la première est dans l’intervalle [0, 2], plutôt vers le milieu,- la seconde est dans l’intervalle [7, 8], plus près de 8.Le tracé d’une telle figure est particulièrement facile avec le logiciel MATLAB . Voici

les commandes qu’il 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 figure sera à peu près la courbe représentée ci-dessus (sans le titre, l’axe des y etles flè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 xi =−1 + i× 0.01 compris entre -1 et 10.

- y =0.01*exp(x) + 10*cos(x) + 3*x; construit un vecteur ligne contenantles valeurs yi = F (xi) ; on remarquera que MATLAB calcule les valeurs des fonc-tions usuelles pour chaque élément d’un tableau qui lui est passé en argument.

40

Page 41: Analyse numérique avec TP INSA Toulouse

- z = zeros(size(x)); crée un vecteur de même taille que x contenant deszéros ; ce vecteur sera utilisé pour tracer l’axe des absisses.

- plot(x,y,x,z); crée une figure contenant deux courbes ; la première relie lespoints (xi, yi) et la seconde les points (xi, 0) (axe des x).

Balayage systèmatique

Faute de possibilité de tracer facilement un graphe, on peut balayer systématiquementl’intervalle qui nous intèresse pour rechercher les éventuels changements de signe de F .

Pour notre exemple, on peut calculer les valeurs de F (x) pour les valeurs entières dex. Les valeurs sont, dans l’ordre 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 qu’entre 7 et 8.

Arguments physiques

Pour des problèmes réels, certaines considérations physiques vous permettront desituer grossièrement les racines qui vous intéressent. C’est d’ailleurs la première reflexionqu’il faut faire ; elle permet de délimiter l’intervalle d’étude de la fonction, avant même lareprésentation graphique.

2.2.2 Méthode de dichotomie

Principe

Si la fonction continue F change de signe sur un intervalle [a, b], c’est-à-dire siF (a)F (b) < 0, alors F s’annule au moins une fois sur cet intervalle. Cette remarquepeut être utilisée pour former une suite d’intervalles de plus en plus petits qui contiennentune racine F .

En notant a0, b0 les bornes de cet intervalle et m =a0 + b0

2le milieu de cet intervalle,

on aura deux possibilités :- soit F (a0)F (m) 6 0, et dans ce cas nous aurons une racine dans [a0, m] ; on posea1 = a0 et b1 = m ;

- soit F (b0)F (m) 6 0, et dans ce cas nous aurons une racine dans [m, b0] ; on posea1 = m et b1 = b0.

Dans les deux cas, le nouvel intervalle [a1, b1] est de longueur b1 − a1 =b0 − a0

2. On

recommence le même processus avec ce nouvel intervalle.

On construit ainsi une suite d’intervalles [ak, bk] qui sont emboîtés et contiennentune racine de F . On arrêtera ces itérations lorsque la longueur |ak − bk| de l’intervallesera inférieure à une tolérance choisie à l’avance. On prendra pour racine la valeur r =ak + bk

2.

41

Page 42: Analyse numérique avec TP INSA Toulouse

En ce qui concerne la mise en oeuvre, on trouvera sur la table 2.1 les résultats obte-nus pour notre fonction F , en partant des intervalles [1, 2] et [7, 8].

k ak bk ak bk

0 1.000000000 2.000000000 7.000000000 8.0000000001 1.000000000 1.500000000 7.500000000 8.0000000002 1.000000000 1.250000000 7.500000000 7.7500000003 1.125000000 1.250000000 7.625000000 7.7500000004 1.187500000 1.250000000 7.625000000 7.6875000005 1.187500000 1.218750000 7.625000000 7.6562500006 1.203125000 1.218750000 7.625000000 7.6406250007 1.203125000 1.210937500 7.632812500 7.6406250008 1.203125000 1.207031250 7.636718750 7.6406250009 1.203125000 1.205078125 7.638671875 7.64062500010 1.204101562 1.205078125 7.639648437 7.64062500011 1.204589843 1.205078125 7.639648437 7.64013671812 1.204589843 1.204833984 7.639648437 7.63989257813 1.204589843 1.204711914 7.639770507 7.63989257814 1.204589843 1.204650878 7.639831542 7.639892578

TABLE 2.1 – Résultats obtenus pour la fonction F en partant des intervalles [1, 2] et [7, 8].

Les racines calculées sont alors respectivement r1 = 1.204620361 et r2 = 7.639862060.

Convergence et arrêt des itérations

Sur les deux racines calculées précédement, la précision garantie est la même : eneffet la longueur des derniers intervalles calculés est, dans un cas 6.1035× 10−5 et dansl’autre 6.1036× 10−5.

Cette précision peut être prévue à l’avance. A l’initialisation, l’intervalle [a0, b0] a pour

longueur 1 ; à la première itération, sa longueur sera1

2, et à la k-ième, elle sera

1

2k.

Si l’on souhaite une précision de 10−4, on cherchera k tel que1

2k6 10−4, soit encore

k ln 2 > 4 ln 10, c’est à dire k > 4ln 10

ln 2' 13.2877. On retrouve la valeur k = 14.

En fait, la précision effectivement atteinte est 0.5× 10−4, puisque la racine est choisieau milieu du dernier intervalle.

Ces remarques se généralisent, et peuvent s’énoncer de la façon suivante :

Théorème 5 Si r désigne une racine de l’équation F (x) = 0 contenue dans l’intervalle[a0, b0]. La méthode de dichotomie appliquée à la recherche de cette racine est telle que :

i) la racine approchée rk calculée à l’itération k vérifie |rk − r| 6|a0 − b0|

2k+1.

ii) le nombre kε d’itérations nécessaire pour atteindre une précision ε est tel que kε >

ln|a0 − b0|

ε− 1.

42

Page 43: Analyse numérique avec TP INSA Toulouse

La borne de l’erreur est divisée par 2 à chaque itération. Lorsqu’une méthode itérativeest telle qu’il existe une constante c < 1 pour laquelle |rk+1− r| 6 c |rk − r|, on dit qu’elleconverge linéairement.

2.2.3 La méthode de Newton

Principe

Supposons maintenant que comme précédement, une représentation graphique nousait indiqué que la valeur x0 = 8 est proche d’une racine. Un développement de Taylor àl’ordre 1 en h au point x0 s’écrit :

F (x0 + h) = F (x0) + hF ′(x0) + h ε(h) (2.2)

La racine cherchée peut s’écrire r = x0 + h pour un h inconnu qui sera tel que :

F (x0) + hF ′(x0) + h ε(h) = 0 (2.3)

Comme h est assez petit, ε(h) sera encore plus petit ; on va négliger le terme h ε(h)et forcer l’égalité à 0 en posant

F (x0) + h1 F′(x0) = 0 (2.4)

qui fournit h1 = − F (x0)

F ′(x0).

On aura ainsi défini le premier itéré d’une nouvelle méthode en posant

x1 = x0 −F (x0)

F ′(x0).

Par ailleurs, on sait que la tangente à la courbe représentant y = F (x) au point x0 apour équation

y = F (x0) + (x− x0)F ′(x0) (2.5)

On remarque alors que cette tangente coupe l’axe des x au point x1. le choix de x1est donc la solution d’un modèle linéaire de notre problème au voisinage de x0 :

Courbes représentant F et sa dérivée au point x0

(x0, F(x

0)

(x0−F(x

0)/F’(x

0), 0)

43

Page 44: Analyse numérique avec TP INSA Toulouse

0 5 10 15 20 25 30 35 40 45 5010

−16

10−14

10−12

10−10

10−8

10−6

10−4

10−2

100

k

|xk−

r|

Comparaison des erreurs pour les deux méthodes

Newtone

n(k)

Dichotomiee

d(k)

FIGURE 2.1 – Erreur de convergence pour la dichotomie (ed(k)) et pour la méthode deNewton (en(k)).

Mise en oeuvre

La méthode de Newton va être définie en itérant cette démarche. L’algorithme consistedonc, partant de x0 voisin d’une racine, à calculer pour k > 0 :

xk+1 = xk −F (xk)

F ′(xk)(2.6)

Partant respectivement des valeurs x0 = 2 et x0 = 8, nous obtenons les valeursprésentées sur la table 2.2.

k xk xk

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 méthode de Newton en partant respectivement des va-leurs x0 = 2 et x0 = 8.

On constate que la suite a convergé, dans un cas à la quatrième itération, et dansl’autre à la cinquième ! La méthode de Newton est beaucoup plus rapide que la précé-dente. On peut aussi le voir en regardant les courbes représentant l’évolution de l’erreurpour chaque méthode dans la recherche de la racine.

On y remarque que l’erreur pour chacune de ces méthodes est représentée par unecourbe sur la figure 2.1 :

44

Page 45: Analyse numérique avec TP INSA Toulouse

0 1 2 3 4 5 6 7 810

−12

10−10

10−8

10−6

10−4

10−2

100

k

|xk−

r|

Méthodes de Newton et de la sécante

Newtone

n(k)

Sécantee

s(k)

FIGURE 2.2 – Comparaison entre la méthode de Newton et la méthode de la sécante.

- pour la méthode de Newton, c’est la courbe représentant en(k) = (1

2)2k,

- pour la méthode de dichotomie, c’est la courbe représentant ed(k) = (1

2)k.

Pour la méthode de dichotomie, on retrouve le principe de la convergence linéaire : àchaque itération, l’erreur est divisée par 2. Pour la méthode de Newton, c’est le principe

observé pour la méthode de Heron que l’on retrouve : en effet, ici |x0−r| '1

2, et au-delà,

pour k > 0, la relation |xk+1 − r| ' |xk − r|2 entraine donc

|xk+1 − r| '(|xk−1 − r|2

)2,

qui permet, en remontant jusqu’à k = 0, de retrouver

|xk − r| ' (1

2)2k.

On dit qu’il y a convergence quadratique lorsque la méthode itérative pour calculer laracine r est telle que pour tout k et pour un c < 1, |xk+1 − r| 6 c |xk − r|2.

Remarque 6 Il ne faut pas s’étonner de retrouver ici une propriété de la méthode deHeron. En effet, si l’on veut appliquer la méthode de Newton à la fonction F (x) = x2 − 2,dont la dérivée est F ′(x) = 2x, les itérations s’écrivent

xk+1 = xk −x2k − 2

2xk=xk2

+1

xk=

1

2

(xk +

2

xk

).

La méthode de Heron est une application particulière de la méthode de Newton.

On peut penser que la méthode de Newton est préférable à la méthode de dichotomie,cependant pour notre exemple,

- partant de x0 = 3, on converge, assez vite d’ailleurs puisque c’est en 6 itérations,mais vers une racine indésirable r = −2.35581727259318 qui est en dehors del’intervalle qui nous intéresse ;

- partant de x0 = 30, on converge bien vers r = 7.63988009695147, mais la conver-gence est très lente : il faut 29 itérations. Il est vrai que ce choix d’initialisation estun peu absurde puisque F (30) ' 1011.

45

Page 46: Analyse numérique avec TP INSA Toulouse

Combiner deux méthodes

La méthode de Newton est incontestablement la meilleure lorsqu’on est assez prochede la racine recherchée. “Assez proche” dépend de la fonction F . On peut le caractériserlorsqu’on connait bien les dérivées première et seconde de F au voisinage de la racine.En général, cette caractérisation reste théorique et n’a que peu d’intérèt dans les casréels.

On peut combiner les deux méthodes de facon pragmatique. A l’initialisation, on dis-pose d’un intervalle [a0, b0] tel que F (a0)F (b0) < 0. On choisit une des bornes a0 ou b0pour x0. On calcule x1 selon la méthode de Newton.

- Si x1 /∈ [a0, b0], on le rejette et on effectue une itération de dichotomie pour trouver[a1, b1].

- Si x1 ∈ [a0, b0], alors :* Si F (x1)F (a0) < 0, on pose a1 = a0 et b1 = x1.* Si F (x1)F (b0) < 0, on pose a1 = x1 et b1 = b0.

- On itère en partant de l’intervalle [a1, b1].

Quand on veut éviter les dérivées

Un autre inconvénient de la méthode de Newton est que parfois les dérivées de Fsont difficiles à calculer.

On va alors se rappeler que l’on peut approcher une dérivée par une formule dedifférences finies.

Supposons calculés les itérés jusqu’à l’étape k. La méthode de Newton demande de

calculer xk+1 = xk −F (xk)

F ′(xk).

L’idée de la méthode de la sécante consiste à remplacer F ′(xk) par

dk =F (xk)− F (xk−1)

xk − xk−1.

Cette méthode nécessite deux valeurs pour être initialisée. Partant de x0, on calculera

un d0 en posant, pour un h convenablement choisi d0 =F (x0 + h)− F (x0)

h.

La courbe montrée sur la figure 2.2.3 compare la méthode de Newton à celle de lasécante, initialisée en choisissant h = −0.1 pour x0 = 8.

Sur cette figure, la courbe représentant es(k) donne une idée de la convergence de

la méthode de la sécante.Les valeurs es(k) sont définies par es(k) = (1

2)dk, avec d =

1 +√

5

2.

Cette convergence n’est pas trop mauvaise par rapport à celle de la méthode deNewton.

46

Page 47: Analyse numérique avec TP INSA Toulouse

Chapitre 3

Equations Différentielles Ordinaires

3.1 Equations Différentielles

3.1.1 Différents types de problèmes différentiels

Les équations différentielles constituent, avec les équations aux dérivées partielles,l’outil de base pour la description des modèles mathémathiques de phénomènes rencon-trés dans la nature. Le terme d’équations différentielles ordinaires est employé pourdésigner les équations différentielles qui peuvent se mettre sous la forme

y(p)(t) = f(t, y(t), . . . , y(p−1)(t)) (3.1)

par opposition à celles qui s’expriment seulement de façon implicite,

f(t, y(t), y′(t), . . . , y(p)(t)) = 0.

L’équation (3.1) est d’ordre p ; elle peut admettre une solution générale, mais il fautajouter p conditions pour espérer une solution unique.

Un problème différentiel sera toujours constitué d’équation(s) et de condition(s).

Plus que l’ordre de l’équation, c’est la nature des conditions qui caractérise le type deproblème.

- Pour des équations ou des systèmes du premier ordre, la condition fixe la valeuren un point de la solution. On peut avoir un problème à valeur initiale :{

y′(t) = f(t, y(t)) ; t ∈ [0, T ], y ∈ Rn,y(0) = α ∈ Rn. (3.2)

- Les problèmes du second ordre peuvent être des problèmes aux limites commepar exemple : {

y′′(x) = f(x, y(x), y′(x)) ; x ∈ [a, b],y(a) = α ; y(b) = β.

(3.3)

- Les problèmes du second ordre, ou d’ordre supérieur peuvent être également desproblèmes à valeur(s) initiale(s) ; on les transforme alors en problèmes d’ordre 1 de

47

Page 48: Analyse numérique avec TP INSA Toulouse

taille supérieure. Partant d’une équation différentielle, on forme un système diffé-rentiel ; c’est le cas pour le problème :{

y′′(t) = f(t, y(t), y′(t)) ; t ∈ [0, T ],y(0) = α ; y′(0) = β.

que l’on écrira sous la forme :{Y ′(t) = F (t, Y (t)) ; t ∈ [0, T ],Y (0) = Y0,

avec Y =

[y(t)y′(t)

]=

[y1(t)y2(t)

]et Ya =

[αβ

]. On obtient :

Y ′(t) =

[y2(t)

f(t, y1(t), y2(t))

]Ce chapitre est consacré aux problèmes à valeurs initiales, et on n’y taitera pas les

problèmes de la forme (3.3). On a choisi d’appeler t la variable dans ce cas et x pourles problèmes aux limites. On retrouvera ces deux variables dans l’étude des équationsaux dérivées partielles. Les problèmes à valeur(s) initiale(s) seront toujours étudiés surun intervalle de la forme [0, T ].

Exemple 7 Le problème{y′′(t)− 4 y′(t) + 4 y(t) = exp(2 t), 0 6 t 6 1,y(0) = 0 ; y′(0) = 1.

s’écrit sous la forme Y ′(t) =

[0 1−4 4

]Y (t) +

[0

exp(t)

], avec Y (0) =

[01

].

Exemple 8 Le problème du pendule.

Le mouvement d’un pendule de massem, suspendu à un pointO par un fil non pesantde longueur l, en rotation d’angle θ(t) autour de O est gouverné par l’équation :

θ′′(t) = −gl

sin(θ(t)). (3.4)

L’angle θ est mesuré par rapport à une verticale passant par O. On s’intéresse aumouvement entre les instants t0 = 0 et un instant final T . Les conditions initiales peuventêtre θ0 =

π

3rad. et θ′(0) = 0 rad s−1. En général, on introduit ω2 =

g

l. Ce problème est un

problème non linéaire.

L’équation (3.4) est d’ordre 2, mais les conditions données en font un problème à va-leurs initiales ; il doit donc être transformé en un système de deux équations différentiellesdu premier ordre. On pose y1(t) = θ(t) et y2 = θ′(t). On obtient :

y′1(t) = y2(t)y′2(t) = −ω2 sin(y1(t))

Ce système entre dans le cadre de l’équation (3.2) avec Y =

[y1y2

]et

F =

[F1(t, Y )F2(t, Y )

]=

[y2

−ω2 sin y1

](3.5)

48

Page 49: Analyse numérique avec TP INSA Toulouse

3.1.2 Les équations différentielles en chimie

Cinétique chimique

La description des réactions chimiques conduit à des systèmes différentiels. Suppo-sons que l’on étudie les réactions de 4 substances, notées A, B, C et D. Ces 4 espècesréagissent entre elles selon les équations chimiques

A+B k1−→ C +D

2A+ C k2−→ B

(3.6)

Les paramètres ki sont des constantes cinétiques qui caractérisent la vitesse à la-quelle se produit chacune des réactions.

A partir de ces équations chimiques, dont on suppose qu’elles décrivent la totalitédes interactions entre ces trois composants, on va écrire les équations d’évolution desconcentrations de chaque espèce. On peut le faire en utilisant la loi d’action de masse quistipule que la vitesse d’une réaction est proportionnelle aux concentrations des réactants.Pour l’espèce A, en notant [A] sa concentration, on obtiendra

d[A]

dt= −k1 [A] [B]− 2 k2[A] [A] [C].

En effet la vitesse de la première réaction est proportionnelle aux concentrations deA et B, et le signe − exprime le fait que A est consommé par cette réaction. Pour ladeuxième réaction, la vitesse est donnée de façon analogue par k2 [A] [A] [C] car chaqueoccurence de cette réaction consomme 2 unités du réactant A.

Suivant le même raisonnement, on écrit une équation différentielle pour l’évolution dechacune des espèces. En notant Y (t) ∈ R4 le vecteur dont les composantes sont lesconcentrations respectives [A], [B], [C] et |D], on obtient un système différentiel de laforme Y ′(t) = F (t, Y (t)) avec

F (t, Y ) =

−k1 Y1 Y2 − 2 k2 Y

21 Y3

−k1 Y1 Y2 + k2 Y21 Y3

k1 Y1 Y2 − k2 Y 21 Y3

k1 Y1 Y2

La réaction de Belousov-Zhabotinsky

La réaction BZ correspond à l’oxydation en milieu acide d’un réducteur organique(acide malonique) par les ions Br0+3 , catalysée par un couple oxydo-reducteur (par exemple,Ce4+\Ce3+). Le mécanisme complet de cette réaction a été décrit par Field, Körös etNoyes ; il met en jeu 18 réactions concernant 21 espèces chimiques.

Les mêmes auteurs ont proposé un modèle simplifié connu sous le nom d’Orego-nateur en référence à l’université d’Oregon à laquelle ils appartenaient et par analogieavec un modèle apppelé Bruxellateur proposé antérieurement par Lefever et Nicolis àl’Université libre de Bruxelles. Les équations chimiques de ce modèle simplifié sont

49

Page 50: Analyse numérique avec TP INSA Toulouse

– Phase d’initiation,

Br0−3 + Br− + 2 H+ k1−→ HBr02 + HOBr

– Production autocatalytique de HBrO2,

Br0−3 + HBrO2 + 2 Ce3+ + 3 H+ k2−→ 2 HBrO2 + 2 Ce4+ + H2O

– Consommation de HBrO2,

Br− + HBr02 + H+ k3−→ 2 HOBr

2 HBr02k4−→ HOBr + BrO−3 + H+

– Oxydation des composés organiques,

Organique + Ce4+ k5−→α

2Br− + Organique

“Organique” désigne toute espèce organique oxydable et α désigne un facteur sto-chiométrique qui caractérise la chimie organique impliquée dans la réaction.

On va s’intéresser aux variations temporelles des concentrations [HBrO2], [Br−] et[Ce4+] notées respectivement Y1(t), Y2(t) et Y3(t).

Certaines concentrations seront supposées constantes, et notées [Br0−3 ] = A (=0.06) et [Organique] = B (= 0.02). L’Oregonateur prend également en compte [HOBr] =P , mais omet les autres réactants. Il s’écrit

A + Y2k1−→ Y1 + P

A + Y1k2−→ 2 Y1 + 2 Y3

Y1 + Y2k3−→ 2 P

2 Y1k4−→ A + P

B + Y3k5−→

α

2Y2

Suivant le raisonnement de la section précédente, la fonction Y (t) est solution dusystème différentiel :

d Y1dt

= k1AY2 + k2AY1 − k3 Y1 Y2 − 2 k4 Y21 ,

d Y2dt

= −k1AY2 − k3 Y1 Y2 +k5 α

2B Y3

d Y3dt

= 2 k2AY1 − k5B Y3

(3.7)

Les solutions de ce système ne peuvent se calculer que numériquement. Les constantescinétiques, données en Moles−1 s−1 sont, suivant Fields, Noyes et Körös :

k1 k2 k3 k4 k5

1.28 8 105 8 2 103 1

La valeur du facteur α peut être choisie plus ou moins arbitrairement. La figure 3.1

montre cette solution calculée pour α =2

3.

50

Page 51: Analyse numérique avec TP INSA Toulouse

FIGURE 3.1 – La réaction oscillante du modèle FKN.

Exemple 9 Le système différentiel (3.7) s’écrit un peu plus simplement si l’on procèdeà une adimensionnalisation. Il s’agit d’effectuer un changement de variables et d’incon-nues.

Vous montrerez qu’en introduisant les fonctions y1 =Y1Y 01

, y2 =Y2Y 02

, y3 =Y3Y 03

et la

variable τ =t

T0, avec Y 0

1 =k2A

2 k4, Y 0

2 =k2A

k3, Y 0

3 =(k2A)2

k4 k5Bet T0 =

1

k5B, le système

différentiel satisfait par la fonction y s’écritεdy1dτ

= q y2 − y1 y2 + y1 (1− y1)

δdy2dτ

= −q y2 − y1 y2 + α y3dy2dτ = y(1)− y(3)

(3.8)

Les paramètres de (3.8) sont ε =k5B

k2A, δ =

2 k4 k5B

k2 k3Aet q =

2 k1 k4k2 k3

.

Exemple 10 La réaction BZ est oscillante pour des valeurs de α comprises entre 0.5 et2.4. En fait, pour ce modèle différentiel, ces valeurs ne sont pas tout à fait exactes. Lafigure 3.2 montre cette solution calculée pour pour α = 0.5130241 et α = 0.5130242, aveccomme contition initiale Y0 = [0, 10−5, 0]T .

0n constate sur cette figure que les solutions d’un système différentiel peuvent êtretrès sensibles aux éventuelles perturbations de ce système. Ici, une variation relatived’environ 2 10−7 du facteur stochiométrique modifie radicalement la nature de la solution !

51

Page 52: Analyse numérique avec TP INSA Toulouse

FIGURE 3.2 – Le modèle FKN fournit une réaction oscillante pour certaines valeurs de α.

3.1.3 Problémes de Cauchy

Lorsque la fonction f est continue sur [0, T ] × Rn, les problèmes du type (3.2) s’ap-pellent aussi problèmes de Cauchy.

Nous allons simplement donner l’énoncé d’un théorème qui assure l’existence et l’uni-cité d’une solution pour un problème à valeurs initiales. C’est le théorème de Cauchy-Lipschitz.

Théorème 6 Si f est continue dans [0, T ] × Rn, et s’il existe une constante L > 0 telleque ‖f(t, y)−f(t, z)‖ 6 L ‖y− z‖ ∀t ∈ [0, T ], ∀(y, z) ∈ R2n, le problème (3.2) admet unesolution unique pour toute donnée initiale α ∈ Rn.

La seconde condition s’appelle condition de Lipschitz par rapport à la variable y. Bienque ce théorème nous assure de l’existence d’une solution, il est souvent impossible dela calculer explicitement.

Exemple 11 Le problème du pendule satisfait les hypothèses du théorème 6. La fonctionF de (3.5) vérifie en effet, pour tous Y et Z de R2 :

- |F1(Y )− F1(Z)| = |y2 − z2| 6 ‖Y − Z‖,- |F2(Y )− F2(Z)| = ω2 | sin(y1)− sin(z1)| 6 ω2 ‖Y − Z‖, puisque

| sin(y1)− sin(z1)| = 2 | sin(y1 − z1

2) cos(

y1 + z12

)| 6 |y1 − z1| 6 ‖Y − Z‖.

On ne peut cependant pas expliciter sa solution à l’aide de fonctions usuelles. Cettesolution peut s’exprimer à l’aide d’une fonction spéciale appelée fonction “sinus amplitu-de” de Jacobi, mais c’est beaucoup plus compliqué que de rechercher une approximationnumérique de la solution en utilisant une des méthodes que nous allons exposer dans cecours.

52

Page 53: Analyse numérique avec TP INSA Toulouse

Exemple 12 Le probléme{y′(t) = y(t)1/2 ; t ∈ [0, 1],y(0) = 0,

ne satisfait pas les hypothèses

du théorème 6. Il admet au moins deux solutions distinctes y1(t) = 0 et y2(t) =

(t

2

)2

.

Exemple 13 Pour des valeurs adéquates des paramètres, le problème (3.8) est un pro-blème de Cauchy. La fonction F qui définit ce problème ne satisfait pas la condition deLipschitz globale ‖F (t, y) − F (t, z)‖ 6 L ‖y − z‖ pour tous y et z dans R3, mais ellesatisfait une condition de Lipschitz locale, c’est à dire pour y et z dans un domaine bornécontenant Y0 ; c’est toujours le cas lorsque F est continument dérivable par rapport à Y ,et ici, la matrice jacobienne de F (relativement à y) s’écrit :

JY =

∂F1

∂y1. . .

∂F1

∂y3. . . . . .∂F3

∂y1. . .

∂F3

∂y3

=

1− 2 y1 − y2

ε

q − y1ε

0

−y2δ

−q + y1δ

α

δ

1 0 −1

.

3.1.4 Approximation numérique des solutions

On cherche à calculer des valeurs approchées de la solution y(t) du problème (3.2).Pour cela, on se donne une partition 0 = t0 < t1 < ... < tN = T et on cherche des yiaussi voisins que possible des y(ti).

Les pas de discrétisation sont les réels hi = ti+1− ti. Lorsque l’on n’aura pas expres-

sément besoin d’un pas variable, on le supposera constant, et on le notera h =T

N.

Les méthodes d’Euler

Construction des méthodes d’Euler : En intégrant l’équation (3.1) sur l’intervalle [tn, tn+1],on obtient :

y(tn+1) = y(tn) +

∫ tn+1

tn

y′(s) ds = y(tn) +

∫ tn+1

tn

f(s, y(s)) ds. (3.9)

On peut remplacer l’intégrale par une formule approchée, et si on choisit la formuledes rectangles à gauche : ∫ tn+1

tn

f(s, y(s)) ds ' h f(tn, y(tn)),

on obtient la formule d’Euler explicite :

yn+1 = yn + h f(tn, yn) ; 0 6 n 6 N − 1.

On peut choisir une formule des rectangles à droite, et dans ce cas, c’est la méthoded’Euler implicite que l’on obtient :

yn+1 = yn + h f(tn+1, yn+1) ; 0 6 n 6 N − 1.

53

Page 54: Analyse numérique avec TP INSA Toulouse

Cette méthode est dite implicite car yn+1 ne s’obtient qu’après la résolution d’uneéquation.

Ces deux méthodes sont dites à un pas, car le calcul de yn+1 se fait seulement enfonction des valeurs à l’étape n, (yn, tn) et du pas h.

Exemple 14 La méthode d’Euler explicite se construit aussi en considérant un dévelop-pement de Taylor de la forme

y(tn+1) = y(tn) + h y′(tn) +O(h2) = y(tn) + h f(tn, y(tn)) +O(h2). (3.10)

On néglige le terme O(h2) et on remplace les valeurs éxactes y(tn) par des valeursapprochées yn. On obtient de façon analogue la méthode implicite.

Une mise en œuvre réussie : Le problème{y′(t) = y(t), 0 6 t 6 1,y(0) = 1,

(3.11)

admet comme unique solution y(t) = et.

FIGURE 3.3 – Les méthodes d’Euler pour le problème (3.11)

La méthode d’Euler explicite consiste à calculer, pour n > 0, yn+1 = yn + h yn = (1 +

h) yn, de sorte partant de y0 = 1, on obtient yn+1 = (1 + h)n+1. Avec h =1

N, on retrouve

pour yN une valeur approchée de y(1) = e puisque limN→∞

yN = limN→∞

(1 +1

N)N = e.

La méthode implicite fournit quant à elle yN =1

(1− 1

N)N

qui converge également

vers e lorsque N tend vers l’infini.

54

Page 55: Analyse numérique avec TP INSA Toulouse

La figure 3.3 illustre cette convergence des deux méthodes ; on y constate que la mé-thode explicite calcule des valeurs légèrement inférieures aux y(ti), alors que la méthodeimplicite calcule des valeurs supérieures.

En fait, ces comportements s’expliquent par un développement limité :yN,e = eN ln(1+ 1

N) = e

(1− 1

2N+O(

1

N2)

),

yN,i = e−N ln(1− 1N) = e

(1 +

1

2N+O(

1

N2)

).

Cette estimation est confortée par les valeurs données dans le tableau suivant, oùeN désigne l’erreur absolue pour la valeur t = 1 de la variable et pour chacune desméthodes.

Euler explicite Euler implicite

N εNεNh

εNεNh

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 rapporteNh

encadrent de mieux en mieuxe

2' 1.3591.

Une mise en œuvre défaillante : Considérons le problème suivant :{y′(t) = 3 y(t)− 3 t ; 0 6 t 6 T,

y(0) =1

3,

(3.12)

dont la solution est y(t) = t +1

3et appliquons la méthode d’Euler pour en chercher la

solution approchée à l’instant T , pour différentes valeurs de T et différents choix du pash. Les résultats obtenus peuvent surprendre. Le tableau suivant donne les erreurs dansle calcul de yN :

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

Page 56: Analyse numérique avec TP INSA Toulouse

On constate que l’erreur semble croître avec le pas, contrairement à ce que l’on es-pérait. Par ailleurs, pour T = 20, cette erreur atteint des valeurs astronomiques !

Pour chercher à comprendre ce qui s’est passé, nous calculons la solution généralede l’équation différentielle y′(t) = 3y(t) − 3t. La solution de l’équation homogène esty(t) = Ke3t. La méthode 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 e3t.

La constante k peut être évaluée à l’aide 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 réelle du problème devient

yε(t) =1

3+ t+ ε e3t.

Les valeurs de e3T sont respectivement :- pour T = 5, e3T ' 3.269 106,- pour T = 10, e3T ' 1.068 1013,- pour T = 20, e3T ' 1.142 1026.

Avec une unité d’arrondi de l’ordre de 1.1102 10−16, on retrouve l’ordre de grandeur deserreurs constatées ! Le problème (3.12) est typiquement un problème instable ; une petiteperturbation de la donnée initiale entraine une grande perturbation de la solution.

3.1.5 Stabilité et comportement des solutions des problèmes linéaires

L’exemple (3.12) nous montre que le comportement des solutions du problème ho-mogène associè à une équation différentielle linéaire peut avoir une grande importancedans le calcul approchè d’une solution de cette équation. La solution générale de l’équa-tion linéaire homogène du premier ordre y′ = a y est y(t) = k ea t, la constante k étantdéterminée par la condition initiale. On constate que toute solution tendra vers l’infini avect si a > 0, vers 0 si a < 0 et restera constante si a = 0.

Plaçons nous à présent dans le cas d’un problème de Cauchy défini par une équationdu second ordre y′′ + α y′ + y = 0.

Cette équation s’écrit comme un système du premier ordre,

Y ′ =

[yy′

]′=

[0 1−1 −α

] [yy′

]. (3.13)

Les valeurs propres λ1,2 de la matrice[

0 1−1 −α

]sont les racines du polynôme

caractéristique de l’équation du second ordre, r1,2 =−α±

√α2 − 4

2. Les deux compo-

santes de la solution auront le comportement représenté sur la figure 3.4.

La forme des solutions à valeurs réelles de cette équation va dépendre de α,

56

Page 57: Analyse numérique avec TP INSA Toulouse

- si α2 < 4, les racines sont complexes et y(t) = e−α t2 (a cosβt + b sinβt) ; le sys-

tème a une composante périodique qui sera amortie si α est positif (cas stable) etamplifiée jusqu’à l’explosion sinon ;

- si α2 > 4, les racines sont réelles et le système n’a plus de comportement pério-dique. Sa solution est de la forme y(t) = e−

α t2 (a eβt + b e−βt), avec |β| <

∣∣∣α2

∣∣∣, et lesystème reviendra ou non à son état d’équilibre selon que α sera négatif ou positif.

En présence d’un second membre, ces comportements ne se retrouvent pas néces-sairement dans la solution exacte ; cela dépend en particulier des conditions initiales.

FIGURE 3.4 – Comportement des solutions du système (3.13)

Lorsque le système différentiel est de dimension supérieure à 2, de la forme Y ′(t) =AY (t), le comportement des différentes composantes de la solution dépend encore desvaleurs propres de la matrice A. Lorsque cette matrice est diagonalisable, c’est-à-direlorsqu’il existe une matrice P inversible telle que P−1AP = Λ soit une matrice diagonale,dont les éléments diagonaux sont les valeurs propres de A, on obtient

P−1 Y ′(t) = P−1AP P−1 Y (t) = ΛP−1 Y (t),

de sorte que si X(t) = P−1 Y (t) représente la fonction Y (t) dans la base des colonnesde P , ses composantes xi(t) seront de la forme xi(t) = kie

λi t. La encore, il apparaitqu’une petite perturbation de ce problème, par exemple de ses conditions initiales, pourraproduire une grosse perturbation des solutions si une des valeurs propres de la matricedéfinissant le système est de partie réelle positive.

Définition 7 On dira qu’une équation ou un système différentiel linéaire est stable sitoutes les valeurs propres de la matrice qui le définit sont à partie réelle négative ounulle.

Dans le cas non linéaire, ce comportement pourra varier au cours du temps. En fait,pour les solutions d’un système Y ′(t) = F (t, Y (t)), c’est la matrice jacobienne de Frelativement à Y qui détermine localement ce comportement. On ne dispose donc géné-ralement pas de cette information.

57

Page 58: Analyse numérique avec TP INSA Toulouse

Exemple 15 Le comportement des solutions de (3.13) est déterminé par la valeur deα comme on l’a expliqué. Le cas où 0 < α < 2 correspond à un système oscillantavec amortissement de type visqueux (proportionnel à la vitesse). Le cas d’un systèmeoscillant non amorti, pour lequel on aurait α = 0 n’est pas trés réaliste physiquement. Simaintenant on remplace cette constante α par une fonction de y, qui serait négative poury petit et positive pour y grand, on fera vivre durablement la solution, sans explosion niamortissement : en choisissant par exemple α(y) = −µ (1 − y2), avec µ > 0, on obtientl’équation

y′′ − µ (1− y2) y′ + y = 0 (3.14)

Cette équation est connue sous le nom d’équation de Van der Pol. Ses solutions nepeuvent pas s’exprimer à l’aide de fonctions usuelles. La figure 3.5 montre la solutionobtenue pour µ = 20 avec comme conditions initiales y(0) = 2 et y′(0) = 0.

FIGURE 3.5 – Un exemple de solution de (3.14).

L’équation (3.14) est équivalente au système Y ′ =

[y1y2

]′=

[y2

µ (1− y21) y2 − y1

].

Les oscillations obtenues sont remarquablement stables, au point que ce modèle d’oscil-lateur a été utilisé pour la réalisation de stimulateurs cardiaques.

Exemple 16 Un autre exempe d’oscillateur est fournit par Le modèle de Lotka-Volterra.Il s’agit d’un modèle de système biologique à deux espèces, une herbivore et une carni-vore, qui peut se représenter comme une réaction chimique :

H + Y1k1−→ 2 Y1

Y1 + Y2k2−→ 2 Y2

Y2k3−→ M

=⇒

d Y1dt

= k1 [H]Y1 − k2 Y1 Y2,

d Y2dt

= k2 Y1 Y2 − k3 Y2.

On peut expliciter ce modèle :- Y1 désigne la population herbivore, par exemple des lièvres qui disposent d’herbe

pour se nourrir ; La quantité [H] d’herbe à leur disposition est constante. La constantede vitesse de leur reproduction est k1

58

Page 59: Analyse numérique avec TP INSA Toulouse

– Y2 désigne la population carnivore, par exemple des renards, qui se reproduisentavec une constante de vitesse k2 en présence de lièvres, ou disparaissent avecune constante de vitesse k3 en absence de lièvres.

Si les constantes sont choisies de façon qu’aucune des deux espèce ne disparaisse,on obtient encore un système oscillant.

FIGURE 3.6 – Le modèle prédateur-proie de Lokta-Volterra.

3.1.6 Les méthodes explicites de type Runge-Kutta

Forme générale des méthodes explicites à un pas

Nous restons dans le cadre général du problème (3.2) en supposant que les hypo-théses du théoréme 6 sont vérifiées. On parle de méthode à un pas lorsque le calcul de lavaleur approchée yn+1 de y(tn+1) ne fait intervenir que yn, tn et le pas hn. Par opposition,les méthodes multipas utilisent aussi des valeurs calculées aux étapes précédentes.

Dans le cas d’un pas constant h =T

N, la forme générale des schémas à un pas est

donc la suivante :{y0 = α,yn+1 = yn + hΦ(tn, yn, yn+1, h), 0 6 n 6 N − 1.

(3.15)

C’est la fonction Φ qui caractérise le schéma. Pour les méthodes explicites, elle nedépend pas de yn+1 ; on la note Φ(t, y, h). Pour la méthode d’Euler explicite, Φ(t, y, h) =f(t, y).

Exemple 17 On peut penser à utiliser la formule des trapèzes pour approcher l’intégralefigurant dans (3.9). On obtient alors un schéma implicite défini par :

yn+1 = yn +h

2(f(tn, yn) + f(tn+1, yn+1)) . (3.16)

59

Page 60: Analyse numérique avec TP INSA Toulouse

C’est la méthode implicite du trapèze, ou méthode de Crank-Nicholson. Si l’on sou-haite éviter le caractère implicite de ce schéma, on remplace f(tn+1, yn+1) par l’estima-tion qu’en donne le schéma d’Euler. On obtient la méthode du trapèze explicite :

yn+1 = yn +h

2(f(tn, yn) + f(tn+1, yn + h f(tn, yn))) . (3.17)

Pour cet exemple, on peut expliciter Φ(t, y, h) =1

2(f(t, y) + f(t+ h, y + h f(t, y))).

Les méthodes de type Runge-Kutta

Le schéma explicite (3.17) possède une écriture très compacte, et on peut l’allègeren introduisant une notation algorithmique :

k1 = f(tn, yn),k2 = f(tn + h, yn + h k1),

Φ(tn, yn, h) =1

2(k1 + k2),

yn+1 = yn + hΦ(tn, yn, h).

(3.18)

Exemple 18 On peut proposer une autre méthode à un pas sous une forme du mêmetype :

k1 = f(tn, yn),

k2 = f(tn +h

2, yn +

h

2k1),

Φ(tn, yn, h) = k2,yn+1 = yn + hΦ(tn, yn, h).

(3.19)

Cette méthode est connue sous le nom de méthode d’Euler modifiée ou méthode dupoint milieu. La fonction qui le définit est Φ(t, y, h) = f(t+

h

2, y +

h

2f(t, y)) Le calcul de

yn+1 en fonction de yn s’écrit donc également

yn+1 = yn + h f(tn +h

2, yn +

h

2f(tn, yn)).

Ce type de construction peut être généralisé de la façon suivante. On définit unschéma de Runge-Kutta à q étages en se donnant :

- une partition 0 6 c1 6 . . . 6 cq 6 1 de [0, 1],- pour chaque ci, une formule d’intégration approchée sur [0, ci] :

∫ ci

0g(s) ds '

i∑j=1

ai,j g(cj), (3.20)

- une formule d’intégration approchée sur [0, 1] :∫ 1

0g(s) ds '

q∑j=1

bj g(cj). (3.21)

60

Page 61: Analyse numérique avec TP INSA Toulouse

Pour écrire le schéma, on va utiliser les formules (3.21) pour évaluer l’intégrale del’expression (3.9), avec le changement de variable qui envoie l’intervalle [tn, tn+1] sur[0, 1] : ∫ tn+1

tn

y′(s) ds = h

∫ 1

0y′(tn + s h) ds ' h

q∑i=1

bi y′(tn + ci h).

Mais pour chaque i, les y′(tn + ci h) = f(tn + ci h, y(tn + ci h)) sont inconnus, et onutilise les formules (3.20) pour fournir des approximations intermédiaires

y(tn + ci h) ' yn,i = yn + h

q∑j=1

ai,j f(tn + cj h, yn,j), 1 6 i 6 q.

On généralise la notation (3.18) en introduisant les variables ki ' f(tn + ci h, yn,i). Leschéma s’écrit alors :

ki = f(tn + ci h, yn + h

q∑j=1

ai,j kj), 1 6 i 6 q,

yn+1 = yn + h

q∑j=1

bj kj .

(3.22)

On ne va s’intéresser de façon générale qu’aux schémas explicites, et on imposerac1 = 0. Dans ce cas, pour chaque i, les ai,j sont nuls si j > i : la matrice A = (ai,j)16i, j6qest alors strictement triangulaire inférieure. Les ki sont des approximations de f(t, y) auxinstants intermédiaires tn + ci h, 1 6 i 6 q. On impose en outre une condition qui rendconsistantes ces approximations :

ci =

q∑j=1

ai,j , 1 6 i 6 q. (3.23)

Pour une présentation synthétique de la méthode, on utilise généralement le dia-gramme suivant

0c2 a21c3 a31 a32...

......

. . .ci ai1 ai2 . . . aii−1...

...... . . .

.... . .

cq aq1 aq2 . . . aqi−1 . . . aqq−1b1 b2 . . . bi−1 . . . bq−1 bq

(3.24)

On retrouve par exemple les méthodes (3.19) et (3.18) à travers leurs diagrammesrespectifs :

01/2 1/2

0 1

01 1

1/2 1/2

Exemple 19 : La méthode “classique” de Runge-Kutta C’est la méthode habituelle-ment désignée par le nom de méthode de Runge-Kutta. C’est une méthode excellente

61

Page 62: Analyse numérique avec TP INSA Toulouse

pour la plupart des problèmes de Cauchy, en tous cas souvent la première à essayer.

Elle est à 4 étages, définie par la fonction Φ(t, y, h) =1

6(k1 + 2k2 + 2k3 + k4) avec :

k1 = f(t, y),

k2 = f(t+h

2, y +

h

2k1),

k3 = f(t+h

2, y +

h

2k2),

k4 = f(t+ h, y + h k3)).

Explicitez la présentation synthétique de cette méthode sous la forme (3.24).

3.1.7 Erreurs locales de discrétisation

Une méthode de la forme (3.15) sera satisfaisante si les valeurs yn qu’elle permet decalculer se rapprochent des valeurs y(tn) de la solution de (3.2) aux instants tn, au moinspour un pas h suffisament petit.

Pour caractériser cette éventuelle “convergence”, on introduit les erreurs locales

en = |y(tn)− yn|, (3.25)

qui sont dominées par l’erreur globale

EN = max06n6N

{en} . (3.26)

Comme la solution y(t) est inconnue, ces erreurs en ne seront pas accessibles. Nousallons chercher à évaluer la contribution de chaque étape du calcul à l’erreur globale,et réfléchir à sa propagation. Plaçons nous à l’étape n du calcul. Les calculs précédentsnous ont fourni une valeur yn, à laquelle est associée une erreur locale en, et nous devonscalculer yn+1 à laquelle correspondra l’erreur en+1. Cette erreur en+1 sera donc la sommed’une contribution δn+1 de l’étape courante et des contributions précédentes.

Pour essayer de caractériser la contribution δn+1 de l’étape courante, on considère leproblème {

z′n(t) = f(t, zn(t)) ; tn 6 t 6 T,zn(tn) = yn.

(3.27)

On peut alors définir l’erreur locale de discrétisation,

δn+1 = zn(tn+1)− yn+1 (3.28)

Les zn(t) sont des solutions de la même équation différentielle que y(t), chacuned’entre elles étant celle qui passe par yn à l’instant tn. On obtient alors

δn+1 =

{zn(tn+1)− zn(tn)− hΦ(tn, zn(tn), h),zn(tn+1)− yn − hΦ(tn, yn, h).

(3.29)

62

Page 63: Analyse numérique avec TP INSA Toulouse

Exemple 20 Montrez que dans le cas de l’équation différentielle y′(t) = a y(t), les zn(t)sont de la forme

zn(t) = yn ea (t−tn). (3.30)

La contribution δn+1 ajoutée à l’erreur par l’étape n pourra être amplifiée ou réduitedans les calculs ultérieurs selon que le problème aura tendance à amplifier ou à atténuerles perturbations. Cette tendance pourra varier dans le cas de problèmes non linéaires.

Pour les équations linéaires, cette tendance ne varie pas et caractérise la stabilité ausens de la définition 7 du problème. Considérons par exemple :{

y′(t) = y − t2 +7 t− 3

2; 0 6 t 6 1.6,

y(0) = 0.

La solution de ce problème est y(t) = t2 − 3 t

2.

La figure 3.7 montre 4 étapes de la méthode d’Euler explicite appliquée à ce pro-blème, avec un pas h = 0.4. Les valeurs yn, 1 6 n 6 4 sont pointées par les flèchesqui illustrent la trajectoire de la méthode. Cette figure fait également apparaitre les trajec-toires des différentes solutions exactes zn(t), 0 6 n 6 3 aux problèmes (3.27), avec biensur z0(t) = y(t).

FIGURE 3.7 – Les zn transportent les erreurs locales de discrétisation

Les erreurs locales (3.28) ne sont pas simplement additionnées pour contribuer à l’er-reur globale : elles sont “transportées” par les solutions zn pour fournir des contributions∆n à l’erreur finale e4 qui vérifie :

e4 =

4∑n=1

∆n.

Sur notre exemple, ce “transport” a plutôt enrichi les erreurs locales.

63

Page 64: Analyse numérique avec TP INSA Toulouse

Exemple 21 On applique la méthode d’Euler explicite au problème (3.11). Montrez queles erreurs locales de discrétisation vérifient

δn+1 ' ynh2

2.

Montrez que si l’on applique la méthode du trapèze (3.17), cette erreur vérifie

δn+1 ' ynh3

6.

3.1.8 Consistance d’un schéma

Définition

Suivant la définition (3.29), l’erreur locale de discrétisation δn+1 est une erreur localede consistance : elle mesure avec quelle précision le schéma approche localement unesolution de l’équation différentielle. L’exemple 21 montre que son comportement dépenddu schéma.

Définition 8 On dit que le schéma (3.15) est consistant à l’ordre p s’il existe une constanteK > 0 telle que

|δn| 6 K hp+1. (3.31)

Cette condition garantit que pour une méthode à un pas consistante (à l’ordre 1), onaura

limh→0

N∑n=1

|δn| = 0.

En effet, cette somme fait intervenir N =T

htermes, de sorte que

N∑n=1

|δn| 6 K T h.

L’ordre d’une méthode n’est réalisé que si le problème que l’on veut résoudre le per-met. L’exemple 24 montre qu’un défaut de régularité du problème interdit de réaliser laprécision espérée. Le théorème suivant donne une condition simple pour assurer qu’uneméthode est consistante.

Théorème 9 La méthode (3.15) est consistante si et seulement si, pour tout t ∈ [0, T ] ettout y ∈ R :

Φ(t, y, 0) = f(t, y).

Exemple 22 On suppose que f et Φ sont suffisament régulières pour autoriser un déve-loppement à l’ordre 2 de zn(tn+1). Montrez que, pour un η ∈ [tn, tn+1],

δn+1 = h (f(tn, yn)− Φ(tn, yn, h)) +h2

2z′′n(η).

Utiliser un développement à l’ordre 1 en h de Φ(tn, yn, h) pour démontrer le théorème9.

64

Page 65: Analyse numérique avec TP INSA Toulouse

Cas des méthodes de type Runge-Kutta

L’étude des schémas de Runge-Kutta est facilitée par leur présentation matricielle. Onnote A la matrice des paramètres ai, j de la méthode introduite dans la défition (3.22). Ondéfinit le vecteur b = [b1, . . . , bq]

T , la matrice C ∈ Mq(R), diagonale, dont les élémentsdiagonaux sont les ci et le vecteur 1 ∈ Rq tel que 1 = [1, . . . , 1]T . La condition (3.23)s’écrit alors A1 = C 1. Ces éléments permettent d’énoncer le théorème suivant :

Théorème 10 La méthode de Runge-Kutta caractérisée par les éléments A, b, C et 1définis ci-dessus est :

- consistante si et seulement si bT 1 = 1,- d’ordre 2 si en outre bT C 1 = bT A1 = 1/2,

- d’ordre 3 si en outre{bT C2 1 = 1/3,

bT AC 1 = 1/6, (= bT A2 1),

- d’ordre 4 si en outre

bT C3 1 = 1/4,

bT AC2 1 = 1/12,

bT A2C 1 = 1/24, (= bT A3 1),

bT C AC 1 = 1/8.

Exemple 23 La méthode classique de l’Exemple 19 est d’ordre 4. On la désignera dé-sormais sous le nom de méthode RK4.

Exemple 24 Calculer la solution du problème{y′ = 1 + |y − 1| , t > 0,y(0) = 0.

On calcule la solution approchée aux points T = 1/2 et T = 2 avec différents pash, en utilisant la méthode RK4. On note eN l’erreur aux points T . Le tableau ci-dessousfournit dans chaque cas les valeurs des rapports

eNh4

. 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 problème

Le transport des erreurs locales de discrétisation par les solutions zn(t) ne les enrichitpas nécessairement, et cela ne dépend pas de la solution y(t).

Exemple 25 Montrez que la fonction y(t) = t2 − 3 t

2est également solution des pro-

blèmes :

65

Page 66: Analyse numérique avec TP INSA Toulouse

{y′(t) =

4

3(y − t2) + 4t− 3

2;

y(0) = 0.

{y′(t) =

4

3(t2 − y)− 3

2;

y(0) = 0.

En appliquant à nouveau la méthode d’Euler implicite avec un pas h = 0.4 à ces deuxproblèmes, on obtient les résultats représentés par la figure 3.8. On constate que dansun cas les erreurs locales de discrétisation sont clairement amplifiées, et dans l’autreclairement atténuées.

FIGURE 3.8 – Les erreurs locales de discrétisation peuvent être amplifiées ou atténuées

Ces deux problèmes sont définis par des équations différentielles linéaires. La déri-vée partielle ∂yf est constante, et c’est elle qui permet de savoir si les erreurs locales

seront amplifiées ou atténuées. Dans le cas “stable”, elle est égale à −4

3, et dans le cas

“instable” à +4

3.

Dans le cas général, ce comportement va varier au cours du calcul. On peut montrerqui si ∂yf(t, y) < 0, alors on aura |∆n| 6 |δn| pour tout n.

Exemple 26 En utilisant (3.30), montrez que pour l’équation différentielle y′(t) = a y(t),on a

∆n+1 = δn+1 ea (T−tn+1). (3.32)

3.1.9 Notion de A-stabilité

L’expression (3.32) montre que pour un problème linéaire stable, les erreurs localesde discrétisation seront transportées de façon “favorables”. Comme leurs contributionssur des temps longs seront écrasées, on peut espérer dans ce cas mener des calculs entemps long avec des pas de temps pas trop petits.

Considérons par exemple le problème{y′(t) = −a (y(t)− sin(t)) + cos(t), 0 < t < 2π,y(0) = 1.

(3.33)

66

Page 67: Analyse numérique avec TP INSA Toulouse

La solution générale de l’équation différentielle qui le définit est donnée en fonction duparamètre a par y(t) = c exp(−a t) + sin(t). Si le paramètre a est positif, et par exemplepour a = 10, c’est un problème stable. La condition initiale permet de calculer la constantec = y(0) = 1.

Exemple 27 Les solutions zn(t) de (3.27) dans le cas du problème (3.33) sont donnéespar

zn(t) = (yn − sin(tn)) ea(tn−t) + sin(t).

Les erreurs locales de discrétisation pour la méthode d’Euler explicite vérifient donc

δn+1 'a2 h2

2(yn − sin(tn))− h2

2sin(tn). (3.34)

On se place dans le cas où a = 10. Compte-tenu de (3.34) et (3.32), on peut tenterdes calculs avec un pas raisonnable, au moins pour les temps un peu longs. Ainsi, pourun pas h = 0.01, de sorte que a h = 0.1 , l’erreur globale EN est d’environ 0.0211, réaliséeen debut de calcul ; l’erreur au point T = 2π est d’environ 0.0005 ! La figure 3.9 montre lasolution calculée avec ce pas, ainsi qu’avec trois autres pas, et fait apparaitre égalementla solution exacte.

FIGURE 3.9 – Apparition d’instabilités pour certaines valeurs du pas.

Pour le pas h = 0.19, la solution calculée commence par osciller autour des valeursde 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 finalement, pour le pas h = 0.21, les oscillations initiales sont constament amplifiéesau cours du calcul ! La valeur 0.20 semble bien être un seuil de stabilité pour ce calcul.

67

Page 68: Analyse numérique avec TP INSA Toulouse

On va donc essayer de comprendre ce qui se passe en s’intéressant au calcul d’unesolution de l’équation homogène associée au problème (3.33) :

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

Sa solution générale est y(t) = y(0) e−10t et tend vers 0 lorsque t tend vers l’infini. Ilfaut que le schéma qu’on utilise pour calculer la solution de (3.33) respecte ce compor-tement.

Après avoir choisi y0 = y(0), le schéma d’Euler calcule

y1 = y0 − 10h y0 = (1− 10h) y0.

et au-delà, pour tout n, yn = (1− 10h)n y0.

yn ne tendra vers 0 lorsque n tend vers l’infini qu’à la condition que |1− 10h| < 1,

et comme le pas h est positif, il devra vérifier 10h < 2, d’ou h <2

10= 0.2. Cette valeur

constitue le seuil de stabilité de la méthode d’Euler explicite pour le problème (3.35), etpar suite pour le problème (3.33). Cette notion est généralisée par le théorème suivant.

Théorème 11 Lorsqu’on applique une méthode à un pas à l’équation différentielle y′(t) =−a y(t), en utilisant le pas h, cette méthode calcule des approximations yn de y(tn) sousla forme

yn = R(a h)n y0, n > 0. (3.36)

La fonction R(x) s’appelle fonction de stabilité de la méthode.

La méthode est inconditionellement stable si |R(x)| < 1 pour tout x > 0. Sinon, onappelle rayon de stabilité de cette méthode le nombre r > 0 tel que 0 < x < r entraine|R(x)| < 1.

Le seuil de stabilité de la méthode pour un problème donné sera donc s =r

a. Toute

méthode à un pas d’ordre p sera telle que R(x) =

p∑k=0

(−1)kxk

k!+O(xp+1).

Exemple 28 La fonction de stabilité des méthodes (3.18) et (3.19) est R(x) = 1−x+x2

2.

Le rayon de stabilité est r = 2.

Exemple 29 Pour la méthode d’Euler implicite, la fonction R(x) est donnée par

R(x) =1

1 + x.

Cette fonction est telle que |R(x)| < 1 pour tout x > 0. Il n’y a donc pas de restrictionà la stabilité de cette méthode : elle est inconditionnellement stable.

68

Page 69: Analyse numérique avec TP INSA Toulouse

Remarque 30 Pour des systèmes différentiels, le réel a est remplacé par une matriceA ∈ Mn(R) symétrique définie positive. La solution du problème y′ = −Ay est donnéepar y(t) = exp(−t A) y(0), où l’exponentielle est une exponentielle de matrice.

L’exponentielle de matrice est définie, par analogie avec la fonction exponentielle, parla relation

exp(−t A) =∞∑k=0

(−t)k

(k!)Ak.

Lorsque la matrice A est diagonalisable, selon A = P ΛP−1, Λ désignant une matricediagonale dont les éléments diagonaux sont les valeurs propres λi de A, et P une matricedont 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 symétrique définie positive, elle est diagonalisable, et ses valeurs propressont strictement positives : y(t) tend donc vers 0 lorsque t tend vers l’infini. Le seuil destabilité est alors s =

r

λM (A), où λM (A) désigne la plus grande valeur propre de A.

3.2 Pour en savoir plus...

3.2.1 Convergence des méthodes à un pas

Au-delà de l’observation empirique de la convergence de certains schémas vers lasolution du problème différentiel qu’on cherche à approcher, il n’est pas inutile d’établirformellement cette propriété.

Définition 12 On dit que la méthode (3.15) est convergente à l’ordre p s’il existe uneconstante C > 0 telle que

EN 6 C hp. (3.37)

La consistance à l’ordre p ne suffit pas à garantir cette convergence. Il faut ajouterune condition de stabilité. A priori, c’est la méthode qui doit être stable, et une méthode àun pas consistante à l’ordre p sera toujours stable si le problème satisfait les hypothèsedu théorème 6.

Théorème 13 Si la fonction f vérifie les hypothèses du théorème 6, la méthode à un pas(3.15) vérifiant la condition de consistance à l’ordre p (3.31) est convergente à l’ordre p.L’erreur globale EN satisfait l’inégalité

EN 6K

Lhp(eLT − 1

).

69

Page 70: Analyse numérique avec TP INSA Toulouse

On a remarqué que les erreurs δn sont transportées par les solutions de (3.27). Nousallons essayer de donner une majoration des contributions ∆n à l’erreur finale eN .

A un instant t > tn+1, ∆n+1 s’écrit comme une fonction de t :

∆n+1(t) = zn(t)− zn+1(t),

|∆n+1(t)| =

∣∣∣∣∣zn(tn+1)− zn+1(tn+1) +

∫ t

tn+1

(z′n(s)− z′n+1(s)

)ds

∣∣∣∣∣ .De la définition (3.28) et de (3.27), on tire

|∆n+1(t)| 6 |δn+1|+∫ t

tn+1

|f(s, zn(s))− f(s, zn+1(s))| ds.

En supposant que f satisfait les hypothèses du théoreme 6, on obtient

|∆n+1(t)| 6 |δn+1|+ L

∫ t

tn+1

|zn(s)− zn+1(s)| ds. (3.38)

On pose alors vn(t) =

∫ t

tn+1

|zn(s)− zn+1(s)| ds. La fonction vn est telle que vn(tn+1) =

0, et vérifie :v′n(t) = |∆n+1(t)| 6 |δn+1|+ Lvn(t). (3.39)

(3.39) s’écrit également v′n(t)− Lvn(t) 6 |δn+1| qui fournit, en multipliant par e−Lt :(v′n(t)− Lvn(t)

)e−Lt =

d

dt

(vn(t) e−Lt

)6 |δn+1| e−Lt.

En intégrant de tn+1 à t, et comme vn(tn+1) = 0 :

vn(t) e−Lt 6|δn+1|L

(e−Ltn+1 − e−Lt

).

vn(t) 6|δn+1|L

(eL(t−tn+1) − 1

).

L’inégalité (3.38) fournit finalement :

|∆n+1(t)| 6 |δn+1|+ L|δn+1|L

(eL(t−tn+1) − 1

)= |δn+1| eL(t−tn+1). (3.40)

La relation (3.40) va nous permettre de majorer l’erreur eN =N∑n=1

∆n(T ) pour une

méthode d’ordre p, avec T = tN = N h. Dans ce cas, suivant (3.31),

|eN | 6 K hp+1N∑n=1

eL(T−tn) = K hp eLTN∑n=1

h e−L tn .

En remarquant que la somme de droite est la formule composée des rectangles à droite

pour l’intégrale∫ T

0e−Ls ds =

1− e−LT

L, et que cette intégrale domine la somme, on

obtient|eN | 6

K

Lhp(eLT − 1

).

70

Page 71: Analyse numérique avec TP INSA Toulouse

Remarque 31 Dans la définition du schéma, on suppose que y0 est donné exactement.On verra ci-dessous que dans le cas d’erreurs d’arrondi, la convergence n’est plus ga-rantie en cas d’erreur initiale..

3.2.2 Calculs en arithmétique finie

On va supposer que les calculs sont perturbés par des erreurs d’arrondi, ce qui vaintroduire un terme supplémentaire aux erreurs locales de discrétisation. On aura à pré-sent

|δn+1| 6 K hp+1 + |εn+1|.

On aura également une erreur initiale ε0. Cette erreur correspond à l’écriture de la

condition initiale en arithmétique finie : c’est par exemple l’écart entre1

3et sa valeur ap-

prochée par l’arithmétique de l’ordinateur pour l’exemple (3.12). Cette erreur sera trans-portée par la solution du problème perturbé, pour fournir une contribution ∆0 = ε0 e

LT

à l’erreur finale, selon le principe de la démonstration précédente ou de l’analyse del’exemple (3.12).

En supposant que les erreurs d’arrondi des étapes 1 à N sont majorées en valeurabsolue par σ, on obtiendra alors une majoration de la forme

|eN | 6 |ε0| eLT + (K hp +σ

h) eLT

N∑n=1

h e−L tn+1 6 eLT(|ε0|+ C hp +

σ

h

). (3.41)

On remarque un terme en1

hqui tend vers l’infini lorsque h tend vers 0.

Exemple 32 On applique la méthode du point-milieu (3.19) au problème (3.11) On réa-lise alors les calculs en utilisant MATLAB, c’est-à-dire en arithmétique IEEE pour la-quelle l’unité d’arrondi est u ' 1.11 10−16. On convient de choisir ε0 = σ = u. La fonc-tion qui donne la majoration empirique de l’erreur résultant de (3.41) est alors, avec iciL = T = 1 :

e(h) = e ∗(u+

e

6h2 +

u

h

).

La figure 3.10 représente les erreurs observées pour 200 valeurs du pas h régulière-ment réparties entre 10−7 et 2 10−5 : elle fait clairement apparaitre que le comportementdes erreurs observées est globalement bien représenté par la courbe empirique.

On constate aussi que l’influence des erreurs d’arrondi est négligeable : il est inutilede choisir un pas trop petit et les risques d’erreurs proviennent surtout de l’éventuelleinstabilité du problème.

71

Page 72: Analyse numérique avec TP INSA Toulouse

FIGURE 3.10 – Estimation et observation des erreurs d’arrondi

3.2.3 Problèmes raides

Qu’est-ce qu’un problème raide ?

Reprenons l’exemple (3.33). Sa solution est une combinaison linéaire de deux fonc-tions :

– yR(t) = exp(−a t) est la solution générale de l’équation homogène ; lorsque le pa-ramètre a devient grand, elle décrit un phénomène rapide ; son effet sur la solution

a une durée de vie de l’ordre de1

a.

– yL(t) = sin(t) qui dépend ici directement du second membre décrit un phenomèneplus lent.

La figure 3.11 ilustre ce comportement ; on y constate que la contribution de la fonctionyR à la solution devient vite négligeable.

Cet exemple est typique des problèmes de phase transitoire, lorsqu’une contributiontelle que yR n’existe que sur un temps très petit. Pour ces temps petits, la formule (3.34)montre que, si l’on utilise une méthode d’Euler, on devra imposer une contrainte de pré-cison de la forme (a2 + 1)h2 6 2 ε pour garantir localement une précison de l’ordre de

ε, et on pourrait aussi le vérifier pour la méthode implicite. Pour t >>1

a, cette contrainte

n’est plus valide. C’est alors la contrainte de stabilité a h 6 2 qui va prendre le relai, saufsi l’on utilise une méthode implicite.

En fait, aucune méthode explicite ne peut être A-stable, alors que les méthodes im-plicites peuvent l’être. C’est ce qui les rend indispensables pour les problèmes raides.

72

Page 73: Analyse numérique avec TP INSA Toulouse

FIGURE 3.11 – Le problème (3.33) est raide si a est grand.

Problèmes raides en cinétique chimique

L’exemple de Robertson : Un exemple, proposé par Robertson en 1966 et souventrepris dans la littérature des équations différentielles, est devenu un classique. Il décritune réaction chimique entre trois composants :

A 0.04−→ B (lente)B +B 3.107−→ B + C (très rapide)B + C 104−→ A+ C (rapide)

On constate que les temps caractéristiques des trois réactions sont très disparates :on peut s’attendre à ce que ce problème soit raide ; il l’est !

On notera Y = [Y1, Y2, Y3]T , le vecteur des concentrations respectives [A], [B] et [C].

La réaction est alors décrite par le système d’équations différentielles (3.42) :Y ′1(t) = −0.04Y1(t) +104 Y2(t)Y3(t)Y ′2(t) = 0.04Y1(t) −104 Y2(t)Y3(t) −3 107 Y 2

2 (t)Y ′3(t) = 3 107 Y 2

2 (t)(3.42)

initialisée par Y (0) = [1, 0, 0]T .

Comparaison des solveurs MATLAB : Nous allons proposer le calcul d’une solutionapprochée sur l’intervalle [0, 6] en utilisant ode45 ainsi qu’un solveur adapté aux pro-blèmes raides, le solveur ode15s (on aurait pu choisir ode23s). La liste des solveurs deMATLAB s’obtient en utilsant l’aide en ligne ; les solveurs adaptés aux problèmes raidessont ceux dont le nom se termine par la lettre s (pour “stiff”).

Pour utiliser un de ces solveurs, on commence par créer la fonction qui le définit :

function yprime = FoncRobertson(t, y);

73

Page 74: Analyse numérique avec TP INSA Toulouse

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-fichier d’instructions, nous allons maintenant comparer nos deux solveurs.L’appel le plus simple aux solveurs est de la forme

[t, y]=ode***(fontion, intervalle, yini);

On peut en outre fixer un certain nombre d’options (précision, ...) ; vous pouvez utiliserl’aide en ligne pour les découvrir. Pour récupérer des informations sur le déroulement descalculs qui ont permis d’obtenir la solution, on utilise l’option Stats. Nous représenteronsgraphiquement les deux solutions calculées pour le composant B.

Le fichier Robertson.m pourra s’écrire

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’)

L’exécution de cette fonction fournit la figure 3.12 qui représente la concentration ducomposant B. La fonction subplot permet de représenter les deux courbes sur unemême figure avec deux systèmes d’axes ; on a translaté l’axe des ordonnées de façonà faire apparaitre la variation initiale très brutale de ce composant. Les oscillations ob-servées dans le calcul par ode45 restent en deça des tolérances par défaut, puisquel’ordonnée maximale est de l’ordre de 4.10−5.

Les “statistiques” renvoyées sont les suivantes :- pour ode45 :4205 successful steps874 failed attempts30475 function evaluations

- pour ode15s :36 successful steps5 failed attempts81 function evaluations2 partial derivatives14 LU decompositions71 solutions of linear systems

Il est clair que le solveur ode15s est le mieux adapté à ce problème ; les dérivées par-tielles sont des matrices jabienne 3× 3 calculées par différences finies ; les factorisationset résolutions de systèmes linéaires le sont pour des matrices 3× 3.

74

Page 75: Analyse numérique avec TP INSA Toulouse

FIGURE 3.12 – Comparaison de deux solveurs de MATLAB sur un temps court.

Calcul et représentation sur un temps long : On sait maintenant quel solveur choisirpour la simulation complète de cette réaction. On va le faire sur l’intervalle [0, 108]. Pourreprésenter la solution, et comme les trois concentrations ont des ordres de grandeurstrès différents, on utilise la fonction subplot. La concentration [B] connait une phasetransitoire au démarrage ; pour mieux observer son évolution, on utilisera des représen-tations en coordonnées semilogarithmiques, avec semilogx ; on doit alors modifier lavaleur initiale t0 = 0 ! On peut compléter le fichier 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]’);

L’exécution de ce programme fournit la figure 3.13

3.3 Pour en savoir encore plus !

3.3.1 Contrôle du pas pour les méthodes explicites

La figure 3.12 montre les hésitations de la méthode ode45 sur un problème raide.Ces hésitations s’expliquent par sa stratégie de contrôle du pas.

75

Page 76: Analyse numérique avec TP INSA Toulouse

FIGURE 3.13 – Evolution des trois concentrations dans la réaction de Robertson..

Estimation de l’erreur

En général, les solutions peuvent varier lentement à certains endroits, et plus rapide-ment à d’autres. Un pas constant n’est donc pas toujours adapté. Il est souhaitable depouvoir décider à chaque instant d’un pas qui permet de respecter une tolérance fixéeà priori. C’est le comportement local de la solution qui permettra de décider, et on va seservir des erreurs locales de discrétisation (3.28).

Ces erreurs font a priori intervenir une solution exacte du problème, qui est inacces-sible. Supposons cependant que l’on dispose de deux méthodes, une d’ordre p1 et l’autred’ordre p2, avec p1 > p2. Partant de la valeur yn calculée à l’étape n, elle fournissent sui-vant (3.28) et (3.31)

y(1)n+1 = zn(tn+1) + δ

(1)n+1 ' zn(tn+1) + C1 h

p1+1

y(2)n+1 = zn(tn+1) + δ

(2)n+1 ' zn(tn+1) + C2 h

p2+1

On déduit |y(2)n+1 − y(1)n+1| ' |C2 h

p2+1 − C1 hp1+1| ∼ |C2 h

p2+1| au voisinage de h = 0.

On se fixe une tolérance tol, et on souhaite que ε = |y(2)n+1 − y(1)n+1| soit aussi voisin

que possible de cette tolérance, sans la dépasser. On choisira par exemple de calculerun pas nouveau hnouv de façon que tol ' C2 h

p2+1nouv .

On a donctol

ε=C2 h

p2+1nouv

C2 hp2+1, de sorte que

hnouvh

=

(tol

ε

) 1p2+1

.

76

Page 77: Analyse numérique avec TP INSA Toulouse

On choisit alors, avec une petite marge de sécurité, le nouveau pas :

hnouv = 0.9h

(tol

ε

) 1p2+1

(3.43)

Le seul problème est que l’on doit mettre en oeuvre 2 méthodes pour mener à biences calculs.

Méthodes emboitées

L’idée des méthodes de Runge-Kutta emboitées est d’utiliser les mêmes calculs pourles deux méthodes. Pour illustrer ce principe, observons les diagrammes la méthoded’Euler améliorée et de la méthode de Runge-Kutta d’ordre 4 :

01/2 1/2

0 1

01/2 1/21/2 0 1/21 0 0 1

1/6 1/3 1/3 1/6

Ces deux diagrammes peuvent se rassembler en un seul :

01/2 1/21/2 0 1/21 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 méthode d’ordre p1 = 4 conduit à calculer, à l’étape n, pourle pas courant h :

k1 = f(tn, y),

k2 = f(tn +h

2, yn +

h

2k1),

k3 = f(tn +h

2, yn +

h

2k2),

k4 = f(tn + h, yn + h k3)),

avant de poser y(1)n+1 = yn +h

6(k1 + 2k2 + 2k3 + k4). Ces mêmes calculs peuvent être

utilisés pour calculer y(2)n+1 = yn + h k2. Cette fois, la méthode est d’ordre p2 = 2, etsuivant (3.43), le nouveau pas sera donné par :

hnouv = 0.9h

(tol

ε

) 13

Remarque 33 En fait, on travaille plutôt avec des erreurs relatives,

ε =|y(2)n+1 − y

(1)n+1|

max{|y(2)n+1|, |y(1)n+1|}

.

77

Page 78: Analyse numérique avec TP INSA Toulouse

A l’étape n, on commence par comparer ε à tol, et le calcul n’est conservé que lorsqueε < tol. La valeur choisie pour la suite sera yn+1 = y

(1)n+1.

La paire de Bogacki et Shampine

Les fonctions ode23 et ode45 de MATLAB emboîtent respectivement des méthodesd’ordres (2, 3) et (4, 5). ode45 est à 7 étages, connue dans la littérature sous le nom deméthode de Dormand-Prince d’ordres (4, 5).

ode23 est caractérisée 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 méthode de Bogacki et Shampine. On vérifiera enexercice qu’elle est bien d’ordres (2, 3). C’est la méthode 1 qui est d’ordre 3, de sorte quel’on ne calcule pas y(2)n+1.

Avec y(1)n+1 = yn +h

9(2 k1 + 3 k2 + 4 k3), on doit calculer k4 = f(tn+1, y

(1)n+1) pour esti-

mer

y(2)n+1 = yn +

h

24(7 k1 + 6 k2 + 8 k3 + 3k4) ,

puis faire la différence ε = y(1)n+1 − y

(2)n+1. On préfère calculer directement

ε =h

72(−5 k1 + 6 k2 + 8 k3 − 9 k4) .

3.3.2 Méthodes implicites

Les méthodes implicites nécessitent à chaque pas la résolution d’une équation (oud’un système) non linéaire. Cette équation est définie par :

yn+1 = yn + hΦ(tn+1, yn+1, h). (3.44)

Stratégie de prédiction-correction (PECE)

On considère la méthode d’Euler implicite. Il faut résoudre l’équation x = yn+h f(tn+1, x),où x désigne l’inconnue yn+1.

78

Page 79: Analyse numérique avec TP INSA Toulouse

On peut imaginer une méthode de point fixe définie par la fonction g(x) = yn +h f(tn+1, x). Si f satisfait les hypothèses du théorème 6, on aura

|g(y)− g(z)| = |h f(tn+1, y)− h f(tn+1, z)| 6 hL |y − z|.

Choisissons alors x(0), si possible voisin de la solution, et calculons

x(1) = yn + h f(tn+1, x(0)) = g(x(0)) (3.45)

Comme g(x) = x, on aura

|x(1) − x| 6 hL |x(0) − x|. (3.46)

Il faudra choisir un pas h tel que h <1

Lpour 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 même ordre que les containtes de stabilité de laméthode explicite !

On préfère travailler uniquement avec x(0) et x(1) en mettant en place une stratégiede contrôle du pas. La première étape est un bon choix de x(0) : on le calcule en utilisantla méthode d’Euler explicite, et on calcule x(1) suivant (3.45). Cette stratégie est connuesous le nom de stratégie de prédiction-correction.

En supposant yn calculé, et en notant fn = f(tn, yn), le calcul de yn+1 se fait selon :

Prédiction y(P )n+1 = yn + h fn

Evaluation f(P )n+1 = f(tn+1, y

(P )n+1)

Correction y(C)n+1 = yn + h f

(P )n+1

Evaluation fn+1 = f(tn+1, y(C)n+1)

Remarque 34 Cette stratégie est également utilisée dans le cadre de méthodes multi-pas. Les plus utilisées sont les méthodes d’ Adams :

- les méthodes d’Adams-Basforth sont explicites,- les méthodes d’Adams-Moulton sont implictes.On peut donc les associer dans une stratégie PECE avec un contrôle du pas. La

fonction ode113 de MATLAB implante cette méthode, pour des ordres pouvant varier de1 à 13.

Contrôle du pas des méthodes PECE

Pour décider de garder x(1), il faut s’assurer que la majoration (3.46) est acceptable.On le fait de façon empirique en évaluant l’écart

∆ = |y(P )n+1 − y

(C)n+1|

79

Page 80: Analyse numérique avec TP INSA Toulouse

Pour tirer profit de cette évaluation, il faut un peu plus d’informations sur l’erreur localede discrétisation δn (3.28). Pour les méthodes d’Euler, on a

- dans le cas explicite, zn(tn+1) = yn + h f(tn, yn)) +h2

2z′′n(tn,1),

- dans le cas implicite, zn(tn+1) = yn + h f(tn, zn(tn+1))−h2

2z′′n(tn,2).

tn,1 et tn,2 sont tous deux dans l’intervalle [tn, tn+1]. On peut donc espérer que

zn(tn+1)) ' y(P )n+1 +

h2

2y′′(tn,1),

zn(tn+1)) ' y(C)n+1 −

h2

2y′′(tn,2).

Par soustraction, on obtient ∆ ' Kh2, de sorte que

|y(C)n+1 − zn(tn+1)| '

2.

Pour une tolérance tol choisie, si∆

2< tol, on accepte la valeur yn+1 =

1

2(y

(P )n+1+y

(C)n+1).

Dans tous les cas, on choisit alors un nouveau pas hnouv selon, par exemple,

hnouv = 0.9h

√2 tol

∆.

80

Page 81: Analyse numérique avec TP INSA Toulouse

Deuxième partie

Sujets de Travaux Pratiques

81

Page 82: Analyse numérique avec TP INSA Toulouse
Page 83: Analyse numérique avec TP INSA Toulouse

Sujet du TP 1

Estimation de paramètres par laméthode des moindres carrés

1.1 Objectif du TP

Ce TP porte sur la détermination, à partir de résultats expérimentaux, des para-mètres permettant de calculer la vitesse d’une réaction enzymatique obéissant à la loide Michaelis-Menten.

De manière générale, une réaction enzymatique peut être modélisée de la façon sui-vante :

E + Sk1k′1

ESk2→E + P, (1.1)

où E désigne l’enzyme, S le substrat avec lequel réagit l’enzyme, ES le complexe enzyme+ substrat, et P le produit de la réaction. Dans ce processus, on note que l’enzyme joueuniquement le rôle d’un catalyseur pour la réaction globale :

E + S→E + P, (1.2)

En toute rigueur, il faudrait également tenir compte de la réaction inverse,E+P →ES.Cependant, au moins en début de réaction, la concentration en produit(s) P est suffisam-ment faible pour que l’on puisse négliger la vitesse de cette réaction devant celle de laréaction directe.

Pour les applications (dimensionnement d’un réacteur, par exemple), il est utile dedisposer d’une relation permettant de calculer la vitesse de la réaction globale (1.2) enfonction de la concentration totale en enzyme[E]t et de la concentration en substrat [S].On définit la vitesse de la réaction (1.2) par :

V =d[P ]

dt. (1.3)

83

Page 84: Analyse numérique avec TP INSA Toulouse

Pour obtenir une expression simple de V en fonction de [S] et [E]t, il est nécessairede faire les hypothèses suivantes :

(i) [S]� [E]t, si bien que la formation du complexe ES n’a pas d’effet sur la concen-tration du substrat [S] ;

(ii) la vitesse de la réaction E + SES est infiniment rapide devant celle de la ré-action ES→E + P , de sorte que l’on peut considérer que la première réaction estconstamment à l’équilibre chimique ;

(iii) la vitesse de la réaction inverse E + P →ES est négligeable devant celle de laréaction directe.

A partir de l’hypothèse (ii) et de la loi d’action de masse, on obtient :

[E][S]

[ES]= KM , (1.4)

où KM est une constante, fonction de la température et du pH de la solution, maisindépendante des concentrations [E], [S], et [ES]. KM est appelée constante de Michae-lis.

D’autre part, d’après (iii) et par définition de la constante de vitesse k2(fonction de latempérature et du pH), on a :

d[P ]

dt= k2[ES]. (1.5)

Sachant que [E]t = [ES] + [E], on déduit de (1.4) et (1.5) la relation suivante :

V

[E]t=

k2[ES]

[ES] + [E]=

k2[S]

KM + [S], (1.6)

soit encore, en posant VM = k2[E]t,

V =VM [S]

KM + [S]. (1.7)

L’équation (1.7) est appelée équation de Michaelis-Menten. On note que, par défi-nition, la constante VM est fonction de la température, du pH et de la concentration enenzyme [E]. Elle correspond à la vitesse maximale de la réaction, obtenue lorsque laconcentration en substrat [S] tend vers l’infini.

En pratique les constantes KM et VM peuvent difficilement être obtenues théorique-ment. Il est donc nécessaire de les estimer à partir de mesures expérimentales de lavitesse V pour différentes valeurs de la concentration en substrat. On est donc amenéà résoudre un problème inverse non linéaire.

Pour se ramener à un problème linéaire, on remarque qu’en posant

84

Page 85: Analyse numérique avec TP INSA Toulouse

s =1

[S], v =

1

V, a =

KM

VM, b =

1

VM, (1.8)

l’équation (1.7) est équivalente à l’équation suivante :

v = as+ b. (1.9)

Par conséquent, si on a effectué n mesures de vitesse de réaction, on est conduit àla résolution d’un système linéaire surdéterminé, d’inconnues a et b :

s1a+ b = v1s2a+ b = v2

......

...sna+ b = vn

(1.10)

où les couples (si, vi) correspondent aux n résultats de mesure.

1.2 Principe de la méthode

D’après (1.10), le problème à résoudre est de la forme suivante :

A.x = f, (1.11)

où A est une matrice réelle, injective, de dimension n×p, x un vecteur de dimension pet f un vecteur de dimension n avec n > p. Un tel système linéaire est dit surdéterminé.En général, il ne possède pas de solution sauf si f ∈ Im(A). En pratique, cette conditionn’est jamais satisfaite du fait des erreurs de mesure et des approximations inhérentesau modèle physique utilisé. Il est donc nécessaire de définir une solution généralisée dusystème (1.11).

On dit que x est solution de (1.11) au sens des moindres carrés si et seulement si :

∀z ∈ Rp, ‖A.x− f‖22 ≤ ‖A.z − f‖22, (1.12)

où ‖y‖2 désigne la norme euclidienne du vecteur y dans Rn. L’intéret de cette normetient au fait que la solution du problème de minimisation (1.12) possède alors une solutionexplicite donnée par :

x = (AT .A)−1AT .f, (1.13)

où AT désigne la transposée de la matrice A. Dans certaines situations, il peut êtreintéressant d’affecter un poids différent aux équations du système (1.11), afin de traduire

85

Page 86: Analyse numérique avec TP INSA Toulouse

le fait que certaines mesures sont plus fiables que d’autres ou bien que le modèle utiliséest plus précis dans certaines plages de valeurs que dans d’autres. On remplace alors ladéfinition (1.12) par :

∀z ∈ Rp, ‖W.(A.x− f)‖22 ≤ ‖W.(A.z − f)‖22 (1.14)

où W est une matrice diagonale de coefficients w1, w2, . . . , wn. D’après (1.14), on voitque le réel w2

i s’interprète comme le poids relatif affecté à l’équation (i) du système (1.11).

Tout comme (1.12), le problème (1.14) possède une solution explicite donnée par :

x = (AT .P.A)−1AT .P.f, (1.15)

avec P = W T .W .

1.3 Travail demandé

On s’intéresse à des réactions enzymatiques faisant intervenir la lactase neutre. Onétudie deux substrats différents : l’ONPG (orthonitrophenyl galactoside) qui est un sub-strat artificiel et le lactose qui est le substrat naturel de l’enzyme. Dans les deux cas, onconsidère que la vitesse initiale de la réaction enzymatique, V, obéit à la loi de Michaelis-Menten (1.7) et on souhaite estimer les deux paramètres KM et VM .

Pour cela, on effectue des mesures de la vitesse de réaction (à 40 C et pH 7) à partird’une solution liquide de lactase neutre pour différentes concentrations en substrat. Lestableaux suivant regroupent les résultats obtenus pour chacun des deux substrats :

ONPG (g/l) 1.25 2.5 5.0 7.5 10.0 15V (U/ml) 1180 2000 2980 3820 4310 5000

Lactose (mM) 5 10 20 50 100 200 300V (U/ml) 750 1400 2170 4380 6410 8890 9250

où U désigne l’unité choisie pour la vitesse de réaction (M/s ou g/s).

On sait qu’en posant s = 1/[S] ([S] désignant la concentration en substrat) et v = 1/V ,l’équation de Michaelis-Menten est équivalente à l’équation linéaire suivante :

v =1

Vm+Km

Vms (1.16)

86

Page 87: Analyse numérique avec TP INSA Toulouse

Questions

1. En vous servant de l’équation (1.16), montrer que le problème de la détermina-tion des constantes Km et Vm, à partir des résultats de mesures, est équivalentà la résolution d’un système linéaire surdéterminé. Donnez l’expression de la ma-trice et du second membre de ce système en fonction des données expérimentales(concentrations en substrat, vitesses initiales de la réaction).

2. Ecrire une fonction MATLAB, dont les arguments sont 2 vecteurs contenant res-pectivement les concentrations en substrat et les vitesses de réaction, et qui ren-voie les paramètres cinétiques Km et Vm, calculés par la méthode des moindrescarrés. Pour chacun des substrats, tracer la courbe théorique V = f([S]) donnéepar la loi de Michaelis-Menten pour les valeurs obtenues de Km et Vm et faire figu-rer sur le même graphe les points expérimentaux. Que constatez vous dans le casdu lactose ? Expliquer en vous servant de l’interprétation graphique de la méthodedes moindres carrés le lien entre ce problème et le changement de variable utilisépour linéariser la loi de Michaelis-Menten.

3. Proposer une méthode de moindres carrés pondérée qui permet de corriger ceproblème en donnant un poids plus important aux résultats expérimentaux cor-respondant aux grandes valeurs de [S]. Vérifier son efficacité en l’appliquant auxvaleurs expérimentales du lactose.

87

Page 88: Analyse numérique avec TP INSA Toulouse

88

Page 89: Analyse numérique avec TP INSA Toulouse

Sujet du TP 2

Résolution d’un système non linéairepar la méthode de Newton

2.1 Sujet du problème

L’objectif du TP est de résoudre par la méthode de Newton un système d’équationsalgébriques non linéaires permettant de déterminer l’équilibre d’adsorbtion d’un mélangede protéines par une résine échangeuse d’ions. La modélisation du problème et l’utili-sation de la loi d’action de masse (voir document joint en annexe) conduisent aux deuxrelations suivantes :

C1 =q1K1

(CS

QX − z1q1 − z2q2

)z1(2.1)

C2 =q2K2

(CS

QX − z1q1 − z2q2

)z2(2.2)

où les inconnues sont les concentrations q1 et q2 des 2 protéines adsorbées par larésine. On prendra les données suivantes :

K1 = 8200, K2 = 148,

z1 = 6, z2 = 2,

C1 = C2 = 0, 01,

CS = 0, 03, QX = 0, 011.

89

Page 90: Analyse numérique avec TP INSA Toulouse

2.2 Travail demandé

1. Pour résoudre le système (2.1)-(2.2) par la méthode de Newton, vous mettrezd’abord ce système sous la forme

f(q) = 0, (2.3)

avec q ∈ IR2 et f(q) ∈ IR2. Plusieurs choix sont possibles pour la fonction f . Vousveillerez à ce que l’expression choisie pour la fonction f ne contienne pas de frac-tion dont le dénominateur peut s’annuler pour certaines valeurs particulières de q.Calculez ensuite l’expression de la matrice jacobienne de f .

2. Pour résoudre le système (2.2) par la méthode de Newton, vous créerez les fichierssuivants :– un ficher fun.m avec l’entête :

function y = fun(q,K1,K2,z1,z2,....)qui prend en entrée q et la liste des donnéesK1,K2, z1, z2, . . ., et renvoie la valeurde la fonction f(q).

– un ficher dfun.m avec l’entête :function df = dfun(q,K1,K2,z1,z2,....)

qui prend en entrée q et les données et renvoie la matrice Jacobienne :

Df(q) = (∂fi/∂qj)i,j=1,N

– un ficher main.m, le programme principal, dans lequel vous initialisez vos don-nées et variables, et mettez en oeuvre la méthode de Newton.

3. Une fois votre programme terminé, calculer la valeur des concentrations q1 et q2correspondant aux données de l’énoncé. Tester la sensibilité des résultats obtenuspar rapport à la précision du critère d’arrêt choisi et par rapport au choix des valeursinitiales pour q1 et q2. Que constatez vous ?

90

Page 91: Analyse numérique avec TP INSA Toulouse

Sujet du TP 3

Equations Différentielles Ordinaires

Les questions 1 et 2 doivent être traîtées avant le TD en temps de travail personnel.

Pour a > 0, on considère le problème{y′(t) = a(cos t− y(t)), t ∈ [0, π/2] ,y(0) = 0

(3.1)

1. Montrer que la solution exacte du problème (1) est

y(t) =a

a2 + 1

(a cos t+ sin t− a e−at

)(3.2)

2. Montrer que lima→∞

y(t) = cos t pour t > 0.

3. Ecrire une fonction MATLAB ayant comme arguments d’entrée les paramètres a, lenombre de points de discrétisation N et le temps final Tf (le pas h est une fonction de Net Tf ). Cette fonction doit restituer en sortie les points tn = nh tels que 0 6 tn 6 4 et lesvaleurs y(tn) de la solution exacte aux points tn. La déclaration proposée est :

function [t,yex]=euler(a,N,Tf)

4. Tracer la solution exacte du problème (3.1), avec 100 points, pour différents para-mètres : a = 5, a = 20 et a = 50. Qu’observe-t-on ?

5. Enrichir la fonction MATLAB afin qu’elle retourne en sortie les points tn = nh, lesvaleurs y(tn) de la solution exacte aux points tn, ainsi les valeurs de la solution approchéeobtenue par l’algorithme d’Euler explicite et l’algorithme d’Euler implicite. La déclarationproposée est :

function [t,yex,yexp,yimp]=euler(a,N,Tf)

6. On s’intéresse aux résultats obtenus pour les jeux de données correspondant àa = 20 et {N = 40, 42, 50, 100}. Tracer dans une même figure la courbe exacte (en traincontinu), celle obtenue par le schéma d’Euler explicite (en pointillés −−) et par le schémad’Euler implicite (en pointillés alternés ·−·). Pouvez-vous expliquer les résultats obtenus ?

91

Page 92: Analyse numérique avec TP INSA Toulouse

7. Tracer les courbes d’erreurs commises par ces deux méthodes, en coordonnéeslogarithmiques (commande loglog avec la même syntaxe que plot), pour les valeursde N suivantes :

ListeN=[5 10 20 30 40 50 80 100 200 400 1000 5000 1e4 5e4 1e5];

Expliquez et commentez.

8. Implémenter une méthode d’ordre 2 au choix dans la fonction euler : RK2, Point-Milieu ou Crank-Nicholson pour les plus téméraires. Ajouter sa courbe d’erreur au dia-grame précédent.

9. Mesurer les pentes des différentes courbes d’erreur, et justifiez les valeurs de cespentes.

92

Page 93: Analyse numérique avec TP INSA Toulouse

Sujet du TP 4

Cinétique chimique d’un processusd’ozonation

4.1 Une réaction enzymatique enzyme substrat

Une réaction enzymatique simple met en présence une enzyme E, un substrat S pourformer un complexe C qui fournit de l’enzyme et un produit P . On traite un modèle trèsschématique de cette réaction :

E + S CC E + P

(4.1)

Les concentrations respectives du substrat et du complexe, notées xs et xc vont évo-luer au cours du temps. Au début de la réaction , c’est-à-dire au moment où l’on met enprésence enzyme et substrat, la concentration en substrat est 1 et celle du complexe est0. ε désignera la proportion d’enzyme dans le substrat, typiquement de l’ordre de 10−5.

La réaction (4.1) est alors décrite par le système d’équations différentielles (4.2) :{x′s = −xs + (xs + k1)xc,εx′c = xs − (xs + k2)xc.

(4.2)

Dans ce système, k1 et k2 désignent des constantes convenablement normalisées ;

on prendra k1 = 1 et k2 = 2, et{xs(0) = 1,xc(0) = 0.

.

La mise en oeuvre se fait grâce aux deux fichiers Enzime.m et Foncenzyme.mque vous allez créer, en définissant une variable vectorielle y dont les deux composantesseront xs et xc :

– Le fichier Enzime.m contient l’appel à un solveur de MATLAB, et vous commence-rez avec ode45, L’appel se faisant selon :

[t,Y]=ode45(@Foncenzyme,[0, Tfin],Yini);– Foncenzyme est le nom du fichier définissant la fonction MATLAB qui implante

la fonction F (t, y) décrivant l’équation (4.2). Cette fonction renvoie un vecteur co-lonne. Ses arguments sont dans cet ordre t et le vecteur y,

93

Page 94: Analyse numérique avec TP INSA Toulouse

FIGURE 4.1 – Schéma du réacteur gaz-liquide semi-continu considéré.

On visualisera la solution calculée en légendant la figure. On peut simplifier les mani-pulations en utilisant des variables globales (vérifier la syntaxe en tapant help global).

Ce problème est réputé très raide : la valeur du paramètre ε est telle que la réaction estbrutale à l’instant initial : vous observerez cette relation sur l’intervalle t0 = 0, tf = 10−4.On peut constater que le logiciel a du mal à calculer la solution sur un temps un peu long.Matlab propose des solveurs adaptés aux problèmes raides. Vous pouvez par exempleutiliser le solveur ode23s. Pour mieux visualiser la phase initiale, vous pourrez utiliserune représention graphique utilisant la fonction semilogx.

4.2 Transfert d’ozone gaz-liquide et réaction chimique en phaseliquide

Les applications industrielles où une espèce gazeuse est transférée d’une phase gazvers une phase liquide contenant un ou plusieurs réactifs avec le(s)quel(s) le gaz dissouspeut réagir sont fréquentes. Nous allons ici nous intéresser à un procédé de dépollutionde l’eau par ozonation.

4.2.1 Position du problème

L’ozonation s’effectue dans une colonne à bulles. Il n’y a pas de débit de liquide. Legaz est injecté à la base de la colonne et évacué à la sortie.

Dans notre exemple, le débit de gaz est Qg = 8.6 10−5 m3 s−1. Le gaz monte sousforme de bulles de 3.5 mm de diamètre à une vitesse Vg de 25 cm s−1. La section occupéepar le gaz est donc Ag = Qg/Vg = 3.4 10−4 m2. La section de la colonne de diamètre10 cm étant A = 7.8 10−3 m2, le taux de gaz est donc εg = Ag/A = 4.4 %.

L’ozone est transféré des bulles de gaz dans le liquide à travers l’aire interfacialevolumique notée a, avec une vitesse de transfert kL. L’aire interfaciale dépend de la tailledes bulles et de la rétention volumique de bulles dans la colonne. Le taux de gaz, noté

94

Page 95: Analyse numérique avec TP INSA Toulouse

εg, correspond aussi à la fraction volumique de phase dispersée dans la colonne. Il estdonc aussi défini comme le rapport du volume ϑg de la phase dispersée au volume ϑ du

contacteur, εg =ϑgϑ

. Dans le cas d’une dispersion de sphères de même diamètre d, la

fraction volumique s’écrit εg =nπ d3

6ϑ.

Par définition, l’aire interfaciale d’échange par unité de volume du contacteur, notée a

s’écrit a =Aiϑ

, où Ai représente l’aire interfaciale d’échange de l’ensemble des inclusionsdans le contacteur. Dans le cas d’une dispersion de sphères de même diamètre d, l’aire

interfaciale d’échange par unité de volume du contacteur a s’écrit a =nπ d2

ϑ.. Il est alors

possible de relier l’aire interfaciale d’échange par unité de volume du contacteur a à lafraction volumique de phase dispersée ε par

a =6 εgd.

Pour une fraction volumique de gaz de 4.4 % et des bulles de 3.5 mm de diamètre,l’aire interfaciale volumique vaut a = 75 m−1. La vitesse de transfert peut être estiméepar le modèle de Higbie,

kL = 2

√D

π tc,

où D désigne le coefficient de diffusion de l’ozone dans l’effluent et tc le temps de contactentre le gaz et le liquide. Le temps de contact se calcule en fonction du diamètre desbulles et de leur vitesse. La vitesse d’ascension de bulles d’air de 3.5 mm de diamètreest de 25 cm s−1. Le temps de contact est

tc =d

Vg= 0.0014 s.

La diffusivité de l’ozone dans l’effluent est D = 1.74 10−9 m2 s−1, de sorte que lavitesse de transfert sera kL = 4 10−4 m s−1. On en déduit le coefficient de transfert kLa =3 10−2 s−1.

L’ozone, gaz couramment utilisé en traitement de l’eau, se dissout puis réagit avecl’acide maléique (HO2C–CH=CH–02H), composé organique étudié dans notre cas, endonnant plusieurs composés : l’acide glyoxalique (HOC–C02H) et de l’acide formique(HCO2H) ; l’acide glyoxalique réagit également avec l’ozone et fournit de l’acide oxalique(HO2C–CO2H).

Acide maléique + ozone −→ ν2 acide glyoxalique + ν3 acide formique,

acide glyoxalique + ozone −→ ν4 acide oxalique,

acide formique + ozone −→ produits,

acide oxalique + ozone −→ produits.

Ces équations ne suffisent pas pour écrire le système différentiel !

95

Page 96: Analyse numérique avec TP INSA Toulouse

4.2.2 Mise en équation

La première opération consiste à écrire les bilans de matière dans la phase gaz etdans la phase liquide. Un bilan de matière s’écrit suivant le schéma

ENTRÉE = SORTIE + ACCUMULATION + RÉACTION + TRANSFERT

On commence par écrire la bilan de l’ozone gaz dans la colonne. Le gaz entre à labase de la colonne et sort à travers la surface libre ; Qg représente le débit gazeux. Pen-dant l’ascension du gaz dans la colonne, une partie de l’ozone gaz est transférée : elleest décrite par le coefficient de transfert kLa et par la concentration d’ozone à l’interfacegaz-liquide Ceq = 0.34Co. La concentration d’ozone dans le gaz en moyenne dans lacolonne varie donc au cours du temps. La concentration en ozone du gaz à l’intérieur duréacteur est notée

Co =[03, g]e + [03, g]s

2.

Le bilan de matière pour l’ozone dans la phase gaz s’écrit donc

Qg [03, g]e = Qg [03, g]s + kLa (Ceq − [03, l]) ϑl + ϑgdCo

dt(4.3)

On écrit ensuite le bilan de matière pour l’ozone liquide dans la colonne. Le réac-teur est fermé au liquide : il n’y a pas d’écoulement de liquide. L’ozone est transféré auniveau des interfaces gaz-liquide. Il réagit ensuite avec les différents composants et saconcentration varie au cours du temps. Le bilan de matière de l’ozone liquide s’écrit

kLa (Ceq − [03, l]) =d[03, l]

dt+ [03, l] (k1 [AM] + k2 [AG] + k3 [AF] + k4 [AO]) . (4.4)

On écrit enfin les bilans de matière pour les différentes espèces qui réagissent dansle liquide avec l’ozone.

Acide maléique :d [AM]

dt+ k1 [03, l] [AM] = 0 (4.5)

Acide glyoxylique :

d [AG]

dt− ν2 k1 [03, liq] [AM] + k2 [03, liq] [AG] = 0 (4.6)

Acide formique :

d [AF]

dt− ν3 k1 [03, liq] [AM] + k3 [03, liq] [AF] = 0 (4.7)

Acide oxalique :

d [AO]

dt− ν4 k2 [03, liq] [AG] + k4 [03, liq] [A0] = 0 (4.8)

4.2.3 Mise en œuvre

Les inconnues du problème sont les six concentrations pour lesquelles on a écritl’équation du bilan. Elles seront les six composantes d’une fonction y(t) , définie sur

96

Page 97: Analyse numérique avec TP INSA Toulouse

[0, tfin] à valeurs dans R6. Ce sont respectivement [03, g]s, [03, l], [AM], [AG], [AF] et[AO]. La fonction y(t) est solution du système différentiel formé des équations (4.3) à(4.8) que l’on peut écrire sous la forme

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

La mise en œuvre se fait en utilisant deux fichiers, le fichier d’instructions Resolution.met le fichier de fonction Bilmat.m.

Le fichier Bilmat.m est un fichier de fonction qui décrit la fonction F de (4.9). Sadéclaration pourra être function yprime = Bilmat(t, y);.

Le fichier Resolution.m contiendra– Les initialisations, et déclaration de constantes. On choisira tfin = 6000 s. Les

autres constantes sont données dans le tableau suivant, en unités du systèmeinternational :

Qg 8.6 10−5 kLa 0.03 k1 1

|O3, g]e 0.67 ν2 1 k2 0.002

ϑl 8.5 10−3 ν3 1.15 k3 0.07

Vg 2.5 10−4 ν4 0.75 k4 4 10−5

– L’appel au solveur de MATLAB, sous la forme[t, y] = ode45(@bilmat, intervalle, yini, options);

– La variable intervalle contient une spécification des instants auquels on de-mande au solveur de nous fournir les solutions calculées. On devra l’initialiser avantl’appel au solveur, par exemple selontfin = 6000 ; Nt = 1000 ; intervalle = [0: tfin/Nt : tfin];

– La variable yini contient les composantes de y(0), fixées à 0 sauf pour l’acidemaléique pour lequel la concentration initiale est 3.685 mol.m−3.

– La variable options est facultative, et dans un premier temps, on peut s’en dis-penser. Elle permet de préciser certains paramètres du solveur. Elle est créée parla fonction odeset. On pourra tester l’influence d’une précision augmentée en mo-difiant les seuils de tolérances utilisés pour le contrôle du pas, par exemple :options = odeset(’Reltol’,1e-6,’Abstol’, 1e-6*ones(6,1));

On pourra aussi demander des informations sur le coût des différentes méthodesen activant l’option Sats si l’on veut comparer ode45 à une méthode recomman-dée pour les problèmes raides (ode15s ou ode23s). On peut aussi faire cettecomparaison au niveau des temps de calcul (fonctioncputime).

– Vous représenterez les évolutions des concentration de [03, g], [03, l] et des 4 acidessur trois figures différentes.

– Vous ferez une étude de sensibilité au diamètre des bulles.– Vous représenterez sur les figures correspondantes les données expérimentales

fournies dans le tableau 4.1 en utilisant des marqueurs.– Vous commenterez votre travail

Ces données ainsi que les paramètres utilisés peuvent s’obtenir en éxécutant le fi-chier donnees.m que l’on peut télécharger à l’adresse :

97

Page 98: Analyse numérique avec TP INSA Toulouse

t [03, g] [03, l] [AM] [AG] [AF] [A0]

0 0 0 3.685 0 0 0180 0.219 0.005 2.888 0.558 0.540 0360 0.227 0.006 2.112 1.159 1.322 0540 0.233 0.008 1.409 2.023 2.564 0720 0.244 0.011 0.699 3.376 3.203 0.004900 0.252 0.016 0.137 3.707 3.494 0.013

1080 0.263 0.021 0.001 3.615 2.981 0.0501260 0.275 0.038 0 3.517 2.373 0.0971500 0.290 0.050 0 3.447 1.536 0.1651800 0.329 0.088 0 3.366 0.642 0.2662100 0.442 0.159 0 3.097 0 0.4492400 0.527 0.186 0 2.780 0 0.6492700 0.542 0.189 0 2.454 0 0.8253150 0.552 0.188 0 2.107 0 1.0823600 0.560 0.189 0 1.786 0 1.3034200 0.579 0.194 0 1.412 0 1.5484800 0.592 0.195 0 1.191 0 1.734

TABLE 4.1 – Données expérimentales, en secondes et Moles m−3.

http://www-gmm.insa-toulouse.fr/~poncet/tpgpi3ozone.m

98

Page 99: Analyse numérique avec TP INSA Toulouse

Sujet du TP 5

Stabilité des schémas d’EDP

5.1 Formulation du problème

On considère l’équation de la chaleur suivante :∂u

∂t− a∂

2u

∂x2= 0 dans ]0, L[× ]0, T [

u(0, t) = 0 et u(L, t) = 0

u(x, 0) = u0(x)

(5.1)

avec a > 0 le coefficient de conductivité thermique.

On discretise l’intervalle [0, L] en n + 2 points par xi = i δx, i = 0..n + 1 et δx =L/(n + 1). On utilise cette discrétisation en espace pour l’équation (5.1) en introduisantla fonction U(t) ∈ Rn telle que

U i(t) ' u(xi, t)

pour i = 1..n (pour i = 0 et i = n+ 1 la solution est nulle).

On s’intéresse à présent uniquement aux indices de 1 à N , puisque la solution estnulle 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+ → Rn est alors solution de l’équation différentielle ordinaire sui-vante :

U ′i(t) = −a−Ui−1(t) + 2Ui(t)− Ui+1(t)

δx2(5.2)

c’est à direU ′(t) = −(a/δx2)P U(t) (5.3)

99

Page 100: Analyse numérique avec TP INSA Toulouse

avec la condition initiale Ui(0) = u0(xi) avec :

u0(x) =1√2πσ

e−(x−x0)2/2σ2

la gaussienne 1D centrée en x0 = 0.5 et d’écart-type σ = 0.05. On peut alors intégrer, auchoix, cette EDO par un schéma de type Euler explicite ou Euler implicite.

Application numérique : On prendra dans tout le TD L = 1, n = 49 et a = 4 10−4.

5.2 Euler explicite

On considère à présent une discrétisation en temps tn = n δt. L’équation (5.3), dis-crétisée par le schéma d’Euler Explicite, s’écrit sous la forme de l’itération suivante :

Un+1i − Uni

δt= −a

−Uni−1 + 2Uni − Uni+1

δx2

avec Uni ' U i(tn), c’est à dire

Un+1 = (I − λP )Un (5.4)

avec λ = aδt/δx2 et la condition initiale U0i = u0(xi).

Travail 1 : Coder en MATLAB la matrice I − λP pour un pas de temps δt = 0.1, ainsique l’itération (5.4).

Travail 2 : Quelle est la condition de stabilité de ce schéma, vue en cours ? Quellerelation, avec les paramètres de l’application numérique 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 final Tf = 500, avec Nt pointsde discrétisation en temps (en incluant la condition initiale). Le pas de temps est donc

δt = Tf/(Nt+ 1)

Ecrire une fonction qui prend en entrée Nt, Tf et la donnée initiale Uinit sous forme d’unvecteur 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 lesvaleurs suivantes de Nt :

Nt=2000,1000, 980, 960

Qu’observe-t-on ?

Travail 4 : Calculer à présent les valeurs maximales de la solution ‖U(Tf)‖∞ enTf = 200 pour les valeurs suivantes de Nt :

ListeNt=[200 250 300 350 390 400 410 420 450 500 600 800 1000] ;

100

Page 101: Analyse numérique avec TP INSA Toulouse

Tracer ‖U(Tf)‖∞ en fonction de δt en coordonnées logarithmiques sur l’axe des or-donnéees seulement (commande semilogy). Qu’observe-t-on et pourquoi ? Comment ex-pliquer le très léger décalage entre la valeur thérique et la valeur de décrochage effec-tive ?

5.3 Euler implicite

On considère à présent l’équation (5.3) discrétisée par le schéma d’Euler Implicite,sous la forme de l’itération suivante :

Un+1i − Uni

δt= −a

−Un+1i−1 + 2Un+1

i − Un+1i+1

δx2

c’est à direUn+1 = (I + λP )−1Un (5.5)

avec λ = aδt/δx2 et la condition initiale U0i = u0(xi).

Il est bien evidemment impossible d’inverser la matrice I + λP . On résoudra le sys-tème linéaire suivant à chaque itération, en utilisant la commande \ :

(I + λP )Un+1 = Un

Travail 5 : Même travail (1 à 3) que pour Euler Explicite, en enrichissant la fonctionstabsol afin qu’elle retourne également la solution en Tf obtenue par la méthode d’Eulerimplicite :

function [Uexp,Uimp,dt]=stabsol(Nt,Tf,Uinit)

Travail 6 : Superposer les courbes de valeurs maximales (cf. question 4) en Tf = 200pour les deux méthodes.

Travail 7 : Faire une analyse critique des deux méthodes.

101

Page 102: Analyse numérique avec TP INSA Toulouse

102

Page 103: Analyse numérique avec TP INSA Toulouse

Sujet du TP 6

Construction d’un solveur elliptique

On considère l’équation de convection-diffusion 1D suivante : −ν1(x)u′′(x) + ν2(x)u′(x) = f(x) dans ]L1, L2[

au(L1) + bu′(L1) = g1 et cu(L2)− du′(L2) = g2

(6.1)

avec ν1(x) > 0 le coefficient de diffusivité, a priori variable. Cette équation appartient à lacatégorie des équations aux dérivées partielles elliptiques du second ordre.

Les fonctions ν1 et ν2 doivent être codées dans deux fonctions MATLAB nu1 et nu2qui sont des fonctions réelles d’une variable, rendant par défaut respectrivement 1 et 0.

On considère le maillage en espace de l’interval [L1, L2] en N points incluant lesbords :

xi = L1 + (i− 1)δx, pour i = 1..N et δx = (L2 − L1)/(N − 1)

Vérifiez que x1 = L1 et xN = L2.

On discrétise la dérivée seconde par le schéma classique centré d’ordre 2 à 3 points :

−u(xi−1) + 2u(xi)− u(xi+1)

δx2= −u′′(xi) +O(δx2)

et la dérivée première par

u(xi+1)− u(xi−1)

2δx= u′(xi) +O(δx2)

Pour les dérivées sur les bords, on utilise un schéma décentré d’ordre 2 :

−3u(xi) + 4u(xi+1)− u(xi+2)

2δx= u′(xi) +O(δx2)

et sa formule symétrique :

−3u(xi) + 4u(xi−1)− u(xi−2)

2δx= −u′(xi) +O(δx2)

Ainsi la condition limite au bord gauche de l’équation (6.1), c’est à dire

au(L1) + bu′(L1) = g1

103

Page 104: Analyse numérique avec TP INSA Toulouse

va se discrétiser par :

(a− 3b/2δx)U1 + (2b/δx)U2 − (b/2δx)U3 = g1 (6.2)

La discrétisation de l’équation (6.1) conduit à la résolution d’un système linéaireMU = F où la première et dernière lignes de M et de F constituent la discrétisationdes conditions aux limites. Par exemple, la première ligne de ce système linéaire, d’aprèsl’equation (6.2), s’écrit :

[a− 3b/2δx 2b/δx b/2δx 0 . . . 0]U = g1

Travail 1 : Ecrire les coefficients de la matrice M .

Travail 2 : Implémenter une fonction MATLAB qui prend tous les paramètres del’équation (6.1) et qui rend la solution sous forme d’un vecteur colonne de RN et lemaillage sous forme d’un vecteur colonne de même taille. Le prototypage proposé estle suivant : function [U,X]=solveurelliptique(N,L1,L2,F,a,b,G1,c,d,G2)

Les coefficients de la matrice M seront entrés à l’intérieur de cette fonction. La solu-tion du système linéaire est calculée en utilisant la commande MATLAB : U = M \ F .Commencez néanmoins par le coder le vecteur X dans cette procedure, ainsi que lesfonctions ν1 et ν2 !

Travail 3 – Problème de Dirichlet homogène : testez votre solveur sur le problèmesuivant : {

−u′′(x) = 2 sur ]− 1, 1[

u(−1) = u(1) = 0(6.3)

avec N = 20, qui admet comme solution exacte u(x) = 1 − x2. Tracer sur une mêmefigure la solution exacte en trait continu et la solution numérique avec des +. Que dire dela précision de la solution ?

Travail 4 – Problème mixte Dirichlet/Neumann homogène : même 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− x2.

Travail 5 – Testez votre solveur sur le problème suivant : −u′′(x) +u′(x)

x= 0 sur ]0, 1[

u(0) = 1 et u(1) = 0(6.5)

avecN = 50, qui admet une solution que l’on cherchera sous la forme u(x) = αx2+βx+γet que l’on comparera à la solution numérique.

Travail 6 – Trouver la solution exacte et tracer en log-log l’erreur commise en fonctionde δx pour le problème : {

−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 résultatobtenu.

104

Page 105: Analyse numérique avec TP INSA Toulouse

Sujet du TP 7

Ecoulement en conduite

On considère l’écoulement d’un fluide visqueux newtonien incompressible dans uneconduite verticale dont la paroi est immobile, indéformable et imperméable. On supposel’écoulement permanent et établi. L’écoulement se fait dans la direction verticale x3. Lerayon de la conduite est noté R. On fixe le gradient de pression moteur. On cherche ledébit de fluide associé. Pour cela, on calculera le profil radial de la vitesse U1(x3) quel’on intégrera ensuite.

7.1 Ecoulement laminaire

On rappelle l’équation de conservation de la quantité de mouvement longitudinale deNavier-Stokes :

0 = − ∂P∂x3

+ ρ1

r

∂r

(νr∂U3

∂r

)+ ρg3 (7.1)

Les conditions à la limite traduisent la symétrie sur l’axe :

r = 0 :∂U3

∂r= 0

et l’adhérence à la paroi :r = R : U3(R) = 0

Travail demandé :

1. Résoudre numériquement l’équation (7.1).

2. Tracer le profil de vitesse numérique et le comparer à la solution analytique.

3. Calculer le débit. En déduire le nombre de Reynolds.

4. Calculer numériquement le profil de cisaillement et le tracer.

5. Faire une analyse de sensibilité au maillage.

Application numérique : Le fluide est de l’eau. Le diamètre de la conduite est de0, 005m. On prendra g = 9.8m/s2. Le gradient de pression moteur vaut −9 900Pa/m,puis −9 700Pa/m.

105

Page 106: Analyse numérique avec TP INSA Toulouse

7.2 Ecoulement turbulent

On rappelle l’équation de conservation de la quantité de mouvement longitudinale enmoyenne de Reynolds :

0 = − ∂P∂x3

+ ρ1

r

∂r

((ν + νt(r))r

∂U3

∂r

)+ ρg3 (7.2)

les conditions à la limite s’écrivent :

r = 0 :∂U3

∂r= 0

et près de la paroi

r = R− δ : U3(R) = U∗(

1

κln(δ+) + 5.5

)où δ représente la distance à la paroi à partir de laquelle la vitesse logarithmique s’ap-plique. Pour la viscosité turbulente, on établira une forme polynomiale telle que sur l’axe,la viscosité vérifie la condition de symétrie :

r = 0 :∂νt∂r

= 0

et telle qu’à proximité de la paroi, la viscosité vérifie deux conditions, l’une sur le niveau deviscosité, l’autre sur la variation radiale de la viscosité en accord avec les comportementsétablis en cours :

r = R− δ : νt(r) = U∗κδ

On pourra soit calculer l’expression analytique de la viscosité turbulente de façon expli-cite, soit établir numériquement les valeurs des coefficients du polynôme.

Travail demandé :

1. Résoudre numériquement l’équation (7.2).

2. Tracer le profil de viscosité turbulente.

3. Tracer le profil de vitesse numérique et le comparer au profil logarithmique de vi-tesse près des parois.

4. Calculer le débit. En déduire le nombre de Reynolds.

5. Calculer numériquement le profil de cisaillement turbulent et le tracer.

6. Faire une analyse de sensibilité au maillage.

7. On pourra tester la sensibilité de la solution à différentes valeurs de δ+ .

Application numérique : Le fluide est de l’eau. Le diamètre de la conduite est de0, 05m. On prendra g = 9, 8m/s2. Le gradient de pression moteur vaut −15 000Pa/m,puis 0Pa/m.

106

Page 107: Analyse numérique avec TP INSA Toulouse

107

Sujet de TP 8

Modèle K-εεεε pour les

écoulements turbulents L’objectif du TD est de vous familiariser avec la modélisation de la turbulence. L’exemple traite d’un écoulement turbulent entre plaques. Le programme de résolution du problème, écrit sous Matlab vous est fourni, et se trouve disponible en téléchargement sur le site :

http://www-gmm.insa-toulouse.fr/~poncet/

dans la section « INSA students ». Il s’agit d’exécuter ce code, de le comprendre et d’en exploiter les résultats. Le programme résout 3 types de modèles de turbulence à 0 équation, à une équation et à 2 équations. C’est ce dernier modèle qui sera utilisé ultérieurement avec le code Fluent pour traiter des cas industriels. Le programme trace les profils de :

- vitesse longitudinale - énergie cinétique turbulente - taux de dissipation de l’énergie cinétique turbulente - viscosité turbulente

Au terme de l’exécution, nous vous demandons :

- de sauvegarder les données dans un fichier data.mat - de tracer les profils de :

o production de l’énergie cinétique turbulente o diffusion turbulente de l’énergie cinétique turbulente o dissipation visqueuse de l’énergie cinétique turbulente.

Pour cela, il faudra écrire un programme sous Matlab. Il faudra vérifier que le bilan est bien calculé. L’objectif est de comprendre dans quelle zone la turbulence est produite et dans quelle zone elle est diffusée. Il s’agira ensuite de tracer des échelles caractéristiques de longueur de la turbulence, à savoir les profils de :

- macroéchelle de Taylor Λ , - microéchelle de Taylor λ , - microéchelle de Kolmogorov η.

Page 108: Analyse numérique avec TP INSA Toulouse

108

8.1 Description de l’exemple traité On considère l’écoulement d’un fluide visqueux newtonien incompressible entre deux plaques parallèles, immobiles, indéformables et imperméables. On suppose l’écoulement permanent et établi. L’écoulement se fait dans la direction x1 qui est horizontale. Le fluide est borné par les parois dans la direction x2 ; les deux parois sont distantes de H . On fixe le gradient de pression moteur. On cherche le débit de fluide associé. Pour cela, on calculera le profil transversal de la vitesse U1(x2) . On rappelle l’équation de conservation de la quantité de mouvement longitudinale :

( )01 2

1

21= − + +

+

∂∂

ρ∂

∂ν ν

∂∂

ρP

x x

U

xgt

Les conditions à la limite pour la vitesse s’écrivent

+=−=

+==

+

+

5,5)(1

*)(

5,5)(1

*)(

212

212

δκ

δ

δκ

δ

LnUxUHx

LnUxUx

δ représente la distance à la paroi à laquelle la vitesse logarithmique s’applique. 8.1.1- Modèle algébrique de viscosité turbulente On peut établir une forme polynomiale de la viscosité turbulente telle qu’à proximité de la paroi, la viscosité vérifie :

x x U etx

U

x H x U etx

U

tt

tt

2 22

2 22

= = =

= − = = −

δ ν κ δ∂ ν∂

κ

δ ν κ δ∂ ν∂

κ

( ) * *

( ) * *

Ce premier modèle a déjà été résolu. Il fournit le profil de vitesse et le profil de viscosité turbulente algébrique.

X2

X1

U1(X2)

0

H

Page 109: Analyse numérique avec TP INSA Toulouse

109

8.1.2- Modèle à une équation de turbulence Dans ce cas, la viscosité turbulente s’écrit :

où l’échelle de longueur l est définie de façon algébrique et l’énergie cinétique turbulente k est calculée par la résolution de son équation de transport :

dans cette équation, le taux de dissipation de l’énergie cinétique turbulente s’écrit :

On peut établir une forme polynomiale de l’échelle de longueur telle qu’à proximité de la paroi, elle vérifie :

κ∂∂δκδ

κ∂∂δκδ

−==−=

===

222

222

)(

)(

x

letxlHx

x

letxlx

Les conditions aux limites pour l’énergie cinétique turbulente sont :

Ce deuxième modèle à une équation de turbulence fournit les profils de vitesse, d’énergie cinétique turbulente, de viscosité turbulente ainsi que le profil d’échelle de longueur algébrique l. 8.1.3- Modèle à deux équations de turbulence Dans ce cas, la viscosité turbulente s’écrit :

Pour la viscosité turbulente, on résout un modèle de turbulence à 2 équations:

lkCt'µν =

ε∂∂

∂∂

σν

∂∂ −−

=

2

121

22

''0x

Uuu

x

k

x k

t

l

kCd

23

ε∂∂

∂∂

σν

∂∂ −−

=

2

121

22

''0x

Uuu

x

k

x k

t

εν µ

2kCt =

µ

µ

δ

δ

C

UxkHx

C

Uxkx

2

22

2

22

*)(

*)(

=−=

==

Page 110: Analyse numérique avec TP INSA Toulouse

110

Le premier terme est un terme de diffusion turbulente, le second terme représente la production et le dernier terme représente la dissipation. Les conditions aux limites pour l’énergie cinétique turbulente et pour son taux de dissipation sont :

Ce dernier modèle à deux équations de turbulence, appelé modèle (k,ε) fournit les profils de vitesse, d’énergie cinétique turbulente, de son taux de dissipation et de viscosité turbulente. C’est à partir de ces résultats qu’il faudra calculer et tracer les 3 termes du bilan de l’énergie cinétique turbulente. 8.2 Echelles caractéristiques de longueur La macroéchelle de Taylor Λ correspond aux tourbillons énergétiques et est définie par :

ε

2/3k=Λ

La microéchelle de Taylor λ correspond aux plus petits tourbillons qui contiennent une quantité d’énergie et est définie par :

La microéchelle de Kolmogorov η correspond aux plus petits tourbillons qui dissipent l’énergie cinétique et est définie par :

En tout point d’un écoulement turbulent sont présents toute une gamme de tourbillons. Les 3 échelles ci-dessus sont les principales composantes du spectre.

k

C

x

Uuu

k

C

xxt

22

2

121

1

22

''0ε

∂∂ε

∂ε∂

σν

∂∂

ε

−−

=

δκεδ

δκεδ

µ

µ

3

2

2

22

3

2

2

22

*)(

*)(

*)(

*)(

Ux

C

UxkHx

Ux

C

Uxkx

==−=

===

ενλ k15=

4/13

=

ενη