Introduction à la résolution des EDOa Support de cours
Transcription
Introduction à la résolution des EDOa Support de cours
Introduction à la résolution des E.D.O. ‚‚‚‚‚‚‚ Support de cours Ingénieurs Sup'Galilée Energétique - 1ère année a. Version beta 0.6 du 3 janvier 2015 par Cuvelier François Université Paris Nord - Institut Galilée - LAGA Av. J.-B. Clément 93430 Villetaneuse email : [email protected] a Table des matières 1 Introduction 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Météorologie . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Biologie . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3 Chimie : La réaction de Belousov-Zhabotinsky . . . . . 1.1.4 Mécanique . . . . . . . . . . . . . . . . . . . . . . . . Dénition des E.D.O. . . . . . . . . . . . . . . . . . . . . . . . Formulation générale : le problème de Cauchy . . . . . . . . . Dérivation numérique . . . . . . . . . . . . . . . . . . . . . . . Méthode des diérences nies pour le problème de Cauchy en dimension d “ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Méthode des diérences nies pour le problème de Cauchy en dimension d . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Méthode à un pas ou à pas séparés 2.1 2.2 2.3 2.4 2.5 Schéma général Convergence . . Stabilité . . . . Consistance . . Ordre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Méthode de Runge-Kutta 3.1 3.2 3.3 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formules explicites de Runge-Kutta d'ordre 2 . . . . . . . . . Méthodes de Runge-Kutta d'ordre 4 . . . . . . . . . . . . . . 4 Méthodes à pas multiples 4.1 4.2 4.3 4.4 4.5 Exemple : schéma de point milieu . . . Le principe . . . . . . . . . . . . . . . Méthodes d'Adams-Bashforth . . . . . Méthodes d'Adams-Moulton . . . . . . Schéma prédicteur-correcteur . . . . . 4.5.1 Principe . . . . . . . . . . . . . 4.5.2 Exemple . . . . . . . . . . . . . 4.5.3 Comparaison avec Runge-Kutta 5 Exercices corrigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 4 5 6 8 10 12 15 16 16 19 20 20 20 21 21 21 21 21 23 23 24 24 24 26 26 26 26 27 28 28 1 INTRODUCTION 1 Introduction 1.1 Exemples 1.1.1 Météorologie Modèle de Lorentz : Source Wikipedia Mathématiquement, le couplage de l'atmosphère avec l'océan est décrit par le système d'équations aux dérivées partielles couplées de Navier-Stokes de la mécanique des uides. Ce système d'équations était beaucoup trop compliqué à résoudre numériquement pour les premiers ordinateurs existant au temps de Lorenz. Celui-ci eut donc l'idée de chercher un modèle très simplié de ces équations pour étudier une situation physique particulière : le phénomène de convection de Rayleigh-Bénard. Il aboutit alors à un système dynamique diérentiel possédant seulement trois degrés de liberté, beaucoup plus simple à intégrer numériquement que les équations de départ. $ 1 & x ptq “ ´σxptq ` σyptq y 1 ptq “ ´xptqyptq ` ρxptq ´ yptq % 1 z ptq “ xptqyptq ´ βzptq (1.1) avec σ “ 10, ρ “ 28, β “ 8{3 et les données initales xp0q “ ´8, yp0q “ 8 et zp0q “ ρ ´ 1. Dans ces équations, σ ,ρ - respectivement le nombre de Prandtl et le rapport du nombre de Rayleigh sur un Rayleigh critique - et β sont trois paramètres réels. xptq est proportionnel à l'intensité du mouvement de convection, yptq est proportionnel à la diérence de température entre les courants ascendants et descendants, et zptq est proportionnel à l'écart du prol de température vertical par rapport à un prol linéaire (Lorenz 1963 p.135). La résolution numérique de ce modèle donne 3 1.1 Exemples 1 INTRODUCTION Modele de Lorentz x(t) 20 0 −20 0 10 20 30 40 50 t 60 70 80 90 100 0 10 20 30 40 50 t 60 70 80 90 100 0 10 20 30 40 50 t 60 70 80 90 100 y(t) 50 0 −50 z(t) 40 20 0 Modele de Lorentz 50 45 40 35 z(t) 30 25 20 15 50 10 0 5 0 −20 −50 −15 −10 −5 0 5 10 15 20 y(t) x(t) 1.1.2 Biologie Considérons une population y d'animaux dans un milieu ambient où au plus B animaux peuvent coexister. On suppose que initialement la population soit y0 ăă B et que le facteur de croissance des animaux soit égal à une constante C. Dans ce cas, l'évolution de la population au cours du temps sera proportionnelle au nombre d'animaux existants, sans toutefois que ce nombre ne dépasse la limite B. Cela peut s'exprimer à travers l'équation ˆ ˙ yptq 1 y ptq “ Cyptq 1 ´ , t ą 0, yp0q “ y0. (1.2) B La résolution de cette équation permet de trouver l'évolution de la population au cours du temps. 4 1.1 Exemples 1 INTRODUCTION On considère maintenant deux populations, y1 et y2 , où y1 sont les proies et y2 sont les prédateurs. L'évolution des deux populations est alors décrite par le système d'équations diérentielles " 1 y1 ptq “ C1 y1 ptqr1 ´ b1 y1 ptq ´ d2 y2 ptqs, (1.3) y21 ptq “ ´C2 y2 ptqr1 ´ d1 y1 ptqs, où C1 et C2 sont les facteurs de croissance des deux populations, d1 et d2 tiennent compte de l'interaction entre les deux populations, tandis que b1 est lié à la quantité de nourriture disponible pour la population des proies y1 . Ce système d'équations diérentielles est connu comme modèle de LotkaVolterra. 1.1.3 Chimie : La réaction de Belousov-Zhabotinsky Sous certaines conditions, des réactions chimiques peuvent être oscillantes. Par exemple, le mélange d'une solution de bromate de potassium et d'acide sulfurique avec une solution d'acide manolique et de bromure de sodium peut entrainer une oscillation de la couleur de la solution mélange du rouge au bleue avec une période de 7 secondes. Le modéle associé est nommé modèle du bruxelator basé sur les équations chimiques : A ÝÑ X pM1 q 2X ` Y ÝÑ 3X pM2 q B ` X ÝÑ Y ` C pM3 q X ÝÑ D pM4 q On note ki , i P v1, 4w les vitesses de réactions des équations pMi q. On obtient alors le système diérentiel suivant : $ 1 A ptq “ ´k1 Aptq ’ ’ & 1 B ptq “ ´k3 BptqXptq X 1 ptq “ k1 Aptq ` k2 X 2 ptqY ptq ´ k3 BptqXptq ´ k4 Xptq ’ ’ % 1 Y ptq “ ´k2 X 2 ptqY ptq ` k3 BptqXptq Exemple 1 Dans cet exemple, on étudie le problème simplié du Bruxelator. Lorsque les réactions de (??) ont des constantes de réactions k1 , . . . , k4 égales respectivement à 1, α ą 0, 1 et 1, et que les concentrations de A et B sont constantes, repectivement égales à 1 et β ą 0, on est alors amené à résoudre l'E.D.O. @t Ps0, T s, " X 1 ptq “ 1 ` αX 2 ptqY ptq ´ pβ ` 1qXptq Y 1 ptq “ ´αX 2 ptqY ptq ` βXptq (1.4) Par exemple, avec le jeu de données α “ 1, β “ 3.5 et les contitions initiales Xp0q “ 3 et Y p0q “ 2 on obtient des oscillations : 5 1.1 Exemples 1 INTRODUCTION Brusselator simplifie − Concentrations 6 A(t) B(t) 5 4 3 2 1 0 0 5 10 15 20 t 25 30 35 40 Brusselator simplifie 6 5 B(t) 4 3 2 1 0 0 1 2 3 A(t) 4 5 6 ‚ 1.1.4 Mécanique Le pendule pesant le plus simple est constitué d'un petit objet pesant accroché à une tige de masse négligeable devant celle de l'objet. L'autre extrémité de la tige est l'axe de rotation du pendule. Un tel pendule, sans viscosité, est appelé pendule pesant simple. On note θptq l'angle que fait le 6 1.1 Exemples 1 INTRODUCTION pendule par rapport à l'axe vertical, à un instant t, L la longueur de la tige, m sa masse et g l'accélération de la pesanteur. L'équation diérentielle est donnée par g θ2 ptq ` sinpθptqq “ 0. (1.5) L Si le pendule est soumis à un frottement visqueux de coecient ν , l'expression de l'accélération angulaire devient : θ2 ptq ` ν 1 g sinpθptqq ` θ ptq “ 0. L mL2 (1.6) Exemple 2 Dans cet exemple, on étudie le problème du pendule pesant sans viscosité décrit au paragraphe 1.1.4. On est donc ramené à résoudre l'E.D.O. θ2 ptq ` g sinpθptqq “ 0, @t Ps0, T s, L (1.7) avec les conditions initiales " position angulaire initiale, vitesse angulaire initiale, θp0q “ θ0 , θ1 p0q “ θ0 , Par exemple, avec le jeu de données et θ01 “ 0 on obtient g L “3 (1.8) et les conditions initiales θ0 “ Pendule pesant − valeur angulaire 3 2 θ(t) 1 0 −1 −2 −3 0 2 4 6 8 10 t 12 14 16 18 20 14 16 18 20 Pendule pesant − vitesse angulaire 4 θ’(t) 2 0 −2 −4 0 2 4 6 8 10 t 7 12 5π 6 1.2 Dénition des E.D.O. 1 INTRODUCTION Pendule pesant 4 3 2 θ’(t) 1 0 −1 −2 −3 −4 −3 −2 −1 0 θ(t) 1 2 3 ‚ 1.2 Dénition des E.D.O. Soit une fonction y dénie sur un intervalle de R à valeurs dans Rm de classe C p (continûment dérivable d'ordre p) et on note y ppq la dérivée d'ordre p de y . Dénition 1.1 On appelle équation diérentielle ordinaire (E.D.O.) d'ordre p une équation de la forme : Fpt, y ptq, y p1q ptq, y p2q ptq, . . . , y ppq ptqq “ 0. Dénition 1.2 On appelle forme canonique d'une E.D.O. une expression du type : y ppq ptq “ G pt, y ptq, y p1q ptq, y p2q ptq, . . . , y pp´1q ptqq. (1.9) ‚ Toute équation diérentielle d'ordre p sous forme canonique peut s'écrire comme un système de p équations diérentielles d'ordre 1. En eet, en introduisant p fonctions dénies par $ r1s z ptq “ y p0q ptq ’ ’ ’ & z r2s ptq “ y p1q ptq .. ’ . ’ ’ % rps z ptq “ y pp´1q ptq 8 1.2 Dénition des E.D.O. on obtient $ ’ ’ ’ ’ & ’ ’ ’ ’ % 1 INTRODUCTION dzz r1s dt ptq dzz r2s dt ptq “ y p1q ptq “ z r2s ptq, “ y p2q ptq “ z r3s ptq, .. . dzz rps dt ptq “ y ppq ptq. Or y ppq ptq “ G pt, y ptq, y p1q ptq, y p2q ptq, . . . , y pp´1q ptqq “ G pt, z r1s ptq, z r2s ptq, . . . , z rps ptqq. On obtient alors le système diérentiel d'ordre 1 suivant : $ r1s dzz r2s ’ ’ dt ptq “ z ptq, ’ ’ r2s & dzz ptq “ z r3s ptq, dt .. ’ ’ . ’ ’ % dzz rps ptq “ G pt, z r1s ptq, z r2s ptq, . . . , z rps ptqq. dt (1.10) Exemple (suite) Pour obtenir la forme canonique de (1.4), on pose ˆ 1˙ y ptq “ y1 ptq y2 ptq avec y1 ptq “ Xptq et y2 ptq “ Y ptq. On obtient alors ˜ y p1q p1q y1 ptq p1q y2 ptq ptq “ ¸ ˆ “ X p1q ptq Y p1q ptq ˙ ˆ ˙ 1 ` αX 2 ptqY ptq ´ pβ ` 1qXptq “ ´αX 2 ptqY ptq ` βXptq ˆ ˙ 1 ` αy12 ptqy2 ptq ´ pβ ` 1qy1 ptq “ ´αy12 ptqy2 ptq ` βy1 ptq Avec p “ 1 et $ R2 & G b : R` ˆ R2 ÝÑ ˆ ˙ 1 ` αz12 z2 ´ pβ ` 1qz1 pt, z q ÞÝÑ % ´αz12 z2 ` βz1 la forme canonique est donnée par y p1q ptq “ G b pt, y ptqq. (1.11) ‚ Exemple 2 (suite) Pour obtenir la forme canonique de (1.7),on prend p“2 et " Gp : R` ˆ R ˆ R ÝÑ R . pt, u, vq ÞÝÑ ´ Lg sinpuq La forme canonique est alors donnée par θp2q ptq “ Gp pt, θptq, θp1q ptqq. 9 (1.12) ‚ 1.3 Formulation générale : le problème de Cauchy 1 INTRODUCTION 1.3 Formulation générale : le problème de Cauchy Dénition 1.3 - problème de Cauchy Soit f l'application continue dénie par : rt0 , t0 ` T s ˆ Rd ÝÑ Rd pt, y q ÞÝÑ f pt, y q f avec T Ps0, `8s. Le problème fonction y dénie par de Cauchy revient à chercher une y : rt0 , t0 ` T s ÝÑ Rd t ÞÝÑ y ptq continue et dérivable, telle que y 1 ptq “ f pt, y ptqq, @t P rt0 , t0 ` T s y pt0 q “ y r0s P Rd . (1.13) (1.14) On supposera qu'une telle solution existe. Exemple 1.4 exemple : ‚ Un problème de Cauchy peut être linéaire, comme par " y 1 ptq “ 3yptq ´ 3t, yp0q “ 1 si t ą 0 pour lequel f pt, vq “ 3v´3t et dont la solution est yptq “ p1´1{3qe3t ` t ` 1{3. ‚ On peut avoir aussi des problèmes non-linéaires, comme : " a y 1 ptq “ 3 yptq, yp0q “ 0 si t ą 0 avec f pt, vq “ 3 v. les trois solutions suivantes : aCe problème admeta 3 yptq “ 0, yptq “ 8t {27 et yptq “ ´ 8t3 {27. ‚ Le problème suivant : ? " y 1 ptq “ 1 ` y 2 ptq, yp0q “ 0 si t ą 0 admet comme solution la fonction yptq “ tanptq avec 0 ă t ă c'est-à-dire une solution locale. Exemple 1 (suite) La forme canonique (1.11) est d'ordre π 2 , ‚ 1, on obtient alors directemnt le problème de Cauchy associé : chercher une fonction y dénie par y : r0, T s ÝÑ R2 t ÞÝÑ y ptq 10 1.3 Formulation générale : le problème de Cauchy 1 INTRODUCTION continue et dérivable, telle que avec f ” G b et (1.15) y 1 ptq “ f pt, y ptqq, @t P rt0 , t0 ` T s y p0q “ y 0 P R2 ˆ ˙ 3 . y p0q “ 2 Exemple 2 (suite) La forme canonique (1.12) est d'ordre mène à un système diérentiel du 1er ordre en posant : (1.16) ‚ 2. On se ra- ˙ ˙ ˆ ˆ θptq y1 ptq “ y ptq “ y2 ptq θp1q ptq On a alors, en dérivant l'expression précédente : y On pose Le problème p1q ¸ ˆ ˜ ˙ p1q θp1q ptq y1 ptq “ ptq “ p1q θp2q ptq y2 ptq ˆ ˙ θp1q ptq “ Gp pt, θptq, θp1q ptqq ˆ ˙ y2 ptq “ . Gp pt, y1 ptq, y2 ptqq 2 f p : r0, T s ˆ R2 ÝÑ R ˆ ˙ z2 pt, z q ÞÝÑ . Gp pt, z1 , z2 q de Cauchy revient à chercher une fonction y dénie par y : r0, T s ÝÑ R2 t ÞÝÑ y ptq continue et dérivable, telle que y 1 ptq “ f p pt, y ptqq, @t P r0, T s y p0q “ y 0 P R2 avec y p0q “ ˆ ˙ θ0 . θ01 (1.17) (1.18) ‚ Dans de nombreux cas, la variable t représente le temps et les composantes du vecteur y , une famille de paramètres décrivant l'état d'un système matériel donné. L'équation diérentielle (1.17) traduit physiquement la loi d'évolution du système considéré. En général, il est impossible de trouver des solutions exactes à ces problèmes. Il faut alors construire des méthodes numériques pour obtenir des 11 1.4 Dérivation numérique 1 INTRODUCTION solutions approchées. Toutefois, il faudra vérier l'existence et l'unicité de la solution. Pour cela, on a le " 1 y ptq “ f pt, y ptqq pPCq y pt0 q “ y 0 P Rm . avec f : U ÝÑ Rm , U un ouvert de R ˆ Rm et pt0 , y r0s q P U . Théorème 1.5 - Cauchy-Lipschitz On suppose que la fonction f est continue sur U et quelle est localement lipschitzienne en y : @pt, y q P U, DW voisinage t , DV voisinage y , DL ą 0 tels que u, v q P V 2 , }ff ps, u q ´ f ps, v q} ď L }u u ´ v} @s P W, @pu (1.19) Sous ces hypothèses le problème de Cauchy pPCq admet une unique solution. Bff pt, y q Byy Proposition 1.6 Si est continue et bornée, alors f satisfait la condition de Lipschitz (1.19) en y . ‚ 1.4 Dérivation numérique par Soit y : ra, bs ÝÑ R, de classe C 1 et t P ra, bs. La dérivée y 1 ptq est donnée ypt ` hq ´ yptq h yptq ´ ypt ´ hq “ lim ` h hÑ0 ypt ` hq ´ ypt ´ hq “ lim hÑ0 2h y 1 ptq “ lim hÑ0` Dénition 1.7 Soit N P N˚ . On appelle discrétisation régulière de ra, bs à N pas ou N ` 1 points l'ensemble des points a ` nh, n P v0, N w où le pas h est donné par h “ pb ´ aq{N. Soient ttn unPv0,N w une discrétisation régulière de ra, bs et pDyqn une approximation de y 1 ptn q. On appelle ‚ diérence nie progressive l'approximation pDyqPn “ yptn`1 q ´ yptn q , @n P v0, N ´ 1w h 12 (1.20) 1.4 Dérivation numérique ‚ 1 INTRODUCTION diérence nie rétrograde l'approximation pDyqR n “ ‚ yptn q ´ yptn´1 q , @n P v1, N w h (1.21) diérence nie centrée l'approximation pDyqC n “ yptn`1 q ´ yptn´1 q , @n P v1, N ´ 1w 2h (1.22) Pour calculer l'erreur commise par ces approximations, on rappelle le developpement de Taylor Proposition 1.8 - Développement de Taylor Soit f une application f : ra, bs ÝÑ R. Si f P C r`1 pra, bsq alors ‚ @px, yq P ra, bs2 il existe un ξ Psx, yr tel que f pxq “ f pyq` r ÿ f pr`1q pξq f pkq pyq px´yqk ` px´yqr`1 (1.23) k! pr ` 1q! k“0 ‚ @x P ra, bs, @h P R˚ vériant x ` h P ra, bs, il existe ξ P s minpx, x ` hq, maxpx, x ` hqr tel quel f px ` hq “ f pxq ` r ÿ f pkq pxq k f pr`1q pξq r`1 h ` h k! pr ` 1q! k“0 (1.24) Dénition 1.9 Soit g une fonction. On dit que g se comporte comme un grand O de hq quand h tend vers 0 si et seulement si il existe H ą 0 et C ą 0 tel que |gphq| ď Chq , @h Ps ´ H, Hr. On note alors gphq “ Ophq q. Avec cette notation le développement de Taylor (1.24) s'écrit aussi f px ` hq “ f pxq ` r ÿ f pkq pxq k h ` Ophr`1 q. k! k“0 Exercice 1.1 Q. 1 Soit y P C 2 pra, bsq. 1. Montrer qu'il existe ηPn Pstn , tn`1 r et ηRn Pstn´1 , tn r tels que pDyqPn “ y p1q ptn q ` h p2q n y pηP q 2 p1q n pDyqR n “ y pt q ´ h p2q n y pηR q 2 et 13 (1.25) 1.4 Dérivation numérique 1 INTRODUCTION 2. En déduire que |y p1q ptn q ´ pDyqPn | ď C1 h, et |y 1 ptn q ´ pDyqR n | ď C2 h, avec C1 “ avec C2 “ 1 max |y p2q ptq| 2 tPrtn ,tn`1 s 1 max |y p2q ptq| 2 tPrtn´1 ,tn s Q. 2 Soit y P C 3 pra, bsq. 1. Montrer qu'il existe η1n Pstn , tn`1 r et η2n Pstn´1 , tn r tels que p1q n pDyqC n “ y pt q ´ h2 p3q n py pη1 q ` y p3q pη2n qq 12 2. En déduire que 2 |y p1q ptn q ´ pDyqC n | ď Eh , avec E “ 1 max |y p3q ptq| 6 tPrtn´1 ,tn`1 s Dénition 1.10 La diérence |y1 ptn q ´ pDyqn | est appelée erreur de tron- cature au point tn . On dira que |y1 ptn q ´ pDyqn | est d'ordre p ą 0 si il existe une constance C ą 0 telle que |y 1 ptn q ´ pDyqn | ď Chp ðñ |y 1 ptn q ´ pDyqn | “ Ophp q. Les erreurs de troncature des diérences nies progressive et rétrograde sont d'ordre 1 et l'erreur de troncature de la diérence nie centrée est d'ordre 2. On a démontré que ˇ ˇ n`1 q ´ yptn q ˇ ˇ 1 n ˇy pt q ´ ypt ˇ “ Ophq, @n P v0, N ´ 1w, (1.26) ˇ ˇ h ˇ ˇ n n´1 q ˇ ˇ 1 n ˇy pt q ´ ypt q ´ ypt ˇ “ Ophq, @n P v1, N w, (1.27) ˇ ˇ h ˇ ˇ n`1 q ´ yptn´1 q ˇ ˇ 1 n ˇ “ Oph2 q, @n P v1, N ´ 1w. (1.28) ˇy pt q ´ ypt ˇ ˇ 2h Exercice 1.2 Soit f tion régulière de F n “ f ptn q. Q. 1 P C 2 pra, bs; Rq. On note tn , n P v0, N w, une discrétisara, bs de pas h. On note F P RN `1 le vecteur déni par 1. Connaissant uniquement le vecteur F , déterminer un vecteur V P RN `1 vériant V n “ f 1 ptn q ` Ophq. 14 1.5 Méthode des diérences nies pour le problème de Cauchy en dimension d “ 1 1 INTRODUCTION 2. Ecrire une fonction Matlab permettant, à partir du vecteur F et de la discrétisation régulière, de calculer le vecteur V précédant. ‚ Q. 2 1. Connaissant uniquement le vecteur F , déterminer un vecteur vériant V P RN `1 W n “ f 1 ptn q ` Oph2 q. 2. Ecrire une fonction Matlab permettant, à partir du vecteur F et de la discrétisation régulière, de calculer le vecteur W précédant. ‚ 1.5 Méthode des diérences nies pour le problème de Cauchy en dimension d “ 1 On veut résoudre numériquement le problème de Cauchy (1.13)-(1.14) en utilisant les diérences nies progressive, rétrograde ou centrée. On note tn “ t0 ` nh, n P t0, . . . , N u une discrétisation régulière de rt0 , t0 ` T s avec h “ T {N le pas de temps. On a y 1 ptq “ f pt, yptqq, @t P rt0 , t0 ` T s ce qui entraine y 1 ptn q “ f ptn , yptn qq, @n P v0, N w. (1.29) En utilisant la formule des diérences nies progressive, on a @n P v0, N ´ 1w, Dηn P rtn , tn`1 s tels que ou encore yptn`1 q ´ yptn q h “ f ptn , yptn qq ` y 2 pηn q h 2 h2 2 y pηn q. 2 On note y rns une approximation de yptn q pour n P v0, N w. La méthode d'Euler progressive est donnée par le schéma " rn`1s y “ y rns ` hf ptn , y rns q, @n P v0, N ´ 1w y r0s “ ypt0 q yptn`1 q “ yptn q ` hf ptn , yptn qq ` (1.30) Ce schéma est explicite, car il permet le calcul direct de y rn`1s en fonction de y rns . De la même manière, la méthode d'Euler régressive est donnée par le schéma " rn`1s y “ y rns ` hf ptn`1 , y rn`1s q, @n P v0, N ´ 1w (1.31) y r0s “ ypt0 q Ce schéma est implicite, car y rn`1s est dénit implicitement en fonction de y rns . Il faut donc résoudre à chaque pas de temps une équation non-linéaire en utilisant des méthodes de point xe par exemple. 15 1.6 Exemple 1 INTRODUCTION Exercice 1.3 On veut résoudre numériquement le problème trouver y telle que " pPq pPq suivant : y 1 ptq “ cosptq ` 1, @t P r0, 4πs yp0q “ 0. dont la solution exacte est yptq “ sinptq ` t. On rappelle le schéma d'Euler progressif pour la résolution d'un problème de Cauchy " pSq y rn`1s “ y rns ` hf ptn , y rns q, y r0s donné. Q. 1 Expliquer en détail comment utiliser le schéma d'Euler progressif pour résoudre le problème pPq en précisant entre autres les données, les inconnues, les dimensions des variables, lien entre yrns et la fonction y, ... ‚ Q. 2 (algorithmique) Soit a, b, a ă b deux réels. Ecrire une fonction Disretournant une discrétisation de l'intervalle ra; bs avec N pas (constant) de discrétisation. ‚ Reg Q. 3 (algorithmique) Ecrire une fonction REDEP retournant l'ensemble des couples ptn , yrns q calculés par le schéma d'Euler progressif. ‚ Q. 4 (algorithmique) Ecrire un algorithme complet de résolution de pPq par le schéma d'Euler progressif. ‚ 1.6 Exemple Soit l'E.D.O. suivante " 1 y ptq “ yptq ` t2 y 2 ptq, pour t P r0, 5s, yp0q “ ´1 de solution exacte yptq “ 1{pe´t ´ t2 ` 2t ´ 2q. Les résolutions numériques avec les schémas d'Euler progressif et rétrograde sont représentés en gure 1. 1.7 Stabilité Pour illustrer la notion de stabilié (absolue) d'un schéma numérique, on étudie le problème modèle suivant : Soit λ ă 0, Soit l'E.D.O. suivante " 1 y ptq “ λyptq, pour t P R` , yp0q “ y0 16 1.7 Stabilité 1 INTRODUCTION y’(t)=y(t)+t2 y2(t) avec y(0)=−1 et N=20 0 −0.2 exacte Euler Progressive Euler Régressive −0.4 −0.6 −0.8 −1 −1.2 −1.4 −1.6 −1.8 0 0.5 Figure 1 1.5 2 2.5 t 3 3.5 4 4.5 5 1 résolutions avec Euler progressif et rétrograde où λ ă 0 est donné. La solution exacte est yptq “ y0 eλt . En particulier, on a lim yptq “ 0 tÑ`8 Dénition 1.11 On pose tn “ nh, où le pas de temps h ą 0 est donné et une approximation de yptn q par un schéma donné. On dit alors que le schéma associé à ce problème est absolument stable si y rns lim y rns “ 0. nÑ`8 Ce n'est malheureusement pas toujours le cas comme illustré en gure2 avec 20 le schéma d'Euler progressif et h “ 20 19 « 1.05. Par contre, avec h “ 21 « 0.95, le même schéma est stable (voir gure3). Pour comprendre ce phénomène, on écrit le schéma d'Euler progressif : y rn`1s “ y rns ` hf ptn , y rns q “ y rns ` λhy rns “ p1 ` λhqy rns d'où y rns “ p1 ` λhqn y r0s , @n ě 0. 17 1.7 Stabilité 1 INTRODUCTION y’(t)=−2y(t) avec y(0)=1 et h=1.0526 8 exacte 6 Euler Progressive Euler Regressive 4 2 0 −2 −4 −6 −8 0 Figure 2 4 6 8 10 t 12 14 16 18 20 2 Instabilité Euler progressif - Stabilité Euler rétrograde y’(t)=−2y(t) avec y(0)=1 et h=0.95238 1 exacte Euler Progressive Euler Regressive 0.8 0.6 0.4 0.2 0 −0.2 −0.4 −0.6 −0.8 −1 0 Figure 2 4 6 8 10 t 12 14 16 18 20 3 Stabilité Euler progressif - Stabilité Euler rétrograde 18 1.8 Méthode des diérences nies pour le problème de Cauchy en dimension d 1 INTRODUCTION On remarque alors que si |1 ` λh| ą 1 alors limnÑ`8 |y rns | “ `8, le schéma d'Euler progressif est alors instable. Pour assurer la stabilité, il faut ici imposer une condition sur h : 2 |1 ` λh| ă 1 d'où 0 ă h ă ´ . λ On dit alors que le schéma d'Euler progressif est conditionnellement stable. De la même manière, pour le schéma d'Euler rétrograde on obtient ˙ ˆ 1 rn`1s y rns “ y “ 1 ´ λh et donc ˆ y rns “ 1 1 ´ λh ˙n y r0s , @n ě 0. Dans ce cas limnÑ`8 y rns “ 0 sans condition : on dit que le schéma d'Euler rétrograde est inconditionnellement stable. 1.8 Méthode des diérences nies pour le problème de Cauchy en dimension d On veut résoudre le problème de Cauchy : " 1 y ptq “ f pt, y ptqq, @t P rt0 , t0 ` T s pPCq y pt0 q “ y 0 P Rd . La fonction f étant dénie par f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd ¨ ˛ f 1 pt, z q ˚ ‹ Þ Ñ w “ f pt, z q “ ˝ ... ‚ Ý f d pt, z q pt, z q En notant ¨ ˛ ¨ ˛ y1 ptq f1 pt, y ptqq ˚ ‹ ˚ ‹ .. y ptq “ ˝ ... ‚ et f pt, y ptqq “ ˝ ‚ . yd ptq fd pt, y ptqq le problème de Cauchy peut aussi s'écrire sous la forme $ 1 y1 ptq “ f1 pt, y ptqq, ’ ’ ’ & .. . ’ y 1 ptq “ fd pt, y ptqq, @t P rt0 , t0 ` T s ’ ’ % d avec y pt0 q “ y 0 P Rd . 19 2 MÉTHODE À UN PAS OU À PAS SÉPARÉS Après discrétisation et utilisation de la formule des diérences nies progressive on obtient $ rn`1s rns ’ y1 “ y1 ` hf1 ptn , y rns q ’ ’ ’ & .. . ’ y rn`1s “ y rns ` hf ptn , y rns q ’ d ’ d d ’ % avec y pt0 q “ y P Rd . 0 où y rns ¨ rns ˛ y1 ˚ .. ‹ “ ˝ . ‚ et y rns q « y ptn q. rns yd On obtient alors la méthode d'Euler progressive sous forme vectorielle : " rn`1s y “ y rns ` hff ptn , y rns q, @n P v0, N ´ 1w (1.32) r0s y “ y pt0 q Ce schéma est explicite, car il permet le calcul direct de y rn`1s en fonction de y rns . De la même manière, la méthode d'Euler régressive sous forme vectorielle est donnée par le schéma " rn`1s y “ y rns ` hff ptn`1 , y rn`1s q, @n P v0, N ´ 1w (1.33) y r0s “ y pt0 q Ce schéma est y rns . 2 implicite, car y rn`1s est dénit implicitement en fonction de Méthode à un pas ou à pas séparés Pour simplier on prend h “ hn (pas constant) 2.1 Schéma général Les méthodes à un pas utilisent la formule générale : Φptn , y rns , hq y rn`1s “ y rns ` hΦ (2.1) Pour la méthode d'Euler, la fonction Φ pt, y , hq est f pt, y q. 2.2 Convergence La méthode converge sur l'intervalle rt0 , t0 ` T s si, pour la suite des y rns calculés, l'écart maximum avec la solution exacte diminue quand le pas h diminue : › › › rns n › y y max › ´ pt q› “ 0 lim T Ñ0 nPt0,...,N u h“ N 20 2.3 Stabilité 3 MÉTHODE DE RUNGE-KUTTA 2.3 Stabilité La méthode est stable si une petite perturbation sur y r0s ou Φ n'entraîne qu'une petite perturbation sur la solution approchée, et cela quel que soit le pas h. Souvent , lorsque la méthode n'est pas stable, l'amplication des erreurs est exponentielle et, au bout de quelques calculs, les résultats entraînent des dépassements de capacité. Théorème 2.1 Si Φ pt, y , hq vérie la condition de Lipschitz en y alors la méthode est stable. ‚ 2.4 Consistance Le schéma de calcul (2.1) est consistant avec l'équation diérentielle si › › n`1 › › y pt q ´ y ptn q n n › Φ y lim max › ´ pt , pt q, hq›› “ 0 T h h“ N Ñ0 n Cela signie que le schéma doit être une approximation vraisemblable, bien construite. Théorème 2.2 Le schéma est consistant si Φpt, y, 0q “ f pt, yq. ‚ Théorème 2.3 Si la méthode est stable et consistante, alors elle converge pour n'importe quelle valeur initiale. ‚ 2.5 Ordre La méthode itérative est d'ordre p si pour toute solution : › n`1 › › y pt › q ´ y ptn q n n › max › ´ Φ pt , y pt q, hq›› ď Chp n h 3 Méthode de Runge-Kutta 3.1 Principe Pour simplier, on suppose hn “ h. L'idée fondamentale des méthodes de Runge-Kutta est d'intégrer l'équation (??) sur rtn , tn`1 s et de calculer : ż tn`1 n`1 y pt n q “ y pt q ` f pt, y ptqqdt, tn en utilisant une formule d'intégration numérique à q points intermédiaires tn,i`1 “ tn ` hi pour calculer l'intégrale. 21 3.1 Principe 3 MÉTHODE DE RUNGE-KUTTA La fonction Φ associée à une méthode de Runge-Kutta à q évaluations de f peut s'écrire sous la forme : Φ pt, y , hq “ q ÿ cik ris pt, y , hq i“1 avec ˜ k ris pt, y , hq “ f t ` hai , y ` h q ÿ ¸ bi,j k rjs pt, y , hq , 1 ď i ď q j“1 que l'on peut représenter sous la forme d'un tableau dit cher : a B ct tableau de But(3.1) avec B “ pbi,j qi,jPv1,qw P Mq,q pRq, a “ pai qiPv1,qw P Rq et c “ pci qiPv1,qw P Rq Remarque 3.1 1. Une méthode de Runge-Kutta est d'ordre 0 si ai “ q ÿ bij . j“1 2. Une méthode de Runge-Kutta est d'ordre 1 (et donc consistante) si elle est d'ordre 0 et si q ÿ ci “ 1. i“1 3. Une méthode de Runge-Kutta est d'ordre 2 si elle est d'ordre 1 et si q ÿ ci ai “ 1{2. i“1 4. Une méthode de Runge-Kutta est explicite si la matrice B est triangulaire inférieure à diagonale nulle : @pi, jq P v1, qw, j ě i, bij “ 0. 5. Les méthodes de Runge-Kutta explicites sont stables si f est contractante en y. ‚ 22 3.2 Formules explicites de Runge-Kutta 3 MÉTHODE d'ordre 2 DE RUNGE-KUTTA 3.2 Formules explicites de Runge-Kutta d'ordre 2 0 1 2α 0 0 0 1´α α 1 2α (3.2) h h ,y ` f pt, y qq 2α 2α ‚ Avec α “ 21 , on obtient la méthode de Heun : ¯ h ´ h y rn`1s “ y rns ` f ptn , y rns q ` f tn`1 , y rns ` hff ptn , y rns q . 2 2 ‚ Avec α “ 1, on obtient la méthode d'Euler modiée ou méthode du point milieu : ˆ ˙ h rns h n rns n rn`1s rns y “ y ` hff t ` , y ` f pt , y q . 2 2 Φ pt, y , hq “ p1 ´ αqff pt, y q ` αff pt ` Exercice 3.1 la méthode de Heun est donnée par ¯ h h ´ y rn`1s “ y rns ` f ptn , y rns q ` f tn`1 , y rns ` hff ptn , y rns q . 2 2 Q. 1 Ecrire la fonction algorithmique REDHeunVec permettant de résoudre un problème de Cauchy (vectoriel par la méthode de Heun en utilisant au plus 2N évaluation de f . ‚ Pour des valeurs plus élevées de p, ces méthodes sont plus précises que la méthode d'Euler, et d'autant plus que p augmente. On se limite dans la pratique à p “ 4. Cette méthode est connue sous le nom de Runge-Kutta 4. Remarquons que dans ces méthodes le pas peut être adapté à chaque étape. 3.3 Méthodes de Runge-Kutta d'ordre 4 La méthode explicite la plus utilisée est donnée par le tableau de Buchler suivant 0 0 0 0 0 1{2 1{2 0 0 0 1{2 0 1{2 0 0 (3.3) 1 0 0 1 0 1{6 2{6 2{6 1{6 Ce qui donne le schéma explicite de Runge-Kutta d'ordre 4 : rns k1 rns k2 rns k3 rns k4 y rn`1s “ “ “ “ “ f ptn , y rns q rns f ptn ` h2 , y rns ` h2 k 1 q rns f ptn ` h2 , y rns ` h2 k 2 q rns f ptn ` h, y rns ` hkk 3 q rns rns rns rns y rns ` h6 pkk 1 ` 2kk 2 ` 2kk 3 ` k 4 q. 23 (3.4) 4 MÉTHODES À PAS MULTIPLES Exercice 3.2 la méthode de Runge-Kutta d'ordre 4 est donnée par rns f ptn , y rns q rns f ptn ` h2 , y rns ` h2 k 1 q rns f ptn ` h2 , y rns ` h2 k 2 q rns f ptn ` h, y rns ` hkk 3 q rns rns rns rns y rns ` h6 pkk 1 ` 2kk 2 ` 2kk 3 ` k 4 q. ¯ h ´ h “ y rns ` f ptn , y rns q ` f tn`1 , y rns ` hff ptn , y rns q . 2 2 k1 rns k2 rns k3 rns k4 y rn`1s y rn`1s “ “ “ “ “ Q. 1 Ecrire la fonction algorithmique REDRK4Vec permettant de résoudre un problème de Cauchy (vectoriel par la méthode de Runge-Kutta d'ordre 4.‚ 4 Méthodes à pas multiples 4.1 Exemple : schéma de point milieu Considérons la méthode à deux pas dénie par la récurrence : y rn`1s “ y rn´1s ` 2hff ptn , y rns q. (4.1) Cette méthode est d'ordre 2. De manière évidente, ces méthodes à pas multiples posent des problèmes de démarrage : ici, on ne peut calculer directement y r1s . Les premières valeurs doivent être calculées par un autre schéma. 4.2 Le principe Dans tous les schémas présentés, la valeur de y rn`1s était déterminée à chaque pas de façon explicite en fonction uniquement du point y rns . On peut tenir compte de plusieurs valeurs y ris précédemment calculées et ainsi travailler sur un nombre de pas multiples. Les méthodes à pas multiples s'écrivent sous la forme générale : k ÿ αiy rn`is “ h i“0 k ÿ βif ptn`i , y rn`is q (4.2) i“0 où k est le nombre de pas, αk ‰ 0 et |α0 | ` |β0 | ą 0. Remarque 4.1 Si βk “ 0 le schéma est explicite, sinon il est implicite. Dénition 4.2 (ordre) Soit ‚ y la solution du problème de Cauchy (1.13)1.14 et y rn`ks la valeur obtenue par le schéma (4.2) en prenant y rn`is “ y ptn`i q, @i P v0, k ´ 1w. Alors, l'erreur locale est τ pn ` kq “ y ptn`k q ´ y rn`ks . 24 4.2 Le principe 4 MÉTHODES À PAS MULTIPLES Le schéma (4.2) est d'ordre p si τ pn ` kq “ Ophp`1 q. Théorème 4.3 Un schéma à pas multiple de type (4.2) est d'ordre p si et seulement si k ÿ i“0 k ÿ αi “ 0, αi i q i“0 “ q k ÿ βi iq´1 , @q P v1, pw. i“0 Propriété 4.4 (Stabilité) Soit P le polynôme déni par P pλq “ k ÿ Une méthode à pas multiple est stable, si 1. toutes les racines de P sont de module inférieur ou égal à 1, 2. une racine de module égal à 1 est une racine simple de P. αi λi . i“0 Pour le schéma (4.1), on $ & α0 α1 % α2 ‚ a k “ 2 et $ & β0 “ 0 β1 “ 2 % β2 “ 0 “ ´1 “ 0 “ 1 On obtient donc P pλq “ ´1 ` λ2 “ pλ ` 1qpλ ´ 1q : le schéma (4.1) est stable. Théorème 4.5 (Convergence) On suppose que les k valeurs initiales vérient, › › › i › ›y pt q ´ y ris › ď C0 hp , @i P v0, k ´ 1w. Si le schéma (4.2) est d'ordre p et stable, alors il est convergent d'ordre p : › › › n rns › y y › pt q ´ › ď Chp , @n P v0, N w. Pour obtenir, à partir d'un schéma à k pas, un schéma d'ordre p il faut obligatoirement initialiser les k premières valeurs à l'aide d'un schéma d'ordre p au moins. 25 4.3 Méthodes d'Adams-Bashforth 4 MÉTHODES À PAS MULTIPLES 4.3 Méthodes d'Adams-Bashforth On note f rns “ f ptn , y rns q ¯ h ´ rns (4.3) 3ff ´ f rn´1s . 2 ¯ ´ h “ y rns ` (4.4) 23ff rns ´ 16ff rn´1s ` 5ff rn´2s . 12 ¯ h ´ “ y rns ` 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s . (4.5) 24 y rn`1s “ y rns ` y rn`1s y rn`1s Ces schémas sont explicites et leur ordre correspond au nombre de pas. Exercice 4.1 La méthode de Adam-Bashforth d'ordre 4 explicite est donnée par y rn`1s “ y rns ` h 24 ´ ¯ 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s . avec f rns “ f ptn , y rns q. Q. 1 Ecrire la fonction algorithmique REDAB4Vec permettant de résoudre un problème de Cauchy (vectoriel) par cette méthode. ‚ 4.4 Méthodes d'Adams-Moulton ¯ h ´ rn`1s f ` f rns . (4.6) 2 ¯ h ´ rn`1s “ y rns ` 5ff ` 8ff rns ´ f rn´1s . (4.7) 12 ´ ¯ h “ y rns ` 9ff rn`1s ` 19ff rns ´ 5ff rn´1s ` f rn´2s . (4.8) 24 y rn`1s “ y rns ` y rn`1s y rn`1s Ces schémas sont implicites et leur ordre correspond au nombre de pas plus un. 4.5 Schéma prédicteur-correcteur 4.5.1 Principe Il s'agit là d'une des méthodes les plus employées. Une méthode de prédiction-correction procède en deux temps : on fournit explicitement une valeur approchée de la solution au nième pas (soit y rn`1s ), puis on calcule rn`1s la valeur correspondante de f (soit f ) et enn, on subsitue cette valeur dans un schéma implicite (on obtient alors une valeur corrigée ). 26 4.5 Schéma prédicteur-correcteur 4 MÉTHODES À PAS MULTIPLES pour n variant de 0 à N ´ 1 faire Calculer une valeur approchée y rn`1s par un schéma explicite ; rn`1s Evaluer f “ f ptn`1 , y rn`1s q; y rn`1s q à l'aide d'un schéma implicite en remplaçant l'inconnue par y rn`1s q; npour 4.5.2 Exemple Choisissons la méthode d'Euler explicite pour prédicteur et la méthode implicite des trapèzes comme correcteur. Euler explicite : y rn`1s “ y rns ` hff ptn , y rns q Trapèze implicite : y rn`1s “ y rns ` h2 pff ptn , y rns q ` f ptn`1 , y rn`1s qq On obtient : $ rns f “ f ptn , y rns q; ’ ’ ’ & y rn`1s “ y rns ` hff rns ; rn`1s ’ f “ f ptn`1 , y rn`1s q; ’ ’ % rn`1s y “ y rns ` h2 pyy rn`1s ` f rns q Remarque 4.6 On retrouve ici, pour ce cas simple, une formule de RungeKutta 2. ‚ En pratique, on peut utiliser un schéma d'Adams explicite (??) pour la prédiction et un autre implicite (??) pour la correction. Exercice 4.2 On pose f rns “ f ptn , y rns q. La méthode de Adams-Bashforth d'ordre 4 explicite est donnée par y rn`1s “ y rns ` et la méthode ¯ h ´ 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s 24 de Adams-Moulton d'ordre 4 implicite par y rn`1s “ y rns ` ¯ h ´ rn`1s 9ff ` 19ff rns ´ 5ff rn´1s ` f rn´2s 24 avec f rns “ f ptn , y rns q. Q. 1 Ecrire la fonction algorithmique permettant de résoudre un problème de Cauchy (vectoriel) par une méthode de prédictioncorrection utilisant ces deux schémas. ‚ REDPreCor4Vec Remarque 4.7 1. La stabilité du prédicteur intervient peu. 2. Le choix du pas dans ces méthodes est un problème dicile. 27 ‚ 5 EXERCICES CORRIGÉS 4.5.3 Comparaison avec Runge-Kutta L'intérêt d'une méthode de résolution numérique d'équations diérentielles se mesure principalement suivant deux critères : son coût pour obtenir une précision donnée (c'est à dire le nombre d'évaluations de fonctions par étapes). sa stabilité. La caractéristique des méthodes de Runge-Kutta est que le pas est assez facile à adapter, la mise en oeuvre informatique plus aisée. Mais pour des méthodes du même ordre de consistance, les méthodes de Runge-Kutta exigent plus d'évaluations de fonctions. Quand on sait que la solution de l'équation n'est pas sujette à de brusques variations de la dérivée, on prendra une méthode de type prédicteur-correcteur mais, si le pas doit être adapté plus précisément, on préfèrera une méthode de Runge-Kutta. 5 Exercices corrigés Exercice 1 Q. 1 Soit y P C 2 pra, bsq. 1. Montrer qu'il existe ηPn Pstn , tn`1 r et ηRn Pstn´1 , tn r tels que pDyqPn “ y p1q ptn q ` h p2q n y pηP q 2 p1q n pDyqR n “ y pt q ´ h p2q n y pηR q 2 et 2. En déduire que |y p1q ptn q ´ pDyqPn | ď C1 h, et |y 1 ptn q ´ pDyqR n | ď C2 h, avec C1 “ avec C2 “ 1 max |y p2q ptq| 2 tPrtn ,tn`1 s 1 max |y p2q ptq| 2 tPrtn´1 ,tn s Q. 2 Soit y P C 3 pra, bsq. 1. Montrer qu'il existe η1n Pstn , tn`1 r et η2n Pstn´1 , tn r tels que p1q n pDyqC n “ y pt q ´ h2 p3q n py pη1 q ` y p3q pη2n qq 12 2. En déduire que 2 |y p1q ptn q ´ pDyqC n | ď Eh , 28 avec E “ 1 max |y p3q ptq| 6 tPrtn´1 ,tn`1 s 5 EXERCICES CORRIGÉS Correction Q. 1 1. Soit n P v0, N ´ 1w, on a pDyqPn “ yptn`1 q ´ yptn q . h D'après la formule de Taylor, il existe ηPn P rtn , tn`1 s tel que yptn`1 q “ yptn q ` hy p1q ptn q ` d'où pDyqPn “ h2 p2q n y pηP q 2! h yptn`1 q ´ yptn q “ y p1q ptn q ` y p2q pηPn q. h 2! On a pDyqR n “ (5.1) (5.2) yptn q ´ yptn´1 q . h n P rtn´1 , tn s tels que D'après la formule de Taylor, il existe ηR yptn´1 q “ yptn q ´ hy p1q ptn q ` d'où pDyqR n “ p´hq2 p2q n y pηR q 2! h yptn q ´ yptn´1 q n “ y p1q ptn q ´ y p2q pηR q h 2 2. Soit n P v0, N ´ 1w, comme ηPn P rtn , tn`1 s on a |y p2q pηPn q| ď max tPrtn ,tn`1 s |y p2q ptq| d'où, en utilisant (5.2), |pDyqPn ´ y p1q ptn q| “ h p2q n h |y pηP q| ď max |y p2q ptq|. 2 2 tPrtn ,tn`1 s n P rtn´1 , tn s on a De même, comme ηR n |y p2q pηR q| ď max tPrtn´1 ,tnn s |y p2q ptq| d'où, en utilisant (5.4), p1q n |pDyqR n ´ y pt q| “ h p2q n h |y pηR q| ď max |y p2q ptq|. 2 2 tPrtn´1 ,tn s 29 (5.3) (5.4) ‚ 5 EXERCICES CORRIGÉS Q. 2 1. Soit n P v0, N ´ 1w, on a pDyqC n “ yptn`1 q ´ yptn´1 q . 2h D'après la formule de Taylor, il existe η1n P rtn , tn`1 s et η2n P rtn´1 , tn s tels que yptn`1 q “ yptn q ` hy p1q ptn q ` h3 h2 p2q n y pt q ` y p3q pη1n q 2! 3! yptn´1 q “ yptn q ´ hy p1q ptn q ` h2 p2q n h3 y pt q ´ y p2q pη2n q 2! 3! (5.5) et (5.6) ‚ En soustrayant (5.6) à (5.5), on obtient yptn`1 q ´ yptn´1 q “ 2hy p1q ptn q ` h3 p3q n py pη1 q ` y p3q pη2n qq 6 d'où y p1q ptn q “ yptn`1 q ´ yptn´1 q h2 p3q n ´ py pη1 q ` y p3q pη2n qq. 2h 12 2. Comme η1n P rtn , tn`1 s Ă rtn´1 , tn`1 s, on en déduit que |y p3q pη1n q| ď max tPrtn´1 ,tn`1 s |y p3q ptq|. De même, comme η2n P rtn´1 , tn s Ă rtn´1 , tn`1 s on a |y p3q pη2n q| ď max tPrtn´1 ,tn`1 s |y p3q ptq|. ♦ Exercice 2 On veut résoudre numériquement le problème pPq suivant : trouver y telle que " 1 y ptq “ cosptq ` 1, @t P r0, 4πs pPq yp0q “ 0. dont la solution exacte est yptq “ sinptq ` t. On rappelle le schéma d'Euler progressif pour la résolution d'un problème de Cauchy " rn`1s y “ y rns ` hf ptn , y rns q, pSq y r0s donné. 30 5 EXERCICES CORRIGÉS Q. 1 Expliquer en détail comment utiliser le schéma d'Euler progressif pour résoudre le problème pPq en précisant entre autres les données, les inconnues, les dimensions des variables, lien entre yrns et la fonction y, ... ‚ Q. 2 (algorithmique) Soit a, b, a ă b deux réels. Ecrire une fonction Disretournant une discrétisation de l'intervalle ra; bs avec N pas (constant) de discrétisation. ‚ Reg Q. 3 (algorithmique) Ecrire une fonction REDEP retournant l'ensemble des couples ptn , yrns q calculés par le schéma d'Euler progressif. ‚ Q. 4 (algorithmique) Ecrire un algorithme complet de résolution de pPq par le schéma d'Euler progressif. ‚ Correction Q. 1 On commence par écrire le problème de cauchy associé à pPq : " pPCq y 1 ptq “ f pt, yptqq, @t P rt0 , t0 ` T s ypt0 q “ y0 P R. ‚ avec t0 “ 0, T “ 4π, y0 “ 0 et f : rt0 , t0 ` T s ˆ R ÝÑ R . pt, zq ÞÝÑ cosptq ` 1 Les données du problème de Cauchy sont donc les réels t0 , T, y0 et la fonction f. L'inconnue est la fonction y : rt0 , t0 ` T s ÝÑ R. Pour résoudre numériquement le problème de Cauchy, on utilise le schéma pSq où les données sont celles du problème de Cauchy plus le nombre de discrétisations N P N˚ On peux alors calculer ‚ tn , n P v0, N w qui sont les points de la discrétisation régulière à N intervalles : tn “ t0 ` nh, @n P v0, N w, avec h “ T . N ‚ y rns , n P v0, N w déterminés par le schéma pSq. On a y r0s “ y 0 , puis on calcule y rn`1s “ y rns ` hf ptn , y rns q, pour i “ 0 à N ´ 1 Q. 2 Une discrétisation régulière de l'intervalle ra, bs avec N pas (constant) de discrétisation est donnée par tn “ a ` nh, @n P v0, N w, avec h “ 31 b´a . N 5 EXERCICES CORRIGÉS Algorithme 1 Fonction DisReg retournant une discrétisation régulière de l'intervalle ra, bs Données : Résultat : 1: Fonction t Ð DisReg( a, b, N 3: 5: 6: ) h Ð pb ´ aq{N Pour n Ð 0 à N faire t pn ` 1q Ð a ` n ˚ h 2: 4: a, b : deux réels, a ă b N : un entier non nul (nombre de pas de discrétisation). t : vecteur de RN `1 Fin Pour Fin Fonction Q. 3 L'algorithme de la fonction REDEP est : Algorithme 2 Fonction REDEP : résolution d'un problème de Cauchy scalaire par le schéma d'Euler progressif Données : f : f : rt0 , t0 ` T s ˆ R ÝÑ R fonction d'un problème de Cauchy (scalaire) t0 : réel, temps initial T : réel ą 0 0 y : réel, donnée initiale N : un entier non nul (nombre de pas de discrétisation). Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w Y : vecteur de RN `1 , Y pnq “ y rn´1s , @n P v1, N ` 1w 1: 2: 3: 4: 5: 6: 7: 8: Fonction rtt, Y s Ð REDEP( f, t0 , T, y0 , N ) t Ð DisRegpt0 , t0 ` T, N q h Ð pb ´ aq{N Y p1q Ð y 0 Pour n Ð 1 à N faire Y pn ` 1q Ð Y pnq ` h ˚ f pttpnq, Y pnqq Fin Pour Fin Fonction Q. 4 Il faut tout d'abord écrire la fonction fonction f : 32 fCauchy correspondant à la 5 EXERCICES CORRIGÉS Algorithme 3 associé à pPq Données : Résultat : 1: 2: 3: t z w Fonction fCauchy : fonction f du problème de Cauchy : un réel : un réel : un réel Fonction w Ð fCauchy( t, y ) w Ð cosptq ` 1 Fin Fonction L'algorithme de résolution est : Algorithme 4 résolution numérique du problème pPq 1: 2: 3: 4: t0 Ð 0 T Ð 4π y0 Ð 0 rtt, Y s Ð REDEP( fCauchy, t0 , T, y 0 , 500) ‚ ♦ Exercice 3 On veut résoudre numériquement le problème du pendule pesant sans viscosité : $ p2q g & θ ptq “ L sinpθptqq, @t P r0, 100s θp0q “ π pPq % p1q θ p0q “ 1 avec g “ 9.81 et L “ 1. On rappelle le schéma d'Euler progressif (vectoriel) pour la résolution d'un problème de Cauchy " rn`1s y “ y rns ` hff ptn , y rns q, pSq y r0s donné. Q. 1 Expliquer en détail comment utiliser le schéma d'Euler progressif pour résoudre le problème pPq en précisant entre autres les données, les inconnues, les dimensions des variables, lien entre y rns et la fonction y , ... ‚ On suppose par la suite le fonction DisReg retournant une discrétisation régulière de l'intervalle ra, bs en N intervalles déjà écrite. Q. 2 (algorithmique) Ecrire une fonction semble des couples ptn , y rns q retournant l'encalculés par le schéma d'Euler progressif. ‚ 33 REDEPvec 5 EXERCICES CORRIGÉS Q. 3 (algorithmique) Ecrire un algorithme complet de résolution d par le schéma d'Euler progressif. pPq ‚ Correction Q. 1 On a déjà écrit le problème de cauchy associé à pPq : " 1 y ptq “ f pt, y ptqq, @t P rt0 , t0 ` T s pPCq y pt0 q “ y 0 P R2 . ‚ ˙ ˆ ˙ θptq π 0 et , t “ 0, T “ 100, y 0 “ 1 θp1q ptq ˆ avec y ptq “ f : rt0 , t0 ` T s ˆ R2 ÝÑ ˆ R2 ˙ z2 . pt, z q ÞÝÑ g ´ L sinpzz 1 q Les données du problème de Cauchy sont donc les réels t0 , T, le vecteur y 0 P R2 et la fonction f . L'inconnue est la fonction y : rt0 , t0 ` T s ÝÑ R2 . Pour résoudre numériquement le problème de Cauchy, on utilise le schéma pSq où les données sont celles du problème de Cauchy plus le nombre de discrétisations N P N˚ On peux alors calculer ‚ tn , n P v0, N w qui sont les points de la discrétisation régulière à N intervalles : tn “ t0 ` nh, @n P v0, N w, avec h “ T . N ‚ y rns , n P v0, N w déterminés par le schéma pSq. On a y r0s “ y 0 , puis on calcule y rn`1s “ y rns ` hff ptn , y rns q, pour i “ 0 à N ´ 1 Q. 2 L'algorithme de la fonction REDEPvec 34 est : 5 EXERCICES CORRIGÉS Algorithme 5 Fonction REDEPvec : résolution d'un problème de Cauchy par le schéma d'Euler progressif Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un problème de Cauchy (scalaire) t0 : réel, temps initial T : réel ą 0 y 0 : un vecteur de Rd , donnée initiale N : un entier non nul (nombre de pas de discrétisation). Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w Y : matrice réelle de dimension d ˆ pN ` 1q, Y p:, nq “ y rn´1s , @n P v1, N ` 1w Fonction rtt, Y s Ð REDEPvec( f, t0 , T, y 0 , N ) t Ð DisRegpt0 , t0 ` T, N q h Ð pb ´ aq{N Y p:, 1q Ð y 0 Pour n Ð 1 à N faire Y p:, n ` 1q Ð Y p:, nq ` h ˚ f pttpnq, Y p:, nqq 1: 2: 3: 4: 5: 6: Fin Pour Fin Fonction 7: 8: Q. 3 f : Il faut tout d'abord écrire la fonction Algorithme 6 Fonction fP : fonction f pPq Données : Résultat : 1: 2: 3: 4: 5: 6: t z w : un réel : un vecteur de R2 , : un vecteur de R2 Fonction w Ð fP( t, z ) g Ð 9.81 LÐ1 w p1q Ð z p2q w p2q Ð ´pg{Lq ˚ sinpzz p1qq Fin Fonction L'algorithme de résolution est : 35 fP correspondant à la fonction du problème de Cauchy associé à 5 EXERCICES CORRIGÉS Algorithme 7 résolution numérique du problème pPq 1: 2: 3: 4: 5: 6: t0 Ð 0 T Ð 100 ˆ ˙ π y0 Ð 1 rtt, Y s Ð REDEPvec( Plotptt, Y p1, :qq Plotptt, Y p2, :qq fP, t0 , T, y 0 , 2000) Ź Representation de pt, θptqq Ź Representation de pt, θ1 ptqq ‚ ♦ Exercice 4 la méthode de Heun est donnée par ¯ h h ´ y rn`1s “ y rns ` f ptn , y rns q ` f tn`1 , y rns ` hff ptn , y rns q . 2 2 Q. 1 Ecrire la fonction algorithmique REDHeunVec permettant de résoudre un problème de Cauchy (vectoriel par la méthode de Heun en utilisant au plus 2N évaluation de f . ‚ Correction Q. 1 Le schéma de Heun peut s'écrire sous la forme y rn`1s “ y rns ` avec h n pkk ` k n2 q 2 1 k n1 “ f ptn , y rns q k n2 “ f ptn`1 , y rns ` hkk 1 q L'algorithme de la fonction REDEPvec 36 s'écrit alors : 5 EXERCICES CORRIGÉS Algorithme 8 Fonction REDEPvec : résolution d'un problème de Cauchy par le schéma de Heun Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un problème de Cauchy (scalaire) t0 : réel, temps initial T : réel ą 0 y 0 : un vecteur de Rd , donnée initiale N : un entier non nul (nombre de pas de discrétisation). Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w Y : matrice réelle de dimension d ˆ pN ` 1q, Y p:, nq “ y rn´1s , @n P v1, N ` 1w 1: Fonction rtt, Y s Ð REDHeunVec( f, t0 , T, y 0 , N tÐ ` T, N q h Ð pb ´ aq{N Y p:, 1q Ð y 0 Pour n Ð 1 à N faire k 1 Ð f pttpnq, Y p:, nqq k 2 Ð f pttpn ` 1q, Y p:, nq ` hkk 1 q Y p:, n ` 1q Ð Y p:, nq ` ph{2q ˚ pkk 1 ` k 2 q 2: 3: 4: 5: 6: 7: 8: 9: 10: ) DisRegpt0 , t0 Fin Pour Fin Fonction ♦ Exercice 5 la méthode de Runge-Kutta d'ordre 4 est donnée par rns k1 rns k2 rns k3 rns k4 y rn`1s “ “ “ “ “ f ptn , y rns q rns f ptn ` h2 , y rns ` h2 k 1 q rns f ptn ` h2 , y rns ` h2 k 2 q rns f ptn ` h, y rns ` hkk 3 q rns rns rns rns y rns ` h6 pkk 1 ` 2kk 2 ` 2kk 3 ` k 4 q. h y rn`1s “ y rns ` f ptn , y rns q ` 2 ¯ h ´ n`1 rns n rns f t y f y , ` hf pt , q . 2 Q. 1 Ecrire la fonction algorithmique REDRK4Vec permettant de résoudre un problème de Cauchy (vectoriel par la méthode de Runge-Kutta d'ordre 4.‚ Correction 37 5 EXERCICES CORRIGÉS Q. 1 L'algorithme de la fonction REDRK4Vec s'écrit alors : Algorithme 9 Fonction REDRK4Vec : résolution d'un problème de Cau- chy par le schéma de RK4 Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un problème de Cauchy (scalaire) 0 t : réel, temps initial T : réel ą 0 y 0 : un vecteur de Rd , donnée initiale N : un entier non nul (nombre de pas de discrétisation). Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w Y : matrice réelle de dimension d ˆ pN ` 1q, Y p:, nq “ y rn´1s , @n P v1, N ` 1w 1: Fonction rtt, Y s Ð REDRK4Vec( f, t0 , T, y 0 , N ) t Ð DisRegpt0 , t0 ` T, N q h Ð pb ´ aq{N Y p:, 1q Ð y 0 Pour n Ð 1 à N faire k 1 Ð f pttpnq, Y p:, nqq k 2 Ð f pttpnq ` h{2, Y p:, nq ` ph{2qkk 1 q k 3 Ð f pttpnq ` h{2, Y p:, nq ` ph{2qkk 2 q k 4 Ð f pttpnq ` h, Y p:, nq ` hkk 3 q Y p:, n ` 1q Ð Y p:, nq ` ph{6q ˚ pkk 1 ` 2kk 2 ` 2kk 3 ` k 4 q 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: Fin Pour Fin Fonction ♦ Exercice 6 La méthode de Adam-Bashforth d'ordre 4 explicite est donnée par y rn`1s “ y rns ` h 24 ´ ¯ 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s . avec f rns “ f ptn , y rns q. Q. 1 Ecrire la fonction algorithmique REDAB4Vec permettant de résoudre un problème de Cauchy (vectoriel) par cette méthode. Correction Q. 1 On utilise ‚ le schéma de Runge-Kutta d'ordre 4 pour initialiser les 4 premières valeurs. 38 5 EXERCICES CORRIGÉS L'algorithme de la fonction REDAB4Vec s'écrit alors : Algorithme 10 Fonction REDAB4Vec : résolution d'un problème de Cau- chy par le schéma explicite d'Adams-Bashforth d'ordre 4 Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un problème de Cauchy (scalaire) t0 : réel, temps initial T : réel ą 0 y 0 : un vecteur de Rd , donnée initiale N : un entier non nul (nombre de pas de discrétisation). Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w Y : matrice réelle de dimension d ˆ pN ` 1q, Y p:, nq “ y rn´1s , @n P v1, N ` 1w 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: Fonction rtt, Y s Ð REDAB4Vec( f, t0 , T, y 0 , N ) DisRegpt0 , t0 tÐ ` T, N q h Ð pb ´ aq{N rttini , Y ini s Ð REDRK4Vecpf, t0 , t0 ` 3 ˚ h, y 0 , 3q Pour n Ð 1 à 4 faire Y p:, nq Ð Y ini p:, nq Fin Pour k 1 Ð f pttp3q, Y p:, 3qq k 2 Ð f pttp2q, Y p:, 2qq k 3 Ð f pttp1q, Y p:, 1qq Pour n Ð 4 à N faire k 0 Ð f pttpnq, Y p:, nqq Y p:, n ` 1q Ð Y p:, nq ` ph{24q ˚ p55 ˚ k 0 ´ 59 ˚ k 1 ` 37 ˚ k 2 ´ 9 ˚ k 3 q k3 Ð k2 k2 Ð k1 k1 Ð k0 Fin Pour Fin Fonction ♦ Exercice 7 On pose f rns “ f ptn , y rns q. La méthode de Adams-Bashforth d'ordre 4 explicite est donnée par ¯ h ´ y rn`1s “ y rns ` 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s 24 et la méthode de Adams-Moulton d'ordre 4 implicite par ¯ h ´ rn`1s y rn`1s “ y rns ` 9ff ` 19ff rns ´ 5ff rn´1s ` f rn´2s 24 39 5 EXERCICES CORRIGÉS avec f rns “ f ptn , y rns q. Q. 1 Ecrire la fonction algorithmique REDPreCor4Vec permettant de résoudre un problème de Cauchy (vectoriel) par une méthode de prédictioncorrection utilisant ces deux schémas. ‚ Correction Q. 1 On utilise le schéma de Runge-Kutta d'ordre 4 pour initialiser les 4 premières valeurs. Ensuite on utilise comme prédicteur le schéma explicte et comme correcteur le schéma implicite. Le principe est donc Calcul à l'aide du prédicteur : ŷ rn`1s “ y rns ` ¯ h ´ 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s 24 Calcul à l'aide du correcteur : rn`1s fˆ “ f ptn`1 , ŷ rn`1s q ´ rn`1s ¯ rns rn´1s rn´2s h f f f y rn`1s “ y rns ` 24 9fˆ ` 19f ´ 5f ` L'algorithme de la fonction REDPreCor4Vec 40 s'écrit alors : 5 EXERCICES CORRIGÉS Algorithme 11 Fonction REDPreCor4Vec : résolution d'un problème de Cauchy par prédiction-correction (Adams-Bashforth/Adams-Moulton) d'ordre 4 Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un problème de Cauchy (scalaire) t0 : réel, temps initial T : réel ą 0 0 y : un vecteur de Rd , donnée initiale N : un entier non nul (nombre de pas de discrétisation). Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w Y : matrice réelle de dimension d ˆ pN ` 1q, Y p:, nq “ y rn´1s , @n P v1, N ` 1w 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: Fonction rtt, Y s Ð REDPreCor4Vec( f, t0 , T, y 0 , N ) t Ð DisRegpt0 , t0 ` T, N q h Ð pb ´ aq{N rttini , Y ini s Ð REDRK4Vecpf, t0 , t0 ` 3 ˚ h, y 0 , 3q Pour n Ð 1 à 4 faire Y p:, nq Ð Y ini p:, nq Fin Pour k 1 Ð f pttp3q, Y p:, 3qq k 2 Ð f pttp2q, Y p:, 2qq k 3 Ð f pttp1q, Y p:, 1qq Pour n Ð 4 à N faire k 0 Ð f pttpnq, Y p:, nqq Ŷ Ð Y p:, nq ` ph{24q ˚ p55 ˚ k 0 ´ 59 ˚ k 1 ` 37 ˚ k 2 ´ 9 ˚ k 3 q F̂ Ð f pttpn ` 1q, Ŷ q Y p:, n ` 1q Ð Y p:, nq ` ph{24q ˚ p9 ˚ F̂ ` 19 ˚ k 0 ´ 5 ˚ k 1 ` k 2 q k3 Ð k2 k2 Ð k1 k1 Ð k0 Fin Pour Fin Fonction ♦ Liste des bclogo Dénition 1.3 - problème de Cauchy, page 10 Théorème 1.5 - Cauchy-Lipschitz, page 12 Dénition 1.7, page 12 Proposition 1.8 - Développement de Taylor, page Dénition 1.9, page 13 41 13