introduction au calcul scientifique par la pratique

306
Exercices et problèmes corrigés avec rappels de cours SCIENCES SUP INTRODUCTION AU CALCUL SCIENTIFIQUE PAR LA PRATIQUE 12 projets résolus avec MATLAB Ionut Danaila • Pascal Joly Sidi Mahmoud Kaber • Marie Postel Écoles d’ingénieurs • 2 e cycle/Master

Upload: adnane-farid

Post on 15-Jul-2015

900 views

Category:

Science


4 download

TRANSCRIPT

  • SCIENCES SUP

    Exercices et problmes corrigs avec rappels de cours

    SCIENCES SUP

    INTRODUCTION AU CALCUL SCIENTIFIQUE

    PAR LA PRATIQUE 12 projets rsolus avec MATLAB

    Ionut Danaila Pascal JolySidi Mahmoud Kaber Marie Postel

    MATHMATIQUES

    PHYSIQUE

    CHIMIE

    SCIENCES DE LINGNIEUR

    INFORMATIQUE

    SCIENCES DE LA VIE

    SCIENCES DE LA TERRE

    I. DA

    NA

    ILA

    P. JOLY

    M. K

    AB

    ER

    M. PO

    STEL

    ISBN 2 10 048709 4 www.dunod.com

    INTR

    OD

    UC

    TION

    AU

    CA

    LCU

    L SC

    IENTIFIQ

    UE PA

    R LA

    PRA

    TIQU

    E

    Comme leur nom le suggre, les mathmatiques appliques ne peuventseulement senseigner de faon thorique. Lexprimentation numriqueest en effet indispensable pour percevoir la puissance, mais aussi leslimites, des outils et des mthodes de calcul.Cest pourquoi cet ouvrage propose douze projets , bass sur autantde problmes concrets classiques, qui permettent, grce des exercicesintermdiaires et des rappels thoriques, de passer de faon progressivedes quations aux rsultats. Aboutissement de cette dmarche pdagogiqueet pratique, louvrage propose une rsolution complte des projets avecMATLAB (les programmes sont intgralement disponibles sur le site webde lditeur).Ce livre doit permettre tous ceux qui sont confronts au calcul scientifique tudiants des coles dingnieur ou de 2e cycle/Master, mais aussienseignants, chercheurs ou ingnieurs de comprendre les concepts, lesmthodes et les enjeux fondamentaux de la discipline.Thmes abords : quations aux drives partielles et diffrentielles nonlinaires Schmas numriques (Euler, Runge-Kutta) Approximationpolynomiale lments finis Diffrences finies Mthode spectrale Analyse multichelle, ondelettes Mthode de Schwarz Courbes etsurfaces de Bzier.Domaines dapplication : lasticit Thermique Mcanique des fluides(quations de Navier-Stokes) Dynamique des gaz CAO Traitementde limage Chimie.

    EXERCICES

    coles dingnieurs 2e cycle/Master

    Ionut Danaila Pascal JolySidi Mahmoud Kaber Marie Postel

    INTRODUCTION AU CALCUL SCIENTIFIQUE PAR LA PRATIQUE 12 projets rsolus avec MATLAB

    1 2 3 4 5 6 7 81er cycle 2e cycle 3e cycle

    LICENCE MASTER DOCTORAT

    Ionut Danaila, SidiMahmoud Kaber et MariePostel sont matres deconfrences lUniversitParis 6 Pierre-et-Marie-Curie.

    Pascal Joly est ingnieur derecherche au CNRS.

    Tous les auteursappartiennent au laboratoireJacques-Louis Lions delUPMC et au CNRS.

    NordCompoFichier en pice jointe9782100487097_couverture.jpg

  • INTRODUCTION AU CALCULSCIENTIFIQUE

    PAR LA PRATIQUE

    12 projets rsolus avec MATLAB

    pI-IVDanaila Page I Mardi, 21. dcembre 2004 12:02 12

  • pI-IVDanaila Page II Mardi, 21. dcembre 2004 12:02 12

  • INTRODUCTION AU CALCULSCIENTIFIQUE

    PAR LA PRATIQUE

    12 projets rsolusavec MATLAB

    Ionut Danaila

    Matre de confrences luniversit Paris 6

    Pascal Joly

    Ingnieur de recherche au CNRS

    Sid Mahmoud Kaber

    Matre de confrences luniversit Paris 6

    Marie Postel

    Matre de confrences luniversit Paris 6

    pI-IVDanaila Page III Mardi, 21. dcembre 2004 12:02 12

  • Conseiller ditorial : Olivier Pironneau

    Dunod, Paris, 2005ISBN 2 10 0048709 4

    pI-IVDanaila Page IV Mardi, 21. dcembre 2004 12:02 12

  • Table des matires

    AVANT-PROPOS X

    CHAPITRE 1 APPROXIMATION NUMRIQUE DE QUELQUES QUATIONS AUX DRIVESPARTIELLES MODLES 1

    1.1 Discrtisation dune quation diffrentielle ordinaire 21.1.1 Construction de schmas numriques 31.1.2 Forme gnrale des schmas numriques 61.1.3 Application ltude de lquation dabsorption 7

    1.2 quations aux drives partielles modles 91.2.1 Lquation de convection 101.2.2 Lquation des ondes 121.2.3 Lquation de la chaleur 16

    1.3 En savoir plus 18

    1.4 Solutions et programmes 19

    CHAPITRE 2 QUATIONS DIFFRENTIELLES NON LINAIRES. APPLICATION LA CINTIQUECHIMIQUE 31

    2.1 Problme physique et modlisation mathmatique 31

    2.2 tude de la stabilit du systme 33

    2.3 Modle de la raction entretenue 342.3.1 Existence dun point critique et stabilit 352.3.2 Rsolution numrique 35

  • VI Table des matires

    2.4 Modle de la raction avec retard 35

    2.5 Solutions et programmes 39

    CHAPITRE 3 APPROXIMATION POLYNOMIALE 473.1 Introduction 48

    3.2 Approximation polynomiale 483.2.1 Interpolation polynomiale 483.2.2 Meilleure approximation polynomiale 58

    3.3 Approximation polynomiale par morceaux 653.3.1 Approximation constante par morceaux 663.3.2 Approximation affine par morceaux 673.3.3 Approximation cubique par morceaux (spline cubique) 67

    3.4 En savoir plus 69

    3.5 Solutions et programmes 69

    CHAPITRE 4 TUDE DUN MODLE DE CONVECTION-DIFFUSION PAR LMENTS FINIS 844.1 Modlisation 84

    4.2 Formulation variationnelle du problme 85

    4.3 Une mthode dlments finis P1 87

    4.4 Une mthode dlments finis P2 90

    4.5 Une technique de stabilisation 934.5.1 Calcul de la solution aux extrmits des intervalles 934.5.2 Analyse de la mthode stabilise 95

    4.6 Cas dun terme source variable 96

    4.7 En savoir plus 97

    4.8 Solutions et programmes 98

    CHAPITRE 5 UNE MTHODE SPECTRALE POUR LA RSOLUTION DUNE QUATIONDIFFRENTIELLE 110

    5.1 Quelques proprits des polynmes de Legendre 111

    5.2 Intgration numrique par quadrature de Gauss 112

    5.3 Dveloppement dune fonction en srie de Legendre 114

    5.4 Rsolution dune quation diffrentielle par mthode spectrale 117

  • Table des matires VII

    5.5 Extensions possibles 118

    5.6 Solutions et programmes 119

    CHAPITRE 6 TRAITEMENT DU SIGNAL : ANALYSE MULTICHELLE 1256.1 Approximation dune fonction : aspect thorique 126

    6.1.1 Les fonctions constantes par morceaux 1266.1.2 Dcomposition de lespace VJ 1286.1.3 Algorithmes de transformation 1306.1.4 Intrt de la reprsentation multichelle 131

    6.2 Reprsentation multichelle : aspect pratique 132

    6.3 Reprsentation multichelle : mise en uvre 133

    6.4 Introduction la thorie des ondelettes 1356.4.1 Les fonctions dchelles et les ondelettes 1356.4.2 Londelette de Schauder 1376.4.3 Mise en uvre de londelette de Schauder 1396.4.4 Londelette 4 de Daubechies 1416.4.5 Mise en uvre de londelette de Daubechies 141

    6.5 Gnralisation - Traitement de limage 144

    6.6 Solutions et programmes 146

    CHAPITRE 7 LASTICIT : DFORMATION DUNE MEMBRANE 1527.1 Le problme dlasticit (quation linaire) 153

    7.2 Le problme lectrostatique (quation non-linaire) 155

    7.3 Discrtisation du problme 156

    7.4 Mise en uvre 1597.4.1 Notations 1597.4.2 Le problme dlasticit (quation linaire) 1597.4.3 La validation des procdures 1597.4.4 Les procdures et lexprimentation numrique 160

    7.5 Le problme non-linaire 161

    7.6 Rsolution numrique du problme non-linaire 161

    7.7 Solutions et programmes 163

  • VIII Table des matires

    CHAPITRE 8 DCOMPOSITION DE DOMAINES PAR LA MTHODE DE SCHWARZ 1668.1 Principe et champs dapplication de la dcomposition de domaine 166

    8.2 Rsolution par diffrences finies en 1D 168

    8.3 Mthode de Schwarz en 1D 169

    8.4 Extension au cas 2D 1728.4.1 Rsolution par diffrences finies en 2D 1738.4.2 Dcomposition de domaine dans le cas 2D 1778.4.3 Mise en uvre de conditions limites ralistes 1808.4.4 Extensions possibles 182

    8.5 Solutions et programmes 182

    CHAPITRE 9 MODLISATION GOMTRIQUE : COURBES ET SURFACES DE BZIER 1919.1 Les courbes de Bzier 192

    9.2 Proprits des courbes de Bzier 1939.2.1 Enveloppe convexe des points de contrle 1939.2.2 Points de contrle multiples 1939.2.3 Vecteur tangent la courbe 1949.2.4 Raccord de deux courbes de Bzier 1959.2.5 Construction dun point P(t) 196

    9.3 Construction de courbes de Bzier : mise en uvre 197

    9.4 Intersection de deux courbes de Bzier 201

    9.5 Surfaces de Bzier 204

    9.6 Construction de surfaces de Bzier : mise en uvre 207

    9.7 Solutions et programmes 207

    CHAPITRE 10 PROBLME DE RIEMANN ET DISCONTINUITS. TUDE DU TUBE CHOC 21010.1 Problme physique du tube choc 210

    10.2 Systme dquations dEuler 1D 21110.2.1 Adimensionnement des quations 21410.2.2 Solution exacte 215

    10.3 Rsolution numrique 21810.3.1 Schmas centrs (Lax-Wendroff et MacCormack) 21810.3.2 Schmas dcentrs (Roe) 223

    10.4 Solutions et programmes 227

  • Table des matires IX

    CHAPITRE 11 THERMIQUE : OPTIMISATION DE LA TEMPRATURE DUN FOUR 22911.1 Formulation du problme 230

    11.2 Discrtisation par lments finis 232

    11.3 Mise en uvre 23311.3.1 Calcul de la matrice 23311.3.2 Calcul du second membre 23411.3.3 Le systme linaire 234

    11.4 Prise en compte des conditions aux limites 235

    11.5 Formulation du problme inverse 238

    11.6 Rsolution du problme inverse 239

    11.7 Solutions et programmes 242

    CHAPITRE 12 MCANIQUE DES FLUIDES : RSOLUTION DES QUATIONS DENAVIER-STOKES 2D 246

    12.1 quations de Navier-Stokes 2D, incompressibles 247

    12.2 Mthode de rsolution 248

    12.3 Domaine de calcul, conditions aux limites et maillage 250

    12.4 Discrtisation des quations 251

    12.5 Visualisation de lcoulement 259

    12.6 Condition initiale 26012.6.1 Dynamique dun jet plan. Instabilit de Kelvin-Helmholtz 26012.6.2 Mouvement dun diple de vorticit 261

    12.7 Mise en uvre 26212.7.1 Rsolution dun systme linaire matrice tridiagonale et priodique 26212.7.2 Rsolution de lquation instationnaire de la chaleur 26512.7.3 Rsolution de lquation stationnaire de la chaleur en utilisant les FFT 26912.7.4 Rsolution des quations de Navier-Stokes 269

    12.8 Solutions et programmes 271

    BIBLIOGRAPHIE 278

    INDEX GNRAL 280

    INDEX DES PROCDURES 285

  • Avant-propos

    Aujourdhui lenseignement des mathmatiques appliques ne peut se concevoirsans lexprimentation numrique. En effet, seule la mise en uvre dune mthodesur un exemple concret permet den mieux comprendre les qualits (prcision et ra-pidit de calcul) et les dfauts (cot et limites dutilisation). Bien sr, ces lmentsdistinctifs peuvent tre apprhends dun point de vue thorique ; mais la complexitde programmation et la varit des champs dapplication, critres finalement dter-minants pour le succs dune mthode, ne peuvent tre mesures que par lexpri-mentation.

    Cet ouvrage regroupe quelques exemples dapplication de mthodes dsormaisclassiques de lanalyse numrique, mises en uvre pour la rsolution de problmesconcrets issus de la physique, la mcanique, la chimie, le traitement de limage,etc. Ces problmes ont t choisis pour satisfaire la curiosit lgitime dun publicassez vaste. labors dans le cadre de cours de mathmatiques appliques (analysenumrique, calcul scientifique), ils ont t proposs sous forme de projets diffrentsgroupes dtudiants de lUniversit ou de Grandes coles dingnieurs.

    Nous avons privilgi une approche pdagogique progressive. Chaque projet d-crit prcisment le problme traiter et prsente, de manire aussi complte quepossible, les bases thoriques ncessaires sa rsolution. Il est structur en tapesde difficult croissante, pouvant tre proposes de manire modulable dans le cadredun enseignement avec des sances de programmation tales dans le temps. Endbut de projet, une fiche indique sa difficult globale (sur une chelle de 1 3),les notions mathmatiques dveloppes, ainsi que les domaines dapplication.

    Toujours dans un souci pdagogique, une solution de programmation en MAT-LAB est fournie pour chaque projet. Les scripts complets peuvent tre tlchargs partir de la page web du livre, ladresse

    http://www.dunod.com/ICSPP/

  • Avant-propos XI

    Dans la pratique, les mthodes de calcul scientifique tudies sont souvent pro-grammes dans des langages plus performants (Fortran, C, C++) adapts la r-solution sur de gros calculateurs de cas concrets industriels. Le choix du logicielMATLAB a de multiples motivations : la simplicit de programmation en langageinterprt ; la richesse des bibliothques pr-programmes. Enfin, la facilit de vi-sualisation graphique des rsultats. Tout ceci permet au lecteur, mme nophyte enprogrammation, de raliser facilement les expriences numriques proposes. Si bienque son apprentissage est un passage oblig dans la formation dun mathmaticienappliqu. Par ailleurs, ce logiciel est trs largement employ aussi bien dans le mondede lducation que dans les laboratoires de recherche et dveloppement. Les logicielslibres Scilab ou Octave conviennent galement pour ce genre de simulation, ce qui est prendre en compte lUniversit o lenseignement aux niveaux Licence, Master,voire Doctorat, est souvent fait avec des logiciels libres. La traduction de nos solu-tions dans ces langages ne pose pas de difficult particulire, dautant plus que pourprivilgier la lisibilit des programmes nous navons pas toujours cherch utiliserles techniques de programmation conduisant la concision maximale dcriture.

    Ionut Danaila, Pascal Joly, Sidi Mahmoud Kaber, Marie Postel.Paris, 21 dcembre 2004.

  • PPP

  • Projet 1

    Approximation numriquede quelques quations

    aux drives partielles modles

    Fiche du projet

    Difficult : 1Notions dveloppes : quations diffrentielles linaires : mthodes

    dintgration numrique, schmas aux diffrencesfinies : schmas dEuler, de Runge-Kutta.

    Domaines dapplication : Phnomnes de transport, diffusion, propagationdondes.

    Le but de ce projet est de mettre en vidence les proprits mathmatiques et phy-siques des quations aux drives partielles (EDP), prsentes sous la forme la plussimple possible. En fait, il ne sagit pas dun vritable projet, bas sur un problmebien dfini, mais plutt dune somme dexercices thoriques qui visent familiari-ser le lecteur avec quelques techniques de base de discrtisation et dintgration desEDP. Nous commenons par prsenter ces techniques dans le cas simple des qua-tions diffrentielles ordinaires (EDO), pour les tendre ensuite aux EDP modles(quation de convection, des ondes, de la chaleur). Une attention particulire sera

  • 2 Projet 1 Approximation numrique de quelques quations...

    accorde lanalyse des schmas numriques (prcision, stabilit, dissipation) et la comparaison des rsultats numriques avec les solutions exactes.

    1.1 DISCRTISATION DUNE QUATION DIFFRENTIELLEORDINAIRE

    Considrons lquation diffrentielle ordinaire (EDO) : trouver une fonction dri-vable u : [0, T] Rm, solution de

    u(t) = f (t, u(t)), (1.1)o T est un rel strictement positif et f est une fonction continue de [0, T] Rm valeurs dans Rm.

    Dfinition 1.1 On appelle problme de Cauchy, le couplage de lEDO (1.1)et dune condition initiale

    u(0) = u0, (1.2)o u0 est un vecteur de Rm.

    Nous renvoyons un cours sur les quations diffrentielles, par exemple, [Crou-zeix et Mignot, 1989], [Demailly, 1996], [Delabrire et Postel, 2004], pour tout cequi concerne lexistence et lunicit dune solution du problme de Cauchy (1.1)-(1.2). Dans cette premire partie du projet, nous prsentons des mthodes num-riques simples pour calculer une approximation de la solution dans le cas scalaire(on dit aussi 1D), m = 1.

    t tn+1n

    solution exacte

    uun+1

    n

    solution numrique

    tT0

    h

    tu( )nu( )tn+1

    u0

    u

    t1

    u1

    Figure 1.1 Discrtisation dune EDO.

    Puisque lordinateur ne peutrenvoyer quun nombre fini dersultats, la rsolution num-rique du problme de Cau-chy (1.1)-(1.2) va commencerpar choisir les points de cal-cul t0, t1, . . . , tN de lintervalleI = [0, T]. On dfinit ainsi unediscrtisation (ou un maillage)de lintervalle I. La distribu-tion quidistante (ou uniforme)des points de calcul est laplus simple et elle sera utilisedans ce chapitre : lintervalleI = [0, T] est divis en N in-tervalles In de mme longueurh = T/N (h est appel pas de discrtisation). On pose In = [tn, tn+1] avec tn = nh(t0 = 0, tN = T , voir la figure 1.1). Lapproximation numrique consiste construire

  • 1.1 Discrtisation dune quation diffrentielle ordinaire 3

    une suite (dpendant de N) de valeurs discrtes u(N)0 , . . . u(N)N approchant les valeursu(t0), . . . u(tN) de la solution exacte u(t) aux mmes points de calcul. On prendratoujours u(N)0 = u0 pour vrifier la condition initiale u(t0) = u0. Pour simplifier laprsentation, on notera par la suite u(N)n par un.

    1.1.1 Construction de schmas numriques

    Aprs la discrtisation de lintervalle de dfinition I, il faut trouver une relation nouspermettant de calculer les valeurs un, n = 1, . . . , N. Cette relation (schma num-rique) est obtenue en discrtisant loprateur diffrentiel intervenant dans lEDO(rappelons que le schma dmarre de la valeur u0, fixe par la condition initiale).On distingue deux mthodes pour construire des schmas numriques pour rsoudrelEDO (1.1).

    a) Mthodes bases sur des quotients aux diffrences

    On crit lquation (1.1) linstant tn (la variable t dsigne souvent un temps) eton remplace u(tn) par un quotient aux diffrences en utilisant des dveloppementsde Taylor faisant intervenir les valeurs de linconnue u aux instants voisins de tn.Prenons dabord lexemple de la drive premire.

    Dfinition 1.2 Le pas de discrtisation h tant fix, on dfinit les quotientsaux diffrences finies dcentres en avant (ou progressives)

    D+u(t) = u(t + h) u(t)h , (1.3) dcentres en arrire (ou rgressives)

    Du(t) = u(t) u(t h)h , (1.4) centres

    D0u(t) = u(t + h) u(t h)2h . (1.5)

    Supposons que la fonction u soit deux fois continment drivable. Il existe alorsu+n [0, h] tel que

    u(tn+1) = u(tn) + hu(tn) + h2

    2u(tn + u+n). (1.6)

    On dduit de ce dveloppement une approximation de u(tn)

    u(tn) = u(tn+1) u(tn)h h2

    u(tn + u+n) D+u(tn). (1.7)

  • 4 Projet 1 Approximation numrique de quelques quations...

    Dfinition 1.3 On dit de D+u(tn) que cest une approximation de u(tn)dordre un car lerreur dapproximation n tend vers 0 comme h

    n =D+u(tn) u(tn) h12 maxtIn |u(t)|. (1.8)

    De mme, Du(tn) = [u(tn) u(tn1)]/h est une approximation dordre un deu(tn) et D0u(tn) = [u(tn+1) u(tn1)]/(2h) est une approximation dordre deux deu(tn) (lerreur dapproximation tend vers 0 comme h2).

    De manire gnrale, il est possible dutiliser des combinaisons linaires deplusieurs quotients aux diffrences pour trouver des approximations de u(tn). Parexemple, on peut approcher

    u(tn) aDu(tn) + bD0u(tn) + gD+u(tn), (1.9)avec les paramtres a, b et g choisis de sorte que lapproximation soit la plus prcisepossible.

    Le dveloppement de Taylor reste loutil de base pour la construction dapproxi-mations des drives dordre suprieur. Pour la drive seconde, par exemple, il suffitdadditionner le dveloppement (1.6) pouss jusqu lordre 4, avec le dveloppe-ment similaire pour u(tn1) pour obtenir une approximation centre (dordre deux)de la drive seconde :

    u(tn) DD+u(tn) = u(tn+1) 2u(tn) + u(tn1)h2 . (1.10)

    Voyons maintenant comment, partir de ces approximations aux diffrences fi-nies, construire des schmas numriques pour lEDO (1.1). En considrant lEDO linstant tn et en remplaant u(tn) par D+u(tn), on obtient le schma

    un+1 = un + hf (tn, un), (1.11)o un+1 et un deviennent les approximations numriques de u(tn+1), respectivementu(tn).

    Le schma (1.11) est appel schma dEuler explicite, ou plus simplement schmadEuler. La mthode est dite explicite car le calcul de un+1 est fait explicitement enfonction de tn et un. Plus gnralement, si le calcul de un+1 est donn exclusivementen fonction des valeurs calcules aux instants antrieurs, u0, . . . , un, on dit que ceschma est explicite.

    Si on prend maintenant lEDO (1.1) linstant tn+1 et on remplace u(tn+1) parDu(tn+1), on obtient le schma dEuler implicite :

    un+1 = un + hf (tn+1, un+1). (1.12)Cette fois le calcul de un+1 implique la rsolution de lquation (1.12) qui est gn-

    ralement non-linaire.

  • 1.1 Discrtisation dune quation diffrentielle ordinaire 5

    Lapproximation u(tn) D0u(tn) dans (1.1) prise linstant tn conduit au schmaun+1 = un1 + 2hf (tn, un), (1.13)

    appel schma Leapfrog (saute-mouton).

    b) Mthodes drives de lintgration numrique

    La deuxime manire de construire un schma numrique utilise les mthodes dint-gration (ou quadrature) numrique. En intgrant lEDO (1.1) sur lintervalle In, nousobtenons

    u(tn+1) u(tn) = tn+1

    tn

    f (s, u(s))ds = In. (1.14)On peut donc calculer u(tn+1) connaissant u(tn), pourvu que lon sache aussi calculerlintgrale In. On se ramne ainsi un problme de quadrature numrique.

    Plusieurs mthodes de quadrature peuvent tre utilises pour approcher lintgralede (1.14) : la mthode des rectangles gauche

    In hf (tn, un), (1.15)conduit au schma dEuler explicite (1.11) ;

    la mthode des rectangles droiteIn hf (tn+1, un+1), (1.16)

    dfinit le schma dEuler implicite (1.12) ; la mthode du point milieu

    In hf(

    tn + h/2, u(tn + h/2)), (1.17)

    qui donne, aprs avoir fait lapproximation (h est considr petit),

    u(tn + h/2) u(tn) + h2u(tn) = u(tn) + h2 f (tn, u(tn)), (1.18)

    le schma explicite dEuler modifi :

    un+1 un = hf(

    tn +h2, un +

    h2

    f (tn, un)), (1.19)

    la mthode des trapzes

    In h2 [f (tn, un) + f (tn+1, un+1)] , (1.20)permet dobtenir le schma semi-implicite de Crank-Nicolson (voir le tableau 1.1).

  • 6 Projet 1 Approximation numrique de quelques quations...

    1.1.2 Forme gnrale des schmas numriques

    La forme gnrale dun schma numrique pour rsoudre lEDO (1.1) est la suivanteun+1 = un + F(h; tn,1, un,1, . . . , tn,q, un,q). (1.21)

    Si F dpend de q valeurs un,j, distinctes de un+1, on parle dun schma q pas. Parexemple, le schma Leapfrog est un schma deux pas. Si F ne dpend pas desinstants tj > tn, le schma est dit explicite, sinon il est dit implicite.

    Les principaux schmas numriques utiliss en pratique sont groups dans le ta-bleau 1.1.

    Remarque 1.1 : Pour dmarrer un schma un pas il suffit dune valeur u0 quisera toujours prise gale u(0). La situation est diffrente pour les schmas q > 1 pas : ces schmas ne peuvent tre utiliss que pour calculer les valeursun pour n q et cela suppose connues les q premires valeurs u0, . . . uq1.Comme seule la valeur u0 est connue, pour calculer les valeurs manquantes,on utilise, par exemple, un schma un pas pour calculer u1, puis un schma deux pas pour calculer u2 . . . et un schma q 1 pas pour calculer uq1 .

    Tableau 1.1 Schmas numriques pour lEDO u(t) = f(t,u).Euler explicite

    (ordre 1)un+1 = un + hf(tn,un)

    Euler implicite(ordre 1)

    un+1 = un + hf(tn+1,un+1)

    Leapfrog(ordre 2)

    un+1 = un1 + 2hf(tn,un)

    Euler modifi(ordre 2)

    un+1 = un + hf(tn + h2 ,un + h2 f(tn,un))

    Crank-Nicolson(ordre 2)

    un+1 = un +h2 [f(tn,un) + f(tn+1,un+1)]

    Adams-Bashfort(ordre 2)

    un+1 = un + h[ 32 f(tn,un) 12 f(tn1,un1)]

    Adams-Bashfort(ordre 3)

    un+1 = un + h[ 2312 f(tn,un) 1612 f(tn1,un1) + 512 f(tn2,un2)]

    Adams-Moulton(ordre 3)

    un+1 = un + h[ 512 f(tn+1,un+1) + 812 f(tn,un) 112 f(tn1,un1)]

    Runge-Kutta (Heun)(ordre 2)

    k1 = hf(tn,un)k2 = hf(tn + h,un + k1)

    un+1 = un +12 (k1 + k2)

    Runge-Kutta(ordre 4)

    k1 = hf(tn,un)k2 = hf(tn + h/2,un + k1/2)k3 = hf(tn + h/2,un + k2/2)k4 = hf(tn + h,un + k3)

    un+1 = un +16 (k1 + 2k2 + 2k3 + k4)

  • 1.1 Discrtisation dune quation diffrentielle ordinaire 7

    1.1.3 Application ltude de lquation dabsorption

    Lquation modle pour dcrire un phnomne dabsorption (ou de production) estla suivante : on cherche une fonction u : R+ R solution du problme de Cauchy{

    u(t) + au(t) = f (t), t > 0,u(0) = u0,

    (1.22)

    o a R est donn et le terme source f prend en compte la cration de la quantit uau cours du temps.

    Exemple 1 : Lintensit des radiations mises par un corps radioactif est esti-me en mesurant la concentration u(t) dun isotope instable. Cette concentra-tion est divise par deux au cours dune dure T , appele demi-vie, suivant laloi :

    u(t) = au(t), avec a = ln 2T

    .

    Exercice 1.1

    Considrons le problme de Cauchy (1.22).1. On pose u(t) = eatv(t). crire lquation diffrentielle vrifie par v. R-

    soudre cette quation et en dduire que

    u(t) = eat(

    u0 +

    t0

    easf (s)ds)

    . (1.23)

    2. Calculer la solution dans le cas o a est une fonction de t.3. Pour a et f constants, dterminer u et calculer lim

    t+ u(t).4. On prend cette fois f = 0, mais un coefficient plus gnral, a C , de partie

    relle ar > 0. Montrer que limt+ u(t) = 0.

    5. crire une fonction qui met en uvre le schma dEuler explicite (1.11).Len-tte de la fonction sera :

    function u=EulerExp(fun,u0,t0,t1,n)% Arguments dentre :% fun le nom de la fonction second membre de lEDO% t0 le temps initial% u0 la condition initiale en t0% t1 le temps final% n le nombre de pas de temps entre t0 et t1% Argument de sortie :% u le vecteur de dimension n + 1 contenant la solution% numrique correspondant aux temps t0+ih, avec h = (t1t0)/n

    (Pour la version MATLAB on utilisera la commande feval pour valuer lafonction fun lintrieur de la fonction EulerExp.)

  • 8 Projet 1 Approximation numrique de quelques quations...

    Dans un programme principal, appeler la fonction EulerExp pour rsoudrelEDO suivante : u(t) + 4u(t) = 0 vrifiant la condition initiale u(0) = 1.On prendra t0 = 0, t1 = 3 et n = 24 (h = 1/8). Reprsenter sur la mmefigure la solution exacte et la solution numrique. Refaire le calcul pourn = 6 (h = 1/2). Commenter les rsultats.

    6. Utiliser la place de la mthode dEuler explicite la mthode Runge-Kuttadordre 4 (on crira une fonction RKutta4 suivant le modle de la fonctionEulerExp). Commenter les rsultats pour h = 1/2.

    La solution de cet exercice se trouve la page 19.

    Stabilit dun schma numrique

    On considre ici le cas f = 0 et a R+. La solution de lquation (1.22) estalors u(t) = eatu0 et lim

    t+ u(t) = 0. Supposons que lon cherche calculer cettesolution par le schma dEuler explicite (1.11). On obtient une suite de valeursun = (1 ah)nu0. Notons que : si h > 2/a, on a 1 ah 1 et la suite un diverge, et si 0 < h < 2/a on a |1 ah| < 1 et la suite un tend vers 0 comme la solution

    exacte.

    Cette analyse explique le comportement bizarre de la solution numrique de la ques-tion 5 de lexercice 1.1 pour h = 1/2 (a = 4). Il sagit dune question fondamentalepour le comportement des schmas numriques : le paramtre a > 0 tant donn,comment choisir le pas de discrtisation h pour que la suite des solutions approchesait le mme comportement linfini que la solution exacte. Cest le problme de lastabilit des schmas numriques.

    Considrons maintenant le cas plus gnral dun schma un pas, donn sous laforme :

    un+1 = un + hFh(tn, un). (1.24)

    En tenant compte que la solution exacte vrifie la relation

    u(tn+1) = eahu(tn), (1.25)

    on cherchera crire les schmas du tableau 1.1 sous la forme

    u(tn+1) = G(ah)u(tn). (1.26)

    Les proprits de dcroissance linfini de la solution numrique dpendront de lafonction G quon appellera fonction damplification du schma. titre dexercice, le

  • 1.2 quations aux drives partielles modles 9

    lecteur est invit retrouver les fonctions damplification suivantes (cf. tableau 1.1) : Euler explicite G(z) = 1 + z Euler implicite G(z) = 1/(1 z) Euler modifi G(z) = (2 + z)/(2 z) RKutta2 G(z) = 1 + z + z2/2 RKutta4 G(z) = 1 + z + z2/2 + z3/6 + z4/24

    Dfinition 1.4 Lensemble des points z C pour lesquels |G(z)| < 1 estappel domaine de stabilit du schma.

    Suivant la relation (1.26), on voit que si ah appartient au domaine de stabilitdu schma, alors

    limn+ |u(tn)| limn+ |u(t0)| |G(ah)|

    n= 0.

    Par exemple, le domaine de stabilit du schma dEuler explicite est le disque ouvertdu plan centr au point (1, 0) et de rayon 1. Le schma sera donc stable si on prendun pas de discrtisation h tel que |1 ah| < 1.

    Exercice 1.2

    Tracer sur la mme figure les frontires des domaines de stabilit des schmasEuler explicite, RKutta2 et RKutta4, cest--dire lensemble des points z du planpour lesquels |G(z)| = 1. On pourra se restreindre au rectangle [4, 1][4, 4].(Pour la versionmatlab utiliser les fonctions meshgrid et contour.)

    La solution de cet exercice se trouve la page 19.

    1.2 QUATIONS AUX DRIVES PARTIELLES MODLES

    On dfinit de manire gnrale une quation aux drives partielles (EDP) comme larelation entre une fonction de plusieurs variables et ses drives partielles. Les EDPprsentes dans cette partie servent modliser des phnomnes physiques lmen-taires : la convection, la propagation des ondes et la diffusion. Pour chacun de cesphnomnes, nous prsentons une ou plusieurs quations modles, le calcul analy-tique des solutions ainsi que des schmas numriques pour calculer des approxima-tions de ces solutions.

    Nous aborderons dans ce projet les EDP modles suivantes : lquation de convection : tu(x, t) + cxu(x, t) = f (x, t), lquation des ondes : 2ttu(x, t) c22xxu(x, t) = 0, lquation de la chaleur : tu(x, t) k2xxu(x, t) = f (x, t).

  • 10 Projet 1 Approximation numrique de quelques quations...

    1.2.1 Lquation de convection

    Lquation modle pour le phnomne de convection (ou de transport, ou encoredadvection) est la suivante : on cherche une fonction u(x, t) : R R+ R solutionde lquation aux drives partielles (EDP)

    tu(x, t) + cxu(x, t) = f (x, t), x R, t > 0, (1.27)vrifiant la condition initiale

    u(x, 0) = u0(x), x R. (1.28)Cette quation modlise le transport dune quantit u(x, t) (dpendant de la positionx et de linstant t), connaissant la distribution initiale u(x, 0), ainsi que la vitesse detransport c (suppose constante) de cette quantit.

    Exemple 2 : Soit u(x, t) la concentration au temps t et la position x dunpolluant dans lair. Notant par c la vitesse du vent, le transport du polluant estgouvern par lquation tu + x(cu) = 0, qui est bien du type (1.27) si c estune constante. Noter que f = 0 correspond au cas o il ny a pas de productionde polluant pour t > 0.

    Exercice 1.3

    On considre lquation de convection (1.27) avec la condition initiale (1.28)pour le cas f (x, t) = 0 (transport libre).1. On se propose dabord de calculer la solution exacte. Pour cela, on introduit

    le changement de variablesX = ax + bt, T = gx + mt, (a,b,g,m R) (1.29)

    et dfinit la fonction U par U(X, T) = u(x, t). Ce changement de variablesest-il bijectif ? crire lEDP vrifie par U. Que devient cette quation, sion prend b = ca ? Rsoudre cette dernire quation. En dduire que lasolution u est constante sur les droites (Cj) du plan (x, t) dquations

    x = j + ct, j R. (1.30)

    Dfinition 1.5 Les droites (1.30) sont appeles courbes caractristiquesde lquation de convection (1.27).

    2. On veut maintenant trouver la solution exacte (1.27)-(1.28) sur un intervallerel [a, b]. On suppose que c > 0. En traant dans le plan (x, t) les courbescaractristiques Cj pour j [a, b], montrer que la solution u(x, t) pour toutx [a, b] et tout t > 0 est compltement dtermine par la condition initialeu0 et une condition la limite

    u(a, t) = w(t), t > 0. (1.31)

  • 1.2 quations aux drives partielles modles 11

    En dduire que pour un T donn la solution exacte est :

    u(x, t) =

    u0(x cT) si x cT > a,w(T x a

    c) si x cT < a.

    (1.32)

    Remarquer que dans le cas o u0(a) = w(0), la solution est discontinue lelong de la caractristique x cT = a. Dterminer le temps T partir duquella condition initiale u0 est vacue du domaine [a, b], i.e. u(x, t) sexprimeseulement en fonction de w(t). Indiquer la condition la limite imposerpour pouvoir dterminer u dans le cas c < 0.

    3. Pour rsoudre numriquement lquation de convection (1.27) on dfinit unediscrtisation en espace :

    xj = a + jdx, dx = b aJ , j = 0, 1, . . . , J 2, (1.33)et une discrtisation en temps : pour T > 0 fix, on dfinit les instants inter-mdiaires

    tn = ndt, dt =TN

    , n = 0, 1, . . . , N 2. (1.34)

    crire une fonction pour le calcul de la solution exacte (1.32)

    function uex=conv_exact(a,b,x,T,fun_ci,fun_cl)% Arguments dentre :% a, b lintervalle de dfinition [a, b]% c > 0 la vitesse de convection% x le vecteur x(j) = a + j d x, j = 0, 1, . . . , J% T linstant de temps pour lequel on demande la solution% fun_ci(x) la condition initiale en (t = 0)% fun_cl(x) la condition {} la limite (x = a)% Argument de sortie :% uex le vecteur de dimension J+1 contenant la solution exacte

    4. On suppose c > 0 et on note unj une approximation de u(xj, tn). Considronslalgorithme numrique suivant pour le calcul de unj : Pour n = 0 (on impose la condition initiale) : u0j = u0(xj), j = 0, 1, . . . , J. Pour n = 0, . . . , N 1 (avancement en temps, on calcule un+1) Pour j = 1, . . . , J (intrieur du domaine)

    un+1j = unj

    cdtdx

    (unj unj1). (1.35)

    Pour j = 0 (condition la limite) : un+10 = w(tn+1).

  • 12 Projet 1 Approximation numrique de quelques quations...

    a) Justifier gomtriquement (en traant la caractristique partant du pointun+1j ) que lalgorithme est bien pos si

    s =cdtdx 1. (1.36)

    Dfinition 1.6 La relation (1.36) donne la condition suffisante de stabilitdu schma dcentr (1.35) pour lquation de convection et sappelle condi-tion CFL (Courant-Friedrichs-Levy).

    b) crire un programme utilisant cet algorithme pour rsoudre lquation deconvection pour

    a = 0, b = 1, c = 4, f = 0,u0(x) = x, w(t) = sin(10pt).

    Prendre J = 40 et calculer dt partir de (1.36) avec s = 0.8.Tracer les solutions obtenues aprs n = 10, 20, 30, 40, 50 pas de temps. Com-parer avec la solution exacte et commenter.Que se passe-t-il si on prend s = 1 ? puis s = 1.1 ? Expliquer.

    La solution de cet exercice se trouve la page 21.

    1.2.2 Lquation des ondes

    La propagation des ondes (acoustiques, lastiques, sismiques, etc) a comme modlelquation aux drives partielles (EDP) du second ordre :

    2ttu(x, t) c22xxu(x, t) = 0, t > 0, (1.37)o c est la vitesse de propagation des ondes. Le problme de Cauchy correspondantncessite deux conditions initiales

    u(x, 0) = u0(x), tu(x, 0) = u1(x). (1.38)Exemple 3 : Les oscillations dune corde lastique sont dcrites par lquation(1.37), o la fonction u(x, t) reprsente lamplitude des mouvements transver-saux de la corde. La vitesse de propagation c dpend de la tension t dans lacorde et de sa densit linaire r suivant la loi : c =

    t/r. Les conditions

    (1.38) donnent la position et la vitesse initiales de la corde.Si la corde est considre infinie, lquation sera pose sur tout R. Pour une

    corde de longueur finie, il faut galement imposer des conditions aux limites. Parexemple, si la corde est fixe aux extrmits, les conditions aux limites correspon-dantes seront :

    u(0, t) = u(, t) = 0, t > 0. (1.39)

  • 1.2 quations aux drives partielles modles 13

    Dfinition 1.7 Les conditions aux limites (1.39) sont appeles conditionsde Dirichlet (on impose les valeurs de la fonction aux bords du domaine decalcul). Quand les valeurs imposes sont nulles, on dit que les conditions auxlimites sont homognes.

    Corde infinie

    Dans un premier temps, on considre le cas dune corde vibrante infinie (x R).

    Exercice 1.4

    Solution exacte pour la corde infinie. En utilisant le changement de variables(1.29), on dfinit la fonction U(X, T) = u(x, t) et on se propose de calculer lasolution exacte. Exprimer 2ttu et 2xxu en fonction des drives de U. En dduire une EDP

    vrifie par U. Que devient cette quation, si on choisit m = cg et b = ca ? Montrer quil

    existe une fonction F et une fonction G telles que U(X, T) = F(X) + G(T). En dduire que la solution gnrale de lquation des ondes scrit sous la

    forme :

    u(x, t) = f (x ct) + g(x + ct). (1.40) En utilisant les conditions initiales (1.38) montrer que

    u(x, t) = u0(x ct) + u0(x + ct)2

    +12c

    x+ctxct

    u1(s)ds. (1.41)

    La solution de cet exercice se trouve la page 24.

    Domaine de dpendance, condition CFL

    Lexpression prcdente montre que la valeur de u en un point x et linstant t nedpend que des valeurs des donnes initiales u0 et u1 sur lintervalle [x ct, x + ct].

    Dfinition 1.8 Les droites dquations x ct = j et x + ct = j, avec j Rune constante, sont les caractristiques de lquation des ondes (1.37).

    Supposons utiliser un schma numrique pour rsoudre lquation des ondes. linstant tn+1 = (n + 1)dt, la valeur de la solution un+1j au point xj = jdx sera dtermi-ne par linformation transporte du niveau tn par les deux caractristiques partantdu point (xj, tn+1) (voir la figure 1.2). Le cne form par les deux caractristiquessappelle domaine de dpendance.

  • 14 Projet 1 Approximation numrique de quelques quations...

    x

    t

    tn+1

    t = 0

    tn

    xj1 xj xj+1 xj + ctn+1

    xj ctn+1

    Figure 1.2 Domaine de dpendance pour lquation des ondes.

    Exercice 1.5

    Justifier le schma numrique suivant pour lquation des ondes :

    un+1j 2unj + un1jdt2

    = c2unj+1 2unj + unj1

    dx2. (1.42)

    Montrer que ce schma est dordre deux en temps et en espace (voir aussilquation 1.10) et que la condition de stabilit (ou CFL) est identique celletrouve pour lquation de convection :

    s = |c| dtdx 1. (1.43)

    La solution de cet exercice se trouve la page 25.

    Exercice 1.6

    Conditions initiales priodiques. On suppose que les donnes initiales u0 et u1sont priodiques (de priode commune t). Montrer que la solution u(x, t) delquation des ondes est priodique en espace (priode t) et en temps (priodet/c).1. Justifier lalgorithme suivant :

  • 1.2 quations aux drives partielles modles 15

    Connaissant les conditions initiales u0(xj) et u1(xj), on calcule u0j , u1j paru0j = u0(xj), u1j = u0j + dt u1(xj) (1.44)

    Pour n 1, on calcule :un+1j = 2(1 s2)unj + s2(unj1 + unj+1) un1j . (1.45)

    2. crire un programme ralisant cet algorithme.3. Excuter le programme pour une longueur de corde = 1 et une vitesse des

    ondes c = 2. Les donnes initiales sont u0(x) = sin(2px) + sin(10px)/4 etu1(x) = 0, ce qui correspond une corde initialement au repos. Quelle est lapriodicit en temps de la solution ?

    4. Pour nx = 50 points de discrtisation en espace et nt = 50 points de dis-crtisation pour une priode de temps, reprsenter la solution exacte et lessolutions obtenues aprs une et deux priodes. Vrifier que le schma pr-serve la priodicit de la solution. Mme question pour nx = 51. Commenter.

    La solution de cet exercice se trouve la page 25.

    Corde vibrante finie

    Considrons lquation des ondes (1.37) avec les conditions initiales (1.38) et lesconditions aux limites (1.39). La solution est cherche sous la forme suivante (d-composition en ondes simples ou de Fourier) :

    u(x, t) =kN

    uk(t)fk(x), fk(x) = sin(kp

    x). (1.46)

    Pour chaque onde fk, on appelle k le nombre donde et uk lamplitude de londe.

    Exercice 1.7

    1. crire et rsoudre lEDO vrifie par chaque fonction uk.2. Montrer que la solution exacte pour la corde vibrante finie est :

    u(x, t) =kN

    [Ak cos(kp

    ct) + Bk sin(kp

    ct)]fk(x), (1.47)avec

    Ak =2

    0

    u0(x)fk(x)dx, Bk = 2kpc

    0u1(x)fk(x)dx. (1.48)

    En dduire la priode en temps et en espace de la solution.3. crire un programme pour rsoudre le problme de la corde vibrante finie

    en utilisant le schma centr (1.42). On utilisera le programme dvelopp lexercice prcdent, en prenant garde dutiliser les nouvelles conditions auxlimites !

  • 16 Projet 1 Approximation numrique de quelques quations...

    Trouver la solution exacte correspondant aux conditions initiales sui-vantes :

    u0(x) = sin(p

    x) + 14

    sin(10p

    x), u1(x) = 0. (1.49)Tracer la solution exacte et la solution numrique pour plusieurs instants

    de temps sur une priode. Donnes numriques : c = 2, = 1, nx = 50,nt = 125.

    La solution de cet exercice se trouve la page 26.

    1.2.3 Lquation de la chaleur

    Les phnomnes de diffusion (molculaire, de la chaleur, etc.) ont comme modle dedescription mathmatique lquation de la chaleur :

    tu k2xxu = f (x, t), t > 0, (1.50)avec la condition initiale :

    u(x, 0) = u0(x). (1.51)Exemple 4 : La temprature u dun corps chauff est solution de lquation

    tu x(kxu) = f (x, t), (1.52)o k est la diffusivit thermique du matriau et f modlise la source de chaleur.Dans un matriau homogne, k ne dpend pas de la position x et on retrouvelquation modle (1.50).

    Considrons le problme dun mur dpaisseur , qui se trouve initialement unetemprature uniforme u0 (temprature de la chambre). linstant t = 0, la tempra-ture extrieure (en x = 0) monte brusquement us > u0, valeur maintenue constantepar une source de chaleur. On suppose que la temprature x = est garde sa va-leur initiale u0. La propagation de la chaleur dans le mur sera dcrite par lquationde la chaleur (1.50), avec linconnue u(x, t) = u(x, t) u0, f (x, t) = 0, la conditioninitiale u0(x) = 0 et les conditions aux limites de Dirichlet :

    u(0, t) = us u0 = us, u(, t) = 0, t > 0. (1.53)Cas du domaine infini

    Pour un mur dpaisseur infinie ( ) on va chercher la solution sous la forme :u(x, t) = f (h), avec h = x

    2kt

    . (1.54)

    Exercice 1.8

    Montrer que la fonction f vrifie lEDO suivante :d2fdh2 + 2h

    dfdh = 0. (1.55)

  • 1.2 quations aux drives partielles modles 17

    En introduisant la fonction suivante, appele fonction erreurerf(z) = 2

    p

    z0

    ez2dz, (1.56)

    qui vrifie erf(0) = 0 et erf() = 1, trouver la solution de lquation de lachaleur pour :

    u(x, t) = [1 erf( x2kt

    )]u(0, t). (1.57)

    La solution de cet exercice se trouve la page 27.

    Remarque 1.2 : Le changement de la valeur de la solution au point x = 0 a eucomme consquence la modification de la solution en tout point du domaine.Le domaine de dpendance pour lquation de la chaleur est, par consquent,le domaine de dfinition tout entier. De faon quivalente, on peut dire quela perturbation introduite en x = 0 sest propage instantanment dans le do-maine de calcul (u(x, t) > 0, x dans la formule 1.57). On dit que la vitesse depropagation est infinie. Rappelons que pour lquation des ondes le domainede dpendance tait la zone dlimite par les caractristiques et que la vitessede propagation de linformation tait finie.

    Cas du domaine fini

    Pour un mur dpaisseur finie , on va utiliser la dcomposition en ondes simples(1.46).

    Exercice 1.9

    crire et rsoudre lEDO vrifie par chaque fonction uk. Vrifier que la so-lution de lquation de la chaleur avec les conditions aux limites (1.53) scritsous la forme :

    u(x, t) = (1 x

    )us +kN

    Ak exp((kp

    )2t

    )fk(x). (1.58)

    Montrer que Ak = 2uskp .La solution de cet exercice se trouve la page 28.

    Remarque 1.3 : Comparons la solution analytique (1.58) avec celle obtenuepour lquation des ondes (1.47). Lquation des ondes dcrit un phnomnede transport en temps de la condition initiale (lamplitude de chaque onde fkreste constante). Le phnomne de diffusion dcrit par lquation de la chaleurse manifeste par la dcroissance (rapide) en temps de lamplitude de chaqueonde lmentaire fk (prsence du facteur exponentiel). Cet effet de lissage deloprateur de la chaleur est dautant plus important que le nombre donde kest grand.

  • 18 Projet 1 Approximation numrique de quelques quations...

    Exercice 1.10

    Rsolution numrique. Considrons le schma explicite centr suivant pourlquation de la chaleur :

    un+1j unjdt

    kunj+1 2unj + unj1

    dx2= 0. (1.59)

    La condition de stabilit du schma est :

    kdtdx2

    12

    (1.60)

    1. crire un programme pour la rsolution du problme de la propagation dela chaleur dans un mur depaisseur finie. On prendra k = 1, = 1, us = 1,nx = 50 points de discrtisation en espace et le pas de temps dt donn par(1.60). Tracer la solution numrique pour diffrents instants de temps et com-parer avec la solution exacte (1.58) (une bonne approximation de cette der-nire est obtenue en prenant les 20 premiers nombres donde k). Comparergalement avec la solution (1.57) obtenue pour un domaine infini. Commen-ter les rsultats pour t petit et pour t grand.

    2. Effet lissant. Reprendre le programme prcdent pour us = 0 et la conditioninitiale

    u0(x) = u(x, 0) = sin(p

    x) + 14

    sin(10p

    x). (1.61)Comparer la solution numrique avec la solution analytique donne par(1.58). Commenter par rapport au rsultat obtenu pour lquation des ondesavec la mme condition initiale. Dcrire lamortissement des ondes prsentesdans la condition initiale.

    La solution de cet exercice se trouve la page 28.

    1.3 EN SAVOIR PLUS

    La rsolution numrique des quations aux drives partielles (EDP) ou des qua-tions diffrentielles (EDO) ou est un thme majeur de lanalyse numrique. Il existeune nombreuse littrature sur ltude de la stabilit et la convergence des schmasnumriques. Le lecteur pourra consulter[Crouzeix et Mignot, 1989], [Delabrire et Postel, 2004] et [Demailly, 1996] pourlanalyse numrique des EDO. Pour les EDP, nous renvoyons [Hirsh, 1988], [Luc-quin et Pironneau, 1996] et [Mohammadi et Saac, 2003]. Limplmentation des m-thodes de rsolution en utilisant des langages de programmation volus est prsen-te dans [Danaila, Hecht et Pironneau, 2003].

  • 1.4 Solutions et programmes 19

    1.4 SOLUTIONS ET PROGRAMMES

    Solution des exercices 1.1 et 1.2. (Lquation dabsorbtion)1. En remplaant u(t) = eatv(t) dans (1.22), on obtient que v(t) est solution de

    lquation diffrentielle v(t) = eatf (t) avec la condition initiale v(0) = u(0) = u0 ;par intgration, le rsultat (1.23) est immdiat.

    2. On obtient :

    u(t) = e t

    0 a(s)ds[

    u0 +

    t0

    e z

    0 a(s)dsf (z)dz].

    3. On suppose la fonction f (t) = f constante. Lexpression (1.23) devient :

    u(t) = fa

    + eat(u0 fa

    ).

    Si u0 = f/a, la solution est constante et pour tout t, u(t) = u0.Pour a > 0, u(t) f/a quand t .Pour a < 0, u(t) + (u0 f/a).

    4. Si a = ar + iai, on obtient

    |u(t)| = |eatu0| = |e(ar+iai)tu0| = |eartu0| 0.5. Les fonctions MATLAB EulerExp.m et RKutta4.m utilisent, respectivement, le

    schma dEuler explicite et le schma de Runge-Kutta dordre 4. pour lintgra-tion de lEDO u(t) = f (t, u). Le second membre f (t, u) porte le nom gnriquefun lintrieur des fonctions ; il sera effectivement prcis et valu au momentde lappel des fonctions (voir plus bas). Les deux fonctions retournent un vecteurcontenant les valeurs uk de la solution numrique, calculs pour des instants detemps distribus uniformment entre t0 et t1.

    Le programme MATLAB Eq_absorb.m appelle les fonctions EulerExp etRKutta4 en utilisant comme argument dentre la fonction fabsorb (crite dansun fichier spar), dcrivant lquation dabsorbtion. Les rsultats sont reprsen-ts graphiquement sur deux figures distinctes. Le programme trace galement lesdomaines de stabilit des schmas numriques (exercice 1.2).

    Les rsultats sont groups sur la figure 1.3. Observons que pour h = 1/8 < 2/a = 1/2tout se passe bien : la solution numrique approche la solution exacte, avec unemeilleure approximation pour le schma de Runge-Kutta (superposition des deuxcourbes). Par contre, pour h = 1/2 = 2/a on atteint la limite de stabilit du schmadEuler explicite. La suite des valeurs numriques ne converge pas, mme si ellereste borne (ce qui nest plus le cas pour h > 1/2 - tester).

    Le schma de Runge-Kutta dordre 4, qui a un domaine de stabilit plus tendu,reste stable pour les deux valeurs considres du pas de discrtisation h. La figure1.4 montre que le domaine de stabilit du schma RKutta4 inclut les domaines desschmas Euler explicite et RKutta2.

  • 20 Projet 1 Approximation numrique de quelques quations...

    0 0.5 1 1.5 2 2.5 310.80.60.40.2

    00.20.40.60.8

    1

    temps

    u

    Euler explicite

    Euler h=1/8Euler h=1/2Sol. exacte

    0 0.5 1 1.5 2 2.5 30

    0.2

    0.4

    0.6

    0.8

    1

    temps

    u

    RungeKutta 4

    RKutta4 h=1/8RKutta4 h=1/2Sol. exacte

    Figure 1.3 Calcul par un schma dEuler explicite (a) et un schma de Runge-Kutta dordre 4 (b)de la solution de lEDO : u(t) + 4u(t) = 0. La solution exacte est reprsente en trait continu.

    4 2 04

    2

    0

    2

    4

    x

    y Euler exp.

    RKutta 4

    RKutta 2

    Figure 1.4 Domaine de stabilit pour les schmas numriques.

    Au vu de ces rsultats, le schma RKutta4 semble tre le meilleur choix, en offrantla meilleure stabilit et prcision. En pratique, le choix dun schma ou dun autreest dict par le compromis entre ses caractristiques (prcision, stabilit) et le cotde calcul engendr (le schma RKutta4 est approximativement 4 fois plus coteuxque le schma dEuler explicite pour le mme pas de temps).

  • 1.4 Solutions et programmes 21

    Solution de lexercice 1.3. (Lquation de convection)1. Le changement de variable scrit sous la forme(

    XT

    )=

    (a bg m

    )(x

    t

    )et il est bijectif si am = bg. La drivation par rapport aux nouvelles variables donne :

    tu = bXU + mTU, xu = aXU + gTU, (1.62)

    et donc U est solution de lEDP

    (b + ca) XU + (m + cg) TU = 0.

    Pour b = ca, on obtient (m + cg) TU = 0, soit TU = 0. Cette dernire qua-tion a pour solution U(X, T) = F(X), o F est nimporte quelle fonction. On a doncu(x, t) = F(X) = F(ax + bt) = F(ax act) = G(x ct) o G est une fonction quel-conque. En imposant la condition initiale (1.28) nous obtenons u(x, t) = u0(x ct).On en dduit en particulier que la solution reste constante le long des droites carac-tristiques

    si (x, t) Cj = u(x, t) = u0(j).Dans le plan (x, t), les courbes caractristiques Cj sont des droites de pentes positives,gales 1/c (voir la figure 1.5).

    x

    t

    T

    T

    xT

    tm

    Cm Ca Cj Cb

    m

    a

    j

    b

    Figure 1.5 Calcul de la solution exacte de lquation de convection par la mthode descaractristiques.

  • 22 Projet 1 Approximation numrique de quelques quations...

    2. Pour dterminer la solution u(x, T) pour x [a, b] et T < T = (b a)/c, ilsuffit de tracer les caractristiques qui passent par les points (x, T) et dutiliser le faitque u(x, t) est constant le long dune caractristique. Deux cas sont possibles : la caractristique (Cj dans le dessin) coupe le segment [a, b] ; cest le cas des

    points x xT , avec xT = a + cT . La solution sera donc donne par la conditioninitiale :

    u(x, T) = u0(j) = u0(x cT). la caractristique (Cm dans le dessin) ne coupe pas le segment [a, b] ; dans ce cas il

    faut imposer une condition la limite u(a, t) = w(t). Linformation sera propage partir de cette donne :

    u(x, T) = w(tm) = w(T x ac

    ).Observons que la donne initiale u0 est compltement vacue du domaine de

    dfinition [a, b] aprs le temps T = (b a)/c.Pour c < 0, cest droite quil faut imposer une condition la limite sous la forme

    u(b, t) = w(t).3. La fonction MATLAB conv_exact.m calcule la solution exacte pour un temps T

    donn. Remarquons lutilisation de la commande MATLAB find pour implmenterla formule (1.32).

    4. On reconnat une discrtisation de lquation (1.27) o la drive en temps tuest approche par D+u(tn) et la drive en espace xu est approche par Du(xj). Lechoix de lapproximation dcentre gauche pour xu est li au fait que c > 0, donclinformation vient de la gauche.

    La caractristique passant par le point un+1j est reprsente sur la figure 1.6. Cettedroite coupe la droite t = tn en un point P compris entre xj1 et xj, situ la distancecdt de xj et dxcdt de xj1. Comme la solution est conserve le long de la caractris-tique, ncessairement un+1j = unP. Observons que le schma (1.35) calcule la valeur unPpar interpolation linaire entre les valeurs prises par la solution aux points xj1 et xj :

    un+1j =dx cdt

    dxunj +

    cdtdx

    unj1.

    La condition CFL : cdt dx, exprime le fait que les coefficients de cette interpo-lation doivent tre positifs, autrement dit, le point P doit se trouver lintrieur delintervalle [xj1, xj].

    Pour la programmation, on fera attention faire dmarrer les indices des tableaux partir de 1 (et non pas de 0). La solution linstant tn+1 sera calcule par la relation :

    un+1j = (1 s)unj + sunj1, s =cdtdx

    .

    Pour rduire le stockage des variables, il est possible dutiliser un seul tableau u pourla solution (les valeurs de ce tableau seront stockes dans un fichier ou reprsen-tes graphiquement pour des instants de temps choisis). Par consquent, la relation

  • 1.4 Solutions et programmes 23

    prcdente devient :u(j) = (1 s)u(j) + su(j 1),

    et les valeurs calcules linstant tn+1 seront stockes en crasant les valeurs duniveau tn. Afin de sassurer que les valeurs uj1 linstant prcdent tn sont utilises,les indices j seront balays de J + 1 2 (boucle inverse). Pour j = 1 la condition lalimite sera impose.

    P

    dx cdt

    cdt

    x

    t

    tn+1

    tn

    xj1 xj xj+1

    (c < 0)(c > 0)

    Figure 1.6 Interprtation gomtrique de la condition CFL pour le schma dcentr.

    Ce type de calcul est implment dans le programme MATLAB Eq_convec.m.Ce programme appelle les fonctions conv_ci et conv_cl (fichiers spars) quidfinissent, respectivement, la condition initiale et la condition la limite.

    La solution pour les instants demands est reprsente sur la figure 1.7 et compareavec la solution exacte (appel de la fonction conv_exact). On note qu partir delinstant T = 1/4, la donne initiale sort du domaine de calcul et la solution nedpend plus que de la condition la limite.

    On observe un effet numrique de lissage des zones o la drive de la solutionexacte est discontinue. Il sagit dun effet dissipatif qui sera analys dans les para-graphes suivants (quation de la chaleur). Ce qui est intressant dans notre cas est lefait que la dissipation observe na rien de physique - elle est introduite (et en mmetemps cache) par le schma numrique.

    Un calcul avec s = 1 (ou CFL=1) montre une superposition parfaite entre la solu-tion exacte et celle numrique. Rien dtonnant, car le schma dcentr devient unerelation exacte : un+1j = unj1. En pratique, la vitesse de convection c et le pas despacedx sont gnralement variables, ce qui rend impossible un calcul avec s = 1 partout.

  • 24 Projet 1 Approximation numrique de quelques quations...

    Le calcul avec s = 1.1 prouve la perte de stabilit du schma dcentr.

    0 0.2 0.4 0.6 0.8 10

    0.2

    0.4

    0.6

    0.8

    1temps=0.05

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 10.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2temps=0.1

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 11

    0.5

    0

    0.5

    1temps=0.2

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 11

    0.5

    0

    0.5

    1temps=0.25

    Sol exacteSol num

    Figure 1.7 Calcul de la solution de lquation de convection par un schma dcentr (CFL=0.8).La solution exacte est reprsente en trait continu.

    Solution de lexercice 1.4. (Lquation des ondes) partir de (1.62), nous obtenons pour les drives secondes :{

    2ttu = b22XXU + m22TTU + 2bm2TXU

    2xxu = a22XXU + g22TTU + 2ag2TXU

    et donc U est solution de lEDP(m2 c2g2) 2TTU + (b2 c2a2) 2XXU + 2 (bm c2ag) 2XTU = 0.

    Pour m = cg et b = ca, lquation devient 4c2ag2XTU = 0, soit 2XTU = 0, ouencore T (XU) = 0. On en dduit quil existe une fonction F telle que XU = F(X),puis quil existe une fonction G telle que U(X, T) = F(X)+G(T). Comme X = a(xct)et T = g(x + ct), on peut prendre a = g = 1 et la solution devient :

    u(x, t) = f (x ct) + g(x + ct).

  • 1.4 Solutions et programmes 25

    En imposant les conditions initiales dans les galits u(x, t) = f (x ct) + g(x + ct)et tu(x, t) = cf (x ct) + cg(x + ct), on obtient{

    f (x) + g(x) = u0(x)f (x) + g(x) = (1/c)u1(x)

    do les expressions de f et g et finalement la formule (1.41) pour u.Solution de lexercice 1.5On reconnat une discrtisation de lquation des ondes o les drives secondes sontapproches par des diffrences finies centres (cf. quation 1.10). Par consquent, leschma (1.42) est dordre deux en temps et en espace.

    La condition de stabilit (1.43) exprime le fait que le domaine de dpendance (voirla figure 1.2) dlimit par les deux caractristiques partant du point (xj, tn+1) doit trecontenu dans le domaine numrique impos par le schma, qui est, dans ce cas, letriangle {(xj, tn+1), (xj1, tn), (xj+1, tn)}. Autrement dit, si le pas de temps dpasse lavaleur critique dx/c, linformation sera cherche par les caractristiques en dehorsdu lintervalle [xj1, xj+1] considr par le schma, ce qui nest pas cohrent avec lephnomne physique dcrit par lquation des ondes.

    Daprs (1.41), il est facile de vrifier que :u(x + t, t) = u(x, t) et que u(x, t + t/c) = u(x, t).

    La solution u(x, t) est donc priodique en temps et en espace, de priode t en espaceet t/c en temps.

    Solution de lexercice 1.6Dans lalgorithme propos, on utilise le schma (1.42) avec le calcul de la solutionau premier pas de temps bas sur lapproximation tu(x, t) u1(x), valide pour tpetit.

    Le programme MATLAB mettant en uvre cet algorithme est Eq_corde_inf.m.Faisons quelques commentaires sur la programmation. La condition de priodi-cit (consistante avec la condition initiale) sexprime dans notre cas sous la formeunx+1 = u1, o la discrtisation spatiale est faite de telle manire que x1 = 0 etxnx+1 = 1. Afin dutiliser pleinement les capacits de calcul vectoriel de MATLAB,nous avons dfini les vecteurs jp et jm correspondant tous les indices j + 1, respec-tivement j 1 (en tenant compte, bien entendu, de la condition de priodicit). Leschma (1.45) se traduit en langage MATLAB par une seule ligne :

    u2=-u0+coeff*u1+sigma2*(u1(jm)+u1(jp)),o u2 correspond au vecteur (un+1)j, u1 (un)j et u0 (un1)j. Lavantage de ce typede programmation compacte est dviter une boucle suivant lindice j et le traitementparticulier au voisinage des bords du domaine de calcul. Ce type de programmationsera utilis galement dans le projet 12.

  • 26 Projet 1 Approximation numrique de quelques quations...

    Les rsultats sont montrs sur la figure 1.8. La priode en temps de la solution est1/c = 0.5. Pour nx = nt = 50, on obtient le nombre CFL s = 1. Le schma numriquepropage la condition initiale correctement et garde la priodicit en temps (superpo-sition avec la solution exacte qui est en fait la condition initiale u0). Contrairementaux schmas dcentrs utiliss pour lquation de convection, aucune diffusion nu-mrique nest observe pour ce schma centr (diminuer nx pour avoir des CFL < 1).Pour nx = 51 le schma devient instable car CFL > 1. Il est intressant dobserverque linstabilit du schma se manifeste aprs un certain temps (ici aprs la premirepriode).

    0 0.2 0.4 0.6 0.8 11.5

    1

    0.5

    0

    0.5

    1

    1.5temps=0.5 CFL=1

    x

    u

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 11.5

    1

    0.5

    0

    0.5

    1

    1.5temps=1 CFL=1

    x

    u

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 11.5

    1

    0.5

    0

    0.5

    1

    1.5temps=0.5 CFL=1.02

    x

    u

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 115

    10

    5

    0

    5

    10temps=1 CFL=1.02

    x

    u

    Sol exacteSol num

    Figure 1.8 Solution numrique de lquation des ondes pour la corde vibrante infinie(conditions de priodicit). Condition initiale : u(x, 0) = sin(2px) + sin(10px)/4 et u/t(x, 0) = 0.

    Comparaison avec la solution exacte pour CFL = 1 (en haut) et CFL > 1 (en bas) aprs une priodetemporelle ( gauche) et deux priodes ( droite).

    Solution de lexercice 1.7Les amplitudes uk vrifient lEDO souvent rencontre en physique (quation du pen-dule oscillant) :

    d2dt2 uk + c

    2(

    kp

    )2uk = 0. (1.63)

  • 1.4 Solutions et programmes 27

    La solution gnrale de cette EDO tant

    uk(t) = Ak cos(

    kp

    ct

    )+ Bk sin

    (kp

    ct

    ), (1.64)

    lexpression (1.47) est immdiate. Les coefficients Ak, Bk sont calculs en utilisantlorthogonalit des fonctions fk sur [0, ].

    On observe que la solution est priodique, de priode 2 en espace et 2/c entemps.

    La condition initiale (1.49) correspond une dcomposition en ondes simples avecles valeurs

    k = {1, 10}, Ak = {1, 1/4}, Bk = {0, 0}.La solution exacte sera donne par (1.47) avec ces valeurs.

    Le programme MATLAB Eq_corde_finie.m calcule la solution pour la corde vi-brante finie. La condition initiale est calcule dans ondes_cvf0.m et la solution exactedans ondes_cvfex.m.

    Remarquons nouveau lcriture vectorielle (sans utiliser de boucles) du schmacentr. Les points de calcul correspondant aux bords ne sont pas ractualiss entemps, en gardant ainsi les valeurs imposes initialement (respectant les conditionsaux limites). La figure 1.9 montre la comparaison entre la solution exacte et la solu-tion numrique pour deux instants de temps.

    0 0.2 0.4 0.6 0.8 11.2

    1

    0.8

    0.6

    0.4

    0.2

    0

    0.2temps=0.6 CFL=0.8

    x

    u

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 10.5

    0

    0.5

    1

    1.5temps=1 CFL=0.8

    x

    u

    Sol exacteSol num

    Figure 1.9 Solution numrique de lquation des ondes pour la corde vibrante finie. Conditioninitiale : u(x, 0) = sin(px) + sin(10px)/4 et u/t(x, 0) = 0. Comparaison avec la solution exacte (une

    priode correspond t = 1).

    Solution de lexercice 1.8. (Lquation de la chaleur)Les drives partielles sexpriment en fonction de f par :

    u

    t= h

    2tdfdh ,

    2u

    x2=

    14kt

    d2fdh2 ,

  • 28 Projet 1 Approximation numrique de quelques quations...

    do lEDO (1.55) pour f . Par intgration, on obtient :dfdh = Ae

    h2= u(x, t) = f (h) = B + A erf(h).

    En tenant compte des proprits de la fonction erf pour imposer les conditions auxlimites, on retrouve facilement la formule (1.57).

    Solution de lexercice 1.9LEDO vrifie par les amplitudes uk est :

    dukdt +

    (kp

    )2uk = 0,

    avec la solution

    uk(t) = Ak exp[(

    kp

    )2t

    ].

    Chaque onde simple uk(t)fk(x) vrifie lquation de la chaleur, mais pas les condi-tions aux limites (1.53). Cest la raison pour laquelle une fonction linaire en x (quiest galement solution de lquation de la chaleur) a t ajoute la forme finale dela solution (1.58). Cette superposition de plusieurs solutions est rendue possible parle caractre linaire de lquation de la chaleur.

    Pour dterminer les coefficients Ak on utilise lorthogonalit des fonctions fk eton obtient :

    Ak = 2us

    l0

    (1 x

    )sin(

    kp

    x

    )dx = 2uskp .

    Solution de lexercice 1.10Le programme MATLAB Eq_chaleur.m rpond aux questions 1 et 2. La conditioninitiale est calcule dans chaleur_u0.m et la solution exacte dans chaleur_uex.m (lafonction erf est dj programme dans les bibliothques MATLAB ).

    Les rsultats (figure 1.10) montrent que la solution erf (1.57) obtenue pour un do-maine infini est une bonne approximation pour des temps t petits (cest la raison pourlaquelle elle est souvent utilise par les ingnieurs). Pour des temps t plus grands, lasolution exacte (et celle numrique heureusement) converge vers la solution "station-naire" (qui ne dpend plus du temps) qui est la fonction linaire u(x) =

    (1 x

    )us.

    Remarque 1.4 : Le phnomne de diffusion dcrit par lquation de la chaleurest caractris par une chelle de temps t0 = 2/k (voir lexpression de h dans1.54). Par consquent, la vitesse effective de propagation de la perturbationthermique c0 = /t0 = k/, dcrot avec la distance, ce qui explique lineffica-cit des mcanismes de diffusion grande distance (ou pour des temps longs) !Prenons lexemple du chauffage dune habitation : la diffusivit thermique delair tant k 20 [mm2/s], leffet du chauffage sera ressenti 1 cm au bout

  • 1.4 Solutions et programmes 29

    de 5 secondes et 1 mtre aprs 5104 s 14 heures ! Heureusement, lesphnomnes de convection y intervenant sont caractriss par une vitesse depropagation constante, rendant le processus de chauffage plus efficace !

    0 0.2 0.4 0.6 0.8 1

    0

    0.2

    0.4

    0.6

    0.8

    1

    temps=0.02 CFL=0.5

    x

    u

    Sol exacteSol numerf

    0 0.2 0.4 0.6 0.8 1

    0

    0.2

    0.4

    0.6

    0.8

    1

    temps=0.04 CFL=0.5

    x

    u

    Sol exacteSol numerf

    0 0.2 0.4 0.6 0.8 1

    0

    0.2

    0.4

    0.6

    0.8

    1

    temps=0.12 CFL=0.5

    x

    u

    Sol exacteSol numerf

    0 0.2 0.4 0.6 0.8 1

    0

    0.2

    0.4

    0.6

    0.8

    1

    temps=0.24 CFL=0.5

    x

    u

    Sol exacteSol numerf

    Figure 1.10 Solution numrique de lquation de la chaleur pour x [0, ], k = 1 et lesconditions aux limites u(0, t) = 1,u(, t) = 0. Condition initiale u(0, 0) = 1,u(x, 0) = 0, x > 0.

    Comparaison avec la solution exacte (1.58) et la solution erf (1.57) obtenue pour un domaineinfini.

    Il est facile de revenir au programme prcdent pour implmenter la conditioninitiale (1.61) - les lignes changer sont marques en commentaire. Les rsultats(voir la figure 1.11) montrent clairement que les ondes avec un grand nombre donde(ou hautes frquences) sont dabord amorties (k = 10 dans notre cas). La solutiontend vers la solution stationnaire constante u(x) = 0. Rappelons que lquation desondes transportait vitesse constante la solution initiale sans modifier son amplitude(voir la figure 1.9).

  • 30 Projet 1 Approximation numrique de quelques quations...

    0 0.2 0.4 0.6 0.8 10.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    temps=0.0004 CFL=0.5

    x

    u

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 10.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    temps=0.0016 CFL=0.5

    x

    u

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 10.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    temps=0.0024 CFL=0.5

    x

    u

    Sol exacteSol num

    0 0.2 0.4 0.6 0.8 10.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    temps=0.016 CFL=0.5

    x

    uSol exacteSol num

    Figure 1.11 Solution numrique de lquation de la chaleur pour x [0, ], k = 1 et lesconditions aux limites u(0, t) = 0,u(, t) = 0. Condition initiale : u(x, 0) = sin(px) + sin(10px)/4.Comparaison avec la solution exacte (1.58). Observer lamortissement des ondes de grande

    frquence dabord.

    BIBLIOGRAPHIE

    [Crouzeix et Mignot, 1989] : Analyse numriquedes quations diffrentielles, Masson, Paris, 1989.

    [Danaila, Hecht et Pironneau, 2003] :Simulation numrique en C++, Dunod, Paris, 2003.

    [Delabrire et Postel, 2004] S. DELABRIRE, M. POSTEL Mthodes dapproxima-tion. Equations diffrentielles. Applications Scilab, Ellipses, Paris, 2004.

    [Demailly, 1996] : Analyse numrique et quations diffrentielles,Presses Universitaires de Grenoble, 1996.

    [Hirsh, 1988] : Numerical computation of internal and external flows,John Wiley & Sons, 1988.

    [Lucquin et Pironneau, 1996] : Introduction au cal-cul scientifique, Masson, 1996.

    [Mohammadi et Saac, 2003] ! "# : Pratique de la si-mulation numrique, Dunod, 2003.

  • Projet 2

    quations diffrentielles non linairesApplication la cintique chimique

    Fiche du projet

    Difficult : 1Notions dveloppes : Systme dquations diffrentielles non-linaires :

    stabilit, mthodes dintgration, schma dEulerexplicite, schma de Runge-Kutta, quationsdiffrentielles retard

    Domaines dapplication : Cintique chimique

    2.1 PROBLME PHYSIQUE ET MODLISATIONMATHMATIQUE

    Les lois de la cintique chimique peuvent scrire sous forme dquations diffren-tielles. Dans le cas de ractions complexes mettant en cause plusieurs molcules,les quations sont non linaires et ont des proprits intressantes du point de vuemathmatique (stabilit, priodicit, bifurcation, etc). La rsolution numrique desquations diffrentielles est un domaine dtude part entire avec une littratureabondante. En ce qui concerne la mise en uvre effective, dans MATLAB commedans la plupart des logiciels de calcul scientifique, il existe des botes outils effi-caces dans la grande majorit des cas, dans la mesure o leur utilisateur matrise un

  • 32 Projet 2 quations diffrentielles non linaires. Application la cintique chimique

    tant soit peut la thorie sous-jacente et les concepts de base tels que les notions deconvergence, de stabilit, dordre (voir chapitre 1).

    Le premier modle de raction que nous tudierons peut tre rsolu numrique-ment en utilisant un des solveurs dquations diffrentielles standard. Lautre, com-portant un terme de retard, ncessite limplmentation dun schma numrique sp-cifique. Ils sont tous les deux inspirs dexemples tirs de [Hairer, Norsett et Wanner,1987].

    On tudie en premier le modle dit du , mettant en jeu 6 substancesA, B, D, E, X et Y

    A v1 XB + X v2 Y + D raction bi-molculaire

    2X + Y v3 3X raction tri-molculaire auto-catalytiqueX v4 E

    (2.1)

    O les vi sont les vitesses (constantes) des diffrentes ractions chimiques. Ondnote par A(t), B(t), ... les concentrations des substances A, B, .... en fonction dutemps t. On admettra que la conservation des masses dans les ractions chimiquesci-dessus se traduit par les quations diffrentielles

    A = v1AB = v2BXD = v2BXE = v4XX = v1A v2BX + v3X2Y v4XY = v2BX v3X2Y

    De ces six quations on peut liminer dans un premier temps les deux quations don-nant la production des espces D et E, car ces espces ninfluencent pas lvolutiondes quatre autres.

    A = v1AB = v2BXX = v1A v2BX + v3X2Y v4XY = v2BX v3X2Y

    Le systme peut tre simplifi en supposant que A et B sont conservs constants,et en prenant par ailleurs toutes les vitesses de raction gales 1. On obtientalors un systme de deux quations deux inconnues. Soit U(t) = (X(t), Y(t))T ,le vecteur modlisant les variations de concentration des substances X et Y , etF(U) = (A (B + 1)X + X2Y, BX X2Y)T , le systme diffrentiel scrit sous laforme dun problme de Cauchy{

    U(t) = F(U(t)),U(0) = U0 = (X0, Y0)T .

    (2.2)

  • 2.2 tude de la stabilit du systme 33

    2.2 TUDE DE LA STABILIT DU SYSTME

    On tudie la stabilit du systme, cest--dire sa propension voluer vers une so-lution ou

    . Cette solution stationnaire U(t) = Uc, si elleexiste, vrifie U (t) = 0, on la trouve donc en rsolvant lquation F(Uc) = 0 et onlappelle . Dans lexemple ci-dessus la solution de cette quation estUc = (A, B/A)T . La stabilit du systme caractrise son aptitude revenir vers cepoint critique en un temps fini, et on cherche donc une quation permettant dtudierla variation D(t) = U(t) Uc. Pour cela, on linarise F autour du point critique encrivant la formule de Taylor

    U(t) = F(U) = F(Uc) +FU=Uc(U Uc) +O(||U Uc||2)avec

    F =

    F1X

    F1Y

    F2X

    F2Y

    = (2XY (B + 1) X2B 2XY X2)

    .

    Pour tudier les petites variations de D(t), on nglige le terme enO(||UUc||2) et ontudie le systme diffrentiel linaire{

    D(t) = JD(t),D(0) = D0, (2.3)

    o la matrice jacobienne J = FU=Uc vaut, dans le cas trait,

    J =(

    B 1 A2B A2

    ).

    Dans le cas o J est diagonalisable, on lcrit sous la forme J = MDM1. On a doncpour tout n > 0, Jn= MDnM1. On rappelle la dfinition de lexponentielle de lamatrice J (voir par exemple [Allaire et Kaber, 2002 (1)])

    eJ =

    n=0

    1n!J

    n=

    n=0

    1n!MD

    nM1 = M

    ( n=0

    1n!D

    n

    )M1 = MeDM1,

    o eD est la matrice diagonale (eD)ij = dijeli , forme par les exponentielles des va-leurs propres de J. Avec cette dfinition, le systme diffrentiel (2.3) sintgre direc-tement :

    D(t) = etJD0.Dans ce cas le cas o la matrice J est diagonalisable, lexpression de la solution

    exacte calcule la question prcdente nous donne le comportement en temps longen faisant tendre t vers +. Si toutes les valeurs propres l de J sont de partie rellengative, elt 0 quand t +, donc la matrice eJt = MeDtM1 0 quandt + et la solution DV tend vers 0. Le dveloppement de Taylor autour du pointcritique est donc lgitime, et la solution du systme initial, non linaire, tendra versle point critique.

  • 34 Projet 2 quations diffrentielles non linaires. Application la cintique chimique

    Dans ce cas trs simple, on peut calculer explicitement les valeurs propres de lamatrice J en cherchant les racines du polynme caractristique. On laisse au lecteurle soin de vrifier quelles sont gales

    l =B A2 1D

    2et que leur partie relle est ngative si B < A2 + 1.On peut aussi utiliser une mthode numrique - qui nous donnera un critre de stabi-lit approch, mais utilisable mme quand les valeurs propres sont difficiles calcu-ler explicitement. Pour cela, on propose lexercice suivant

    Exercice 2.1

    crire un programme reprsentant graphiquement la partie relle maximale desvaleurs propres de la matrice J en fonction du paramtre B pour une valeurconstante du paramtre A. Reprsenter par un symbole la valeur exacte du cri-tre de stabilit.

    La solution de cet exercice se trouve en page 39.

    Pour rsoudre le systme dquations diffrentielles (2.2), on pourrait utiliser undes schmas dintgration propos dans le chapitre 1 (voir Table 1.1). Une alternativeest de laisser le logiciel faire le travail et utiliser un de ses solveurs dquationsdiffrentielles.

    Exercice 2.2

    Calculer numriquement les solutions approches pour des valeurs de A et Bcorrespondant aux cas de stabilit et dinstabilit. Dans chaque cas, reprsenterles solutions X et Y en fonction du temps, et sur un autre graphique Y en fonctionde X.

    La solution de cet exercice se trouve en page 40.

    2.3 MODLE DE LA RACTION ENTRETENUE

    On reconsidre maintenant le systme initial en faisant cette fois lhypothse que lecomposant B nest plus constant mais inject dans le mlange la vitesse v. On noteZ(t) la concentration en B en fonction du temps. On admettra que le systme desractions chimiques (2.1) se ramne alors, pour A = 1, un nouveau systme de troisquations diffrentielles X

    = 1 (Z + 1)X + X2Y

    Y = XZ X2YZ = XZ + v

    (2.4)

  • 2.4 Modle de la raction avec retard 35

    2.3.1 Existence dun point critique et stabilit

    Le problme (2.4) admet maintenant une solution stationnaire au point critiqueUc = (1, v, v)T .

    La matrice jacobienne de la fonction second membre du systme (2.4) est

    F =(Z + 1) + 2XY Z 2XY ZX2 X2 0

    X X X

    .Pour tudier la stabilit du systme, on value cette matrice au point critique :

    J =

    v 1 1 1v 1 1v 0 1

    .Exercice 2.3

    Trouver numriquement des valeurs de v pour lesquelles le systme est stable ouinstable. On sinspirera de la mthode numrique propose la question (2.1).

    La solution de cet exercice se trouve en page 41.

    2.3.2 Rsolution numrique

    Exercice 2.4

    Rsoudre numriquement le systme (2.4) pour les valeurs de v suivantes : 0.9,1.3 et 1.52.Dans chaque cas, tracer sur des figures diffrentes les trois concentrations enfonction du temps puis deux concentrations en fonction de la troisime.

    La solution de cet exercice se trouve en page 41.

    2.4 MODLE DE LA RACTION AVEC RETARD

    Un exemple de raction chimique plus complique est propos dans [Hairer, Norsettet Wanner, 1987]. Une quantit de substance I est introduite flux constant dans lesystme, produisant une raction en chane

    I Y Y Y1 2 3 4z k 2 k 3 k 4Y

  • 36 Projet 2 quations diffrentielles non linaires. Application la cintique chimique

    La quantit de produit final Y4 intervient dans ltape Y1 Y2 en la ralentissant, etune modlisation fine de ce processus, prenant en compte le temps de transport et dediffusion des molcules, conduit un systme dquations diffrentielles :

    y1(t) = I z(t)y1(t)y2(t) = z(t)y1(t) y2(t)y3(t) = y2(t) y3(t)y4(t) = y3(t) 0.5y4(t)z(t) = 1

    1 + ay4(t 4)3 .

    (2.5)

    Ce systme a un point critique Yc, obtenu en rsolvant y(t) = 0 :

    Yc =

    I(1 + 8aI3)

    II2I

    (2.6)Comme au paragraphe prcdent, on peut linariser le systme autour de ce point,et tudier la stabilit du systme linaire : on introduit une cinquime variabley5(t) = y4(t 4) et on calcule le Jacobien de la fonction

    F(y) =

    I y1

    1 + ay35y11 + ay35

    y2y2 y3

    y3 0.5y4

    .

    On obtient la matrice jacobienne

    F =

    z 0 0 0 12aI3zz 1 0 0 12aI3z0 1 1 0 00 0 1 1 0

    ,avec z =

    11 + 8aI3 . Les petites variations D(t) autour du point critique Yc vrifient en

    premire approximation le systme linaire :

    D1(t) = zD1(t) + 12aI3zD4(t 4),D2(t) = zD1(t) D2(t) 12aI3zD4(t 4),D3(t) = D2(t) D3(t),D4(t) = D3(t) 0.5D4(t).

  • 2.4 Modle de la raction avec retard 37

    On cherche D(t) sous la forme D(t) = Vext, avec V R4 un vecteur constant. Onobtient lquation caractristique permettant de calculer x

    (x + 1)2(x + 0.5)(x + z) + 12azI3xe4x = 0.Le systme correspondant sera stable si toutes les racines de lquation ont une partierelle ngative.

    Exercice 2.5

    On fixe a = 0.0005. Rsoudre numriquement cette quation dans C pour dif-frentes valeurs de I entre 0 et 20. Trouver numriquement une valeur minimalepour le paramtre I au del de laquelle on peut exhiber des solutions correspon-dant un quilibre instable.

    La solution de cet exercice se trouve en page 43.

    Pour illustrer numriquement le phnomne dinstabilit, il faut intgrer le sys-tme complet (2.5), et pour ce faire, on ne peut pas utiliser un solveur standard prvupour les quations diffrentielles ordinaires du type{

    y(t) = F(t, y(t)),y(0) = u0, (2.7)

    alors quici nous avons une dpendance par rapport aux valeurs antrieures de lasolution {

    y(t) = G(t, y(t), y(t 4)),y(t) = u0(t), pour t 0. (2.8)

    Dans notre exemple, la fonction G est la fonction vectorielle de R R4 R4 dansR

    4

    G(t, u, v) =

    I u1

    1 + av34u11 + av34

    u2u2 u3

    u3 12u4

    . (2.9)

    Il sagit donc dadapter les schmas numriques prvus pour rsoudre les systmesdu type (2.7). Prenons par exemple le cas le plus simple du schma dEuler explicite

    initialisation : y0 = u0pour i = 0, 2, . . . , n 1 faire

    yi+1 = yi + hF(ti, yi)fin de i

    (2.10)

    Ce schma permet de calculer lapproximation yn y(tn), avec tn = nh pour hsuffisamment petit (voir [Delabrire et Postel, 2004]).

  • 38 Projet 2 quations diffrentielles non linaires. Application la cintique chimique

    Si le dlai (ici 4) est un multiple entier du pas de temps h, 4 = dh avec d entier, leschma sadapte facilement au systme avec retard (2.8)

    initialisation : y0 = u0(0)pour i = 0, 1, 2, . . . , n 1 faire

    gi =

    {u0(ti 4) si i < dyid sinon

    yi+1 = yi + hG(ti, yi,gi)fin de i

    (2.11)

    Exercice 2.6

    1. On suppose que la solution est constante gale y0 pour tout t 0.crire une fonction RetardEnzyme(t,Y,h,y0) renvoyant la valeurG(t, y(t), y(t 4)) (2.9) quand les valeurs de y sont discrtises dans le ta-bleau Y avec le pas h = tmax/nmax.

    2. crire une fonction EulerRetard(fretard,tmax,n,y0) mettant enuvre lalgorithme (2.11) pour calculer une approximation de la solution autemps tmax en n pas de temps.

    3. crire un programme principal pour intgrer le systme avec lalgorithme(2.11) jusqu tmax = 160. On fixe a = 0.0005 et on choisit pour I unevaleur correspondant un cas dinstabilit. Choisir une condition initiale y0proche de la solution dquilibre instable yC. Reprsenter graphiquement les4 composantes de la solution sur la mme figure, et dans une autre fentreles composantes yi, i = 2, . . . , 4 en fonction de la composante y1.

    La solution de cet exercice se trouve en page 44.

    Dans le cas dun schma de Runge-Kutta , il faut conserver les valeurs interm-diaires intervenant dans le calcul de yi+1 en fonction de yi. Pour adapter le schmadordre 4 prsent au chapitre 1, on lcrit maintenant de manire faire apparatreles arguments intermdiaires de la fonction second membre, plutt que la valeur dusecond membre en ces points.

    initialisation : y0 = u0pour i = 0, 2, . . . , n 1 faire

    g1 = yi,

    g2 = yi +h2

    F(ti, g1),g3 = yi +

    h2

    F(ti, g2),g4 = yi + hF(ti, g3),yi+1 = yi +

    h6

    (F(ti, g1) + 2F(ti + h2 , g

    2) + 2F(ti + h2 , g3) + F(ti + h, g4)

    ).

    fin de i

    (2.12)

  • 2.5 Solutions et programmes 39

    Il faut conserver les valeurs gk, k = 1, . . . , 4 en fonction du temps, pour pouvoircalculer les valeurs intermdiaires avec le dlai d :

    initialisation : y0 = u0pour i = 0, 2, . . . , n 1 faire

    g1i = yi,

    g2i = yi +h2

    G(ti, g1i ,g1i ),g3i = yi +

    h2

    G(ti, g2i ,g2i ),g4i = yi + hG(ti, g3i ,g3i ),yi+1 = yi +

    h6

    (G(ti, g1i ,g1i ) + 2G(ti +

    h2, g2i ,g

    2i ) + 2G(ti +

    h2, g3i ,g

    3i ) + G(ti + h, g4i ,g4i )

    ),

    o gki ={

    u0(ti + ckh 4) si i < d,gkid sinon,

    avec c =(0 0.5 0.5 1

    )T.

    fin de i(2.13)

    Exercice 2.7

    1. crire une fonction RungeKuttaRetard(fretard,tmax,n,y0)met-tant en uvre lalgorithme (2.13) pour calculer une approximation de lasolution au temps tmax en n pas de temps.

    2. Comparer graphiquement les solutions obtenues avec les algorithmes dEu-ler et de Runge-Kutta dordre 4. On fixe maintenant tmax = 16. Reprsenterles deux solutions calcules pour nmax = 100 puis pour nmax = 1000. En utili-sant la solution calcule avec nmax = 5000 comme solution exacte, calculerlerreur en norme L en fonction de h, pour nmax variant entre 100 et 2000.

    3. tudier linfluence de la condition initiale : tracer les trajectoires yi, i = 2,. . . , 4 en fonction de y1 avec des couleurs diffrentes pour des conditionsinitiales diffrentes.

    La solution de cet exercice se trouve en page 44.

    2.5 SOLUTIONS ET PROGRAMMES

    Tous les programmes et fonctions MATLAB proposs en solution des exercicessont disponibles sur le site web du livre.

    Solution de lexercice 2.1Pour illustrer graphiquement le critre de stabilit, on propose le script stab2comp.m :on calcule numriquement les valeurs propres du Jacobien de F au point critique,

  • 40 Projet 2 quations diffrentielles non linaires. Application la cintique chimique

    laide de la fonction MATLAB eigen et on calcule la valeur maximale de lapartie relle de ces valeurs propres. Pour A fix, on trace cette valeur en fonctiondu paramtre B, et on peut lire la valeur approximative du critre de stabilit qui estlabscisse o cette valeur maximale change de signe.

    Solution de lexercice 2.2Pour intgrer numriquement le systme (2.2) on propose le script Chimie2.m quiutilise le solveur dquations diffrentielles ode45 dvelopp par MATLAB.

    global Aglobal Bfun=fun2;A=1;B=0.9;%U0=[2;1]; % Condition initialet0=0; % temps initialt1=10; % temps final[tempsS1,solS1]=ode45(fun,[t0,t1],U0) ;

    Lextrait ci-dessus correspond un cas stable. La fonction MATLAB ode45prend en argument dentre la fonction second membre du systme diffrentiel pro-gramme dans fun2.m, lintervalle de temps [t0,t1] sur lequel on intgre lesystme, et la solution U0 linstant initial t0. Elle renvoie en sortie le tableautempsS1 des temps o le solveur calcul la solution dans le tableau solS1. Lesparamtres A et B du systme diffrentiel sont dclars global dans le script dap-pel et dans la fonction second membre fun2, ce qui vite davoir les passer enarguments dappel de cette dernire.

    Pour A = 1, on fait tourner le programme avec des jeux de paramtres corres-pondant la stabilit B = 0.9 ou linstabilit B = 3.2. Dans le premier cas, lesconcentrations tendent vers une valeur constante qui est justement celle du point cri-tique. On reprsente ce comportement sur la figure 2.1. On voit gauche lallure desconcentrations en fonction du temps. Elles se stabilisent rapidement sur leurs valeurscritiques. Le graphe de droite montre le comportement du constituant Y en fonc-tion du constituant X pour deux conditions initiales diffrentes. Les deux trajectoiresconvergent toutes les deux vers le point critique de coordonnes (A, B/A) = (1, 0.9).Dans le deuxime cas, elles restent bornes mais ont une allure priodique en fonc-tion du temps . Si on trace Y en fonction de X on voit, en regardant le phnomne entemps long, le cycle limite. Le graphe de droite de la figure 2.2 illustre numrique-ment que ce cycle ne dpend pas des concentrations initiales mais juste des valeursdes paramtres. En se rapprochant de la limite dinstabilit, B = A2 + 1 on observeque ce cycle limite devient de plus en plus petit, pour disparatre finalement au pointcritique. Ce phnomne sappelle .

  • 2.5 Solutions et programmes 41

    0 5 100

    1

    2

    t

    y(t), x

    (t)X et Y en fonction du temps

    euler Xeuler Y

    1 2

    0.5

    1

    Y en fonction de X cas stable

    x(t)

    y(t)

    [2;1][0.5,0.5]

    Figure 2.1 Modle du Brusselator simplifi, cas stable A = 1, B = 0.9. gauche, lesconcentrations X et Y en fonction du temps. droite, les courbes paramtres (X,Y)t pour deux

    conditions initiales diffrentes (2, 1)T et (0.5, 0.5)T .

    0 25 500

    2

    4

    6

    t

    y(t), x

    (t)

    X et Y en fonction du temps

    XY

    0 2 4 6

    1

    4

    Y en fonction de X

    x(t)

    y(t)

    [2;1][3;4]

    Figure 2.2 Modle du Brusselator simplifi, cas instable A = 1, B = 3.2. gauche, lesconcentrations X et Y en fonction du temps. droite, les courbes paramtres (X,Y)t pour deux

    conditions initiales diffrentes (2, 1)T et (2, 3)T .

    Solution de lexercice 2.3On adapte le script stab2comp.m mis au point dans la question 2.1 pour trouverles valeurs du paramtre v pour lesquelles toutes les valeurs propres de J ont desparties relles ngatives. On voit sur la figure produite par le script stab3comp.m,que pour les valeurs 0.9, 1.3 et 1.52 proposes dans lexercice 2.4 il y aura stabilitseulement pour la premire.

    Solution de lexercice 2.4Lintgration du systme de trois quations est faite dans le script Chimie3.m.La fonction second membre du systme est dfinie dans fun3.m Pour v = 0.9,le systme est stable et donc les concentrations tendent toutes les trois vers leurvaleur dquilibre (U c = (1, 0.9, 0.9)T) comme le montre le graphe de gauche dela figure (2.3). Le graphe de droite, qui montre les variations de Y en fonction de X,

  • 42 Projet 2 quations diffrentielles non linaires. Application la cintique chimique

    permet aussi de visualiser la convergence vers le point critique, partir de plusieursconditions initiales diffrentes.

    Pour v = 1.3, le systme est instable, mais les concentrations restent bornes. Leurvariation en fonction du temps est priodique et tend vers un cycle limite comme surla figure (2.4)

    0 10 20 300

    1

    2

    t

    y(t), x

    (t),z(

    t)

    X Y et Z cas stable v=0.9

    XYZ

    0.5 1.5 2.50

    1

    2Y en fonction de X

    x

    y

    [1,2,1][2;1;1][1;1/3;1]

    Figure 2.3 Modle du Brusselator, cas stable v = 0.9. gauche, les concentrations X, Y et Z enfonction du temps. droite, les courbes paramtres (X,Y)t pour deux conditions initiales

    diffrentes (1, 2, 1)T et (2, 2, 2)T .

    0 10 20 300

    1

    2

    t

    y(t), x

    (t),z(

    t)

    X Y et Z cas instable priodique v=1.3

    XYZ

    1 2 30

    1

    2

    3Y et Z en fonction de X pour v=1.3

    x(t)

    y(t),z

    (t)

    [1;2;1][2;2;2]

    Figure 2.4 Modle du Brusselator, cas instable priodique v = 1.3. gauche, les concentrationsX, Y et Z en fonction du temps. droite, la courbe paramtre (X,Y)t pour deux conditions

    initiales diffrentes (1, 2, 1)T et (2, 2, 2)T .

    Enfin, pour v > 1.5 le systme est instable ou divergent et les concentrations yet z explosent alors que la concentration x tend vers 0. Le comportement est alorscompltement diffrent du prcdent. Il ny a pas de cycle limite de y en fonction dex, ou de z en fonction de y.

  • 2.5 Solutions et programmes 43

    0 20 40 600

    20

    40

    t

    y(t), x

    (t),z(

    t)X Y et Z cas instable divergent v=1.52

    XYZ

    0 2 4 6 80

    20

    40

    60Y et Z en fonction de X pour v=1.52

    x(t)

    y(t),z

    (t)

    [1;2;1][2;2;2]

    Figure 2.5 Modle du Brusselator, cas instable divergent v = 1.52. gauche, les concentrationsX, Y et Z en fonction du temps.