Equa Diff x4bv

download Equa Diff x4bv

of 18

Transcript of Equa Diff x4bv

  • 7/23/2019 Equa Diff x4bv

    1/18

    UPMC Master P&A/SDUEE

    UE MP025 = 4P056

    Mthodes Numriques et Calcul Scientifique

    Rsolution numrique desquations diffrentielles ordinaires (EDO)

    20142015 [email protected]

    EDO 1 Introduction

    1 Introduction

    1.1 Problme diffrentiel

    quation diffrentielle scalaire dordre n

    dnydtn

    =f

    t, y, dydt

    , . . . , dn1y

    dtn1

    famille de solutions n paramtres

    ensemble de n conditions imposes

    choix dune solution dans la famille

    MNCS 1 2014-2015

    EDO 1 Introduction 1.2 Deux types de problmes diffrentiels rsoudre

    1.2 Deux types de problmes diffrentiels rsoudre

    Conditions initiales donnes pour une seule valeurt0det, par exemple

    y(t0) = y0, y(t0) = y

    0, . . . , y(n1)(t0) = y

    (n1)0

    Problme deconditions initialesou deCauchy

    Conditions donnes pour des valeurs distinctes de la variable indpendante t,

    par exemple :

    y(t0) = y0, y(t1) = y1, . .. , y(tn1) = yn1

    Problme deconditions aux limites(non trait, sauf problme de tir).

    MNCS 2 2014-2015

    EDO 1 Introduction 1.3 quations diffrentielles scalaires du 1er ordre

    1.3 quations diffrentielles scalaires du 1er ordre

    tudier dabord les quations diffrentielles scalairesdu premier ordre.

    famille de solutions unparamtre (y0)

    dydt =f(t, y(t)) avec y(t0) = y0

    Les EDO dordre suprieur se ramnent des systmes diffrentiels coupls du

    premier ordre (EDO vectorielles du premier ordre).

    MNCS 3 2014-2015

  • 7/23/2019 Equa Diff x4bv

    2/18

    EDO 1 Introduction 1.4 Conditions suffisantes

    1.4 Conditions suffisantes

    Lacondition de Lipschitz

    |f(t, y2) f(t, y1)| K|y2 y1|

    assure lunicit de la solution.

    fy (t, y) Kdans un domaine convexe condition de Lipschitz vrifie.

    Les erreurs darrondi amnent toujours rsoudre un problme perturb.

    Problme bien possi : le problme faiblement perturb (second membre ou

    condition initiale) possde une solution proche de celle du problme original.

    La condition de Lipschitz assure que le problme est bien pos.

    MNCS 4 2014-2015

    EDO 1 Introduction 1.5 Mthodes de rsolution numrique et notations

    1.5 Mthodes de rsolution numrique et notations

    Discrtisationpar dcoupage de lintervalle de longueur Lselon un pas constanth

    chantillonnage de la solution aux instants ti = t0+ih pour1 i n.

    Solution numrique :ui= approximation dey(ti)

    partir de la condition initialeu0 = y(t0)impose,

    faire une boucle sur les abscissestipour calculer lapproximationui+1ti+1

    approximer ainsi de proche en proche la solution sur lintervalleL.

    accumulation des erreurs dans la boucle

    chaque pas de la boucle, pour calculer ui+1, on peut sappuyer :

    surla dernire valeur calculeui: mthodes un pas

    surplusieurs valeursuik(k 0)antrieurement calcules :

    mthodes plusieurs pas (initialisation ncessaire par mthode un pas)

    MNCS 5 2014-2015

    EDO 1 Introduction 1.5 Mthodes de rsolution numrique et notations

    famille de solutions exactesdpendant dey0

    passant par(ti, ui)la solution

    ti+1 ttit0

    exacte

    approx.

    erreurcumule

    y

    y0

    ui

    ui+1

    yi+1

    h

    Mthode pas

    constant

    Dcoupage de

    lintervalle de

    longueurLselon

    un pas fixeh= L/n.

    ui= approximat.

    dey(ti)

    Un pas :

    ui ui+1

    MNCS 6 2014-2015

    EDO 2 Mthodes un pas

    2 Mthodes un pasConstituent lalgorithme de base qui permet destimer la valeur de la solution

    linstantti+1 = ti+h, connaissant seulementui, celle ti.

    La valeur estimer peut tre approche par un dveloppement limit de Taylor :

    y(ti+h) = y(ti) +hdy

    dt(ti) +

    h2

    2

    d2y

    dt2(ti) + (1)

    Ordrende la mthode=plus grande puissance dehprise en compte dans

    lapproximation. Somme des termes ngligs =erreur de troncature locale hn+1

    augmente si le pashaugmente et si lordre de la mthode diminue

    Prcision finie des oprations sur les rels erreur darrondi

    augmente lorsque les calculs se compliquent, en particulier si le pashdiminue.

    Indpendamment du cot (en temps de calcul) des oprations, et des cas o la

    fonction est tabule,ne pas croire que diminuer le pas amliore toujours la

    qualit du rsultat : uncompromisdoit tre trouv entre ces deux types derreurs.

    MNCS 7 2014-2015

  • 7/23/2019 Equa Diff x4bv

    3/18

    EDO 2 Mthodes un pas 2.1 Mthodes du premier ordre

    2.1 Mthodes du premier ordre

    2.1.1 Mthode dEuler progressive (explicite)

    Mthode du premier ordre dintrt pdagogique ( viter en pratique).

    ui+1= ui+hf(ti, ui) (2)

    Exemple :

    dy

    dt = y solution analytique y = y0e

    t yn = y0(e

    h)n

    ui+1= ui hui solution approche un = y0(1 h)n

    Si > 0, la solution exacte vrifiey() = 0,

    Mais pour lapproximation,un 0 |1 h| 1/, alors(1 h)< 0: alternance de signe de la solutionun.

    MNCS 8 2014-2015

    EDO 2 Mthodes un pas 2.1 Mthodes du premier ordre

    ti ti+1

    ui

    ui+1

    y

    t

    k1

    k1h

    h

    Mthode dEuler

    Mthodeexplicitequi ne

    ncessite quune

    seule valuationde la fonction second

    membrefpar pas :

    k1= f(ti, ui)

    facilement instable

    MNCS 9 2014-2015

    EDO 2 Mthodes un pas 2.1 Mthodes du premier ordre

    2.1.2 Mthode dEuler rtrograde (implicite)

    ui+1= ui+hf(ti+1,ui+1) (3)

    Exemple :

    dy

    dt = y solution analytique y= y0e

    t

    ui+1 = ui hui+1 solution approche ui+1=

    ui

    1 +h

    un = y0

    (1 +h)n

    Si > 0, y() = 0, et aussiun 0 > 0,h > 0solution stable

    Mthodeimpliciteplus difficile mettre en uvre, sauf lorsque la forme de f(t, u)

    permet le calcul analytique deui+1 partir de lquation (3).

    Avantage : meilleurestabilitque la mthode progressive explicite.

    MNCS 10 2014-2015

    EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre

    2.2 Mthodes du deuxime ordre

    Premire ide : augmenter le nombre de termes du dveloppement de Taylor :

    rarement utilis, car ncessite lvaluation des drives partielles def.

    dy

    dt =f(t, y(t))

    d2y

    dt2 =

    f

    t +

    f

    y

    dy

    dt =

    f

    t +f

    f

    y (4)

    Prfrer utiliserplusieurs valuations du second membrefen des points adapts.

    Centrer lvaluation de la drive au point milieu tm = (ti+ti+1)/2.

    y(ti+h) = y(tm) +h

    2

    dy

    dt(tm)+

    1

    2

    h2

    4

    d2y

    dt2(tm) +O(h

    3) (5a)

    y(ti) = y(tm)h

    2

    dy

    dt(tm)+

    1

    2

    h2

    4

    d2y

    dt2(tm) +O(h

    3) (5b)

    Par diffrence, (approximation locale parabolique, voir aussi drive centre 2 termes)

    y(ti+h) y(ti) = hdy

    dt(tm)+O(h

    3)

    MNCS 11 2014-2015

  • 7/23/2019 Equa Diff x4bv

    4/18

    EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre

    2.2.1 Mthode du point milieu

    Ncessite lvaluation du second membre fen 2 points :

    entiet au milieutm = ti+h/2dun pas (hors grille).

    ui+1 = ui+hf

    ti+

    h

    2, ui+

    h

    2f(ti, ui)

    k1 = f(ti, ui) (6a)

    k2 = f(ti+h

    2, ui+k1

    h

    2) (6b)

    ui+1 = ui+hk2 (6c)

    MNCS 12 2014-2015

    EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre

    ti ti+1

    y

    k1

    k2

    ti+h/2

    k2h

    k1h/2

    t

    k2

    ui+1

    ui

    Mthode du

    point milieu

    Mthode explicite

    qui ncessite deuxvaluations du second

    membre par pas dont

    une hors grille.

    MNCS 13 2014-2015

    EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre

    2.2.2 Mthode dEuler modifie

    En appliquant 5a et 5b la drive et en faisant la somme, on peut remplacer la

    drive au milieu par la moyenne des drives aux extrmits de lintervalle :

    dy

    dt(ti) +

    dy

    dt(ti+1) = 2

    dy

    dt(tm) +O(h

    2)

    Do une approximation nutilisant pas la valeur de fau point milieutm:

    ui+1= ui+ h2

    [f(ti, ui) +f(ti+1,ui+1)]

    De nouveau, mthode a prioriimplicite, plus stable, mais plus lourde.

    Contournement du problme en utilisant lapproximation dEuler explicite (voir 2)

    pour valuerui+1intervenant dansf.

    ui+1 = ui+h

    2[f(ti, ui) +f(ti+1, ui+hf(ti, ui))]

    MNCS 14 2014-2015

    EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre

    Bilan : mthode de type prdicteur-correcteurquivalent

    un demi-pas avec la pente initialek1

    et un demi-pas avec la pentek2du point prdit par Euler progressif.

    k1 = f(ti, ui) (7a)

    k2 = f(ti+1, ui+k1h) (7b)

    ui+1 = ui+h

    2[k1+k2] (7c)

    NB : mthode parfois appele mthode de Heun

    (toutes deux sont des Runge Kutta du deuxime ordre)

    MNCS 15 2014-2015

  • 7/23/2019 Equa Diff x4bv

    5/18

    EDO 2 Mthodes un pas 2.2 Mthodes du deuxime ordre

    ti ti+1

    ui

    y

    k1

    ti+h/2

    ui+1

    k1h/2

    k2h/2

    t

    corrig

    prdit

    k2 k2

    Mthode dEuler

    modifie

    Mthode explicite qui

    ncessite deux va-luations de la fonction

    par pas en des points

    de la grille.

    MNCS 16 2014-2015

    EDO 2 Mthodes un pas 2.3 Mthodes de Runge Kutta

    2.2.3 Mthode de Heun

    k1= f(ti, ui) (8a)

    k2= f(ti+2

    3h, ui+

    2

    3k1h) (8b)

    ui+1= ui+h

    4[k1+ 3k2] (8c)

    2.3 Mthodes de Runge Kutta

    Plus gnralement, avecrvaluations def, on peut atteindre une mthode dordre

    rsir 4. Pour atteindre lordre 5, six valuations sont ncessaires.

    = la mthode de Runge Kutta dordre 4 est trs utilise.

    Les mthodes de Runge-Kutta sont stables.

    MNCS 17 2014-2015

    EDO 2 Mthodes un pas 2.3 Mthodes de Runge Kutta

    2.3.1 Mthode de Runge Kutta dordre 3

    k1 = f(ti, ui) (9a)

    k2 = f(ti+h

    2 , ui+k1

    h

    2 ) (9b)

    k3 = f(ti+h, ui+ (2k2 k1)h) (9c)

    ui+1 = ui+ (k1+ 4k2+k3)h

    6 (9d)

    MNCS 18 2014-2015

    EDO 2 Mthodes un pas 2.3 Mthodes de Runge Kutta

    2.3.2 Mthode de Runge Kutta dordre 4

    k1 = f(ti, ui) (10a)

    k2 = f(ti+h

    2

    , ui+k1h

    2

    ) (10b)

    k3 = f(ti+h

    2, ui+k2

    h

    2) (10c)

    k4 = f(ti+h, ui+k3h) (10d)

    ui+1 = ui+ (k1+ 2k2+ 2k3+k4)h

    6 (10e)

    MNCS 19 2014-2015

  • 7/23/2019 Equa Diff x4bv

    6/18

    EDO 2 Mthodes un pas 2.4 Erreur absolue en fonction du pas et de lordre

    2.4 Erreur absolue en fonction du pas et de lordre

    nombre de pas=L/h = erreur globale erreur locale/h

    TABLE1 Erreur de troncature seule

    Mthode ordre erreur locale erreur globale

    Euler explicite 1 h2 h

    Point milieu Euler modifie 2 h3 h2

    Runge-Kutta 3 3 h4 h3

    Runge-Kutta 4 4 h5 h4

    Erreur darrondilocale indpendante deh erreur darrondi globale 1/h

    MNCS 20 2014-2015

    EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique

    2.5 Exemple de lquation logistiquedy

    dt=y(1 y/2)

    exact estim0 2 4 6 8 10 12 14 16 18 20

    0.020

    0.015

    0.010

    0.005

    0.000

    0.005

    fichier euler.dat ordre 1 erreur max 0.183E01 position de lerr max 0.286E+01

    temps

    Erreur=ExactEstim

    FIGURE1 Erreur dans lintgration de lquation logistique avec la mthode dEuler

    pourh= 0, 02. Lallure rgulire montre que lerreur de troncaturedomine.

    MNCS 21 2014-2015

    EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique

    exact estim0 2 4 6 8 10 12 14 16 18 20

    1e06

    8e07

    6e07

    4e07

    2e07

    0e+00

    2e07

    4e07

    6e07

    8e07

    1e06

    fichier rk4.dat ordre 4 erreur max 0.954E06 position de lerr max 0.190E+01

    temps

    E

    rreur=ExactEstim

    FIGURE 2 Erreur dans lintgration de lquation logistique avec Runge Kutta

    dordre 4 pourh= 0, 02. Lallure bruite est caractristique de lerreur darrondi.

    MNCS 22 2014-2015

    EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique

    2.5.1 Exemple derreur totale maximale en simple prcision

    107

    106

    105

    104

    103

    102

    101

    100

    104

    103

    102

    101

    100

    erreurmaxim

    ale

    pas

    Valeur absolue de lerreur absolue pour y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision

    pente 1

    pente +1

    pente +2

    pente +3

    pente +4

    euler spmilieu sp

    rk3 sprk4 sp

    MNCS 23 2014-2015

  • 7/23/2019 Equa Diff x4bv

    7/18

    EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique

    2.5.2 Exemple derreur totale maximale en double prcision

    1016

    1014

    1012

    1010

    108

    106

    104

    102

    100

    104

    103

    102

    101

    100

    erreurmaxima

    le

    pas

    Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 double prcision

    pente +1

    pente +2

    pente +3

    pente +4

    euler dpmilieu dp

    rk3 dprk4 dp

    MNCS 24 2014-2015

    EDO 2 Mthodes un pas 2.5 Exemple de lquation logistique

    2.5.3 Comparaison des erreurs maximales simple/double prcision

    1016

    1014

    1012

    1010

    108

    106

    104

    102

    100

    104

    103

    102

    101

    100

    erreurmaxima

    le

    pas

    Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple/double prcision

    euler spmilieu sp

    rk3 sprk4 sp

    euler dpmilieu dp

    rk3 dprk4 dp

    MNCS 25 2014-2015

    EDO 3 Mthodes plusieurs pas

    3 Mthodes plusieurs pas

    3.1 Mthodes dAdams

    Principe :les erreurs augmentent avec lintgration, les points les plus proches de

    la valeur initiale ont tendance tre plus fiables. Pour calculer ui+1, on peut

    sappuyer non seulement sur la dernire valeur estimeui, mais sur lesmprcdentes.

    si le calcul invoque la pente au point recherchf(ti+1, ui+1), la mthode estimplicite (voir 2.1.2) : ADAMS-M OULTON

    sinon elle est explicite : ADAMS-BASHFORTH .

    Dans les deux cas, il fautinitialiserle calcul par une mthode un pas sur les m

    premiers points.

    Le calculrutilise les valuations antrieures du second membre .

    = stocker ces valeurs pour conomiser les calculs

    MNCS 26 2014-2015

    EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams

    3.1.1 Adams Bashforth (explicite : pas de terme enf(ti+1, ui+1))

    ui+1 = ui+hmj=1

    jf(tij+1, uij+1) avec mj=1

    j = 1

    mthode dordrem(nombre dvaluations du second membre)

    m 1 2 3 4

    1 1 1

    2 1/2 3 1

    3 1/12 23 16 5

    4 1/24 55 59 37 9

    MNCS 27 2014-2015

  • 7/23/2019 Equa Diff x4bv

    8/18

    EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams

    Exemple : Adams-Bashforth deux pas

    ui+1 = ui+h

    2[3f(ti, ui) f(ti1, ui1)]

    ti1 ti+1

    k1

    tti

    k0

    k1h/2

    y

    ui1

    ui

    h/23k0h/2

    3h/2

    ui+1

    Adams-Bashforth

    deux pas

    Mthode explicite

    dordre deux mais

    seulement une va-

    luation nouvelle du

    second membre

    chaque pas

    mmoriser les

    seconds membres.

    MNCS 28 2014-2015

    EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams

    3.1.2 Adams Moulton (implicite : terme enf(ti+1, ui+1))

    ui+1 = ui+hmj=0

    jf(tij+1, uij+1) avec mj=0

    j = 1

    mthode dordrem+ 1(nombre dvaluations du second membre)

    m 0 1 2 3

    0 1 1

    1 1/2 1 1

    2 1/12 5 8 1

    3 1/24 9 19 5 1

    viter les difficults de limplicite en utilisant un prdicteur explicite deui+1,

    inject ensuite dans lexpression dAdams-Moulton vue comme correcteur .

    MNCS 29 2014-2015

    EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams

    3.1.3 Comparaison mthodes un pas et Adams explicite

    107

    106

    105

    104

    103

    102

    101

    100

    104

    103

    102

    101

    100

    erreurmaxim

    ale

    pas

    Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision

    euler spmilieu sp

    rk3 sprk4 sp

    adamsbashforth2 spadamsbashforth3 spadamsbashforth4 sp

    MNCS 30 2014-2015

    EDO 3 Mthodes plusieurs pas 3.1 Mthodes dAdams

    3.1.4 Mthodes de prdicteur correcteur

    Principe :bnficier des qualits dune mthode implicite mais lappliquer une

    estimation obtenue par une mthode explicite du mme ordre (voir Euler modifie).

    prdictiondeui+1par une mthodeexplicite

    correctiondeui+1par une formuleimpliciteof(ti+1, y(ti+1))a t

    approxim par la prdictionf(ti+1, ui+1).

    Exemple : mthode dEuler modifie

    Une itration de la partie correction est possible.

    Lordre est celui du correcteur, mais la stabilit dpend plus du prdicteur.

    Ces mthodes permettent destimer lerreur de troncature partir de la diffrence

    entre prdicteur et correcteur= adaptation du pas

    MNCS 31 2014-2015

  • 7/23/2019 Equa Diff x4bv

    9/18

    EDO 3 Mthodes plusieurs pas 3.2 Mthodes adaptatives

    3.2 Mthodes adaptatives

    Principe :ajuster le pas localementpour obtenir une prcision impose.

    Estimation de lerreur de troncature locale laide de lcart entre deux estimations

    luneui, dordren, lautreui , dordren+ 1.

    i= y(ti+1) ui+1

    h hn (11a)

    i = y(ti+1) ui+1

    h hn+1 (11b)

    i ui+1 ui+1

    h hn (11c)

    Modification du pas dun facteurq

    i(hq) qni(h)

    qn

    h(ui+1 ui+1) (12)

    MNCS 32 2014-2015

    EDO 3 Mthodes plusieurs pas 3.2 Mthodes adaptatives

    Contrainte deprcision relative

    i(hq) (13)

    do le facteur appliquer au pas

    q

    h

    ui+1 ui+1

    1/n(14)

    NB. :cette mthode suppose que le pas permet de ngliger lerreur darrondi.

    3.2.1 Exemple : mthode de Runge Kutta Fehlberg

    Une mthode de Runge Kutta dordre 5(6 valuations def)

    permet de contrler la prcision obtenue par un Runge Kutta dordre 4

    utilisant les valuations defaux mmes pointsque celle dordre 5

    (les poids ne sont pas ceux de la mthode dordre 4 classique).

    MNCS 33 2014-2015

    EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg

    3.3 Mthodes dextrapolation de Gragg

    3.3.1 Principe de lextrapolation

    h/p2

    k= 2h/p3

    k= 3

    pas fin :h/pkm

    pkm

    pas k= km

    t0 t0+Lh

    k= 1

    Subdivisions successives

    Dcoupage de lintervalle depas

    grossierhen sous-intervalles

    depas finhk = h/pkde plus

    en plus petits.

    Dveloppement polynomial de

    lerreur de troncature en fonction

    du pas pour extrapoler au pas nul

    (hk 0).

    MNCS 34 2014-2015

    EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg

    Exemple de la mthode dEuler : lerreur de troncatureglobale sur un pas

    grossierhest du premier ordre en fonction du pas finh/pk .

    Par exemple, pour les subdivisionsp1etp2:

    y(t+h) = v1+a1

    h

    p1

    +a2

    h

    p1

    2+ (15)

    y(t+h) = v2+a1

    h

    p2

    +a2

    h

    p2

    2+ (16)

    Combinaison linairede ces deux estimateursv1etv2 liminer le terme dordre 1de lerreur (a1 inconnu)

    nouvel estimateurw2,2dordre 2tel que :

    y(t+h) = w2,2+b2

    h

    p2

    2+

    w2,2= (p2/p1) w2,1 w1,1

    p2/p1 1 =w2,1+

    w2,1 w1,1p2/p1 1

    (17)

    MNCS 35 2014-2015

  • 7/23/2019 Equa Diff x4bv

    10/18

    EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg

    Autre exemple avec la mthode du point milieu :

    lerreur de troncature globale surhest dordre 2 en fonction du pas h/pk;

    pas de termes dordre impair da ns le dveloppement de lerreur.

    Combinaison linairede deux estimateurs avec des pas fins diffrents :

    limination du terme dordre 2 de lerreur de troncature

    erreur de troncature dordre 4

    Itrerle processus avec une suite de subdivisions et de combinaisons linairesdestimateurs pour augmenter lordre de lerreur de troncature.

    Maisamlioration limite par lerreur darrondi...

    Lcartwk+1,k+1 wk,k donne une estimation de lerreur de troncature si on

    retient la solutionwk,k . En ajustant, pour chaque intervalle de largeurh, le nombre

    kmde subdivisions pour respecter une erreur absolue impose, on obtient une

    version adaptative de la mthode de Gragg.

    MNCS 36 2014-2015

    EDO 3 Mthodes plusieurs pas 3.3 Mthodes dextrapolation de Gragg

    3.3.2 Comparaison mthodes un pas et extrapolation de Gragg

    107

    106

    105

    104

    103

    102

    101

    100

    104

    103

    102

    101

    100

    erreurmaximale

    pas

    Erreur absolue y= y(1y/2) sur [0,20] y(0)=0.1 simple prcision

    euler spmilieu sp

    rk3 sprk4 sp

    milmod spgragg24spgragg28sp

    MNCS 37 2014-2015

    EDO 4 Les EDO du premier ordre en pratique

    4 Les EDO du premier ordre en pratique

    4.1 chelles de temps et problmes raides

    Ne pas oublier que chaque problme diffrentiel possde une ou plusieurschelles

    de temps propres(priodes ou pseudo-priodes, constantes de temps).

    La solution ne peut tre reprsente correctement quavec un pas assez infrieur

    au plus petit de ces temps propres.

    Cette analyse impose donc une valeur maximale pour le pas.

    Certains problmes diffrentiels qualifis desraidescomportent des chelles de

    temps trs diffrentes : leur intgration numrique savre dlicate et coteuse (pas

    faible pour respecter le temps court, mais nombreux pour accder au temps long).

    Il existe des mthodes spcifiques des EDO raides qui ne sont pas prsentes ici.

    MNCS 38 2014-2015

    EDO 4 Les EDO du premier ordre en pratique 4.2 Validation des rsultats

    4.2 Validation des rsultats

    Validation via une solution analytique dun problme simplifi

    Lorsquune solution analytique est disponible (par exemple pour certaines valeurs

    de paramtres qui permettent de simplifier lEDO), sa comparaison avec la solution

    numrique permet de tester la mthode. Le calcul de lerreur dans le domaine o la

    troncature domine permet dextrapoler leffet dun changement de pas connaissant

    lordre de la mthode.

    Validation sans solution analytique

    Dans le cas o aucune solution analytique de rfrence nest disponible, la

    validation sappuie sur les mmes outils que les mthodes adaptatives :

    diminution du pas (division par 2)

    augmentation de lordre de la mthode

    extrapolation de Gragg

    calcul dinvariants (nergie p ar exemple)

    MNCS 39 2014-2015

  • 7/23/2019 Equa Diff x4bv

    11/18

    EDO 4 Les EDO du premier ordre en pratique4.3 Structure des programmes de rsolution dEDO du 1er ordre

    4.3 Structure des programmes de rsolution dEDO du 1er ordre

    1. un algorithme de base (appliquant une mthode dordre 1, 2, 3 ou 4 la

    fonction second membrefpasse en argument) permettant davancer dun

    pasdans lintgration de lquation diffrentielle

    2. ventuellement une procdure qui choisit le pas le plus grand possible

    compatible avec la prcision attendue et contrle la progression de lintgration

    (elle pourrait comporter un algorithme adaptatif)

    3. un programme dinterface avec lutilisateurqui choisit la mthode, le second

    membre, lit les paramtres (conditions initiales par ex.), dclenche et arrte

    lintgration et stocke les rsultats.

    4. un module comportantles fonctions seconds membres de lquation

    diffrentielle et les ventuelles solutions analytiques exactes ou approches

    5. un module dutilitairesnotamment pour crire les rsultats dans un fichier pour

    visualisation ultrieure.

    MNCS 40 2014-2015

    EDO 5 Systmes dEDO du 1er ordre

    5 Systmes dquations diffrentielles du 1er ordre

    5.1 Extension des mthodes scalaires explicites aux vecteurs

    Systme denquations diffrentielles couples du

    premier ordre associes nconditions initiales

    dy1dt

    = f1(t, y1, y2, . . . , yn)

    dy2dt

    = f2(t, y1, y2, . . . , yn)

    . . . = . . .dyndt

    = fn(t, y1, y2, . . . , yn)

    considrer les

    vecteurs #y et#

    f.

    y1

    y2

    . . .

    yn

    et

    f1

    f2

    . . .

    fn

    MNCS 41 2014-2015

    EDO 5 Systmes dEDO du 1er o rd re 5 .1 M t ho de s s ca la ir es e xp li ci te s

    Lesmthodesexplicitesde rsolution des quations diffrentielles scalaires du

    premier ordresappliquent aux systmes.

    d #y

    dt =

    #

    f(t, #y )

    chaque tape, effectuer les calculssur chaque composante

    avant de passer ltape suivante : exemple avec point milieu

    tape 1 : vecteur des pentes au bord gauche de lintervalle

    #

    k1=#

    f(t1,#y1)

    k1,1 = f1(t1, y1,1, y1,2, . . . , y1,n)

    k1,2 = f2(t1, y1,1, y1,2, . . . , y1,n)

    . . . = . . .

    k1,n = fn(t1, y1,1, y1,2, . . . , y1,n)

    MNCS 42 2014-2015

    EDO 5 Systmes dEDO du 1er o rd re 5. 1 M tho des s cal ai res ex pl ic it es

    avant de calculer...

    tape 2 : vecteur des pentes au point milieu prdit

    #

    k2=#

    f(t1+h/2,#y1+

    #

    k1h/2)

    k2,1 = f1(t1+h/2, y1,1+k1,1h/2, y1,2+k1,2h/2, . . . , y1,n+k1,nh/2)

    k2,2 = f2(t1+h/2, y1,1+k1,1h/2, y1,2+k1,2h/2, . . . , y1,n+k1,nh/2)

    . . . = . . .

    k2,n = fn(t1+h/2, y1,1+k1,1h/2, y1,2+k1,2h/2, . . . , y1,n+k1,nh/2)

    tape 3 : vecteur rsultat au bord droit de lintervalle

    #ui+1 =#ui+h

    #

    k2

    MNCS 43 2014-2015

  • 7/23/2019 Equa Diff x4bv

    12/18

    EDO 5 Systmes dEDO du 1er o rd re 5. 2 qua ti ons d e L ot ka -Vo lt er ra

    5.2 Exemple de systme non linaire coupl du premier ordre :

    quations de Lotka-Volterra

    Deux populations en conflit : modle proies (y1)prdateurs (y2)

    a1 = 1/1= taux de croissance de y1(proies)en labsence dey2(prdateurs)

    a2 = 1/2= taux de dcroissance de y2(prdateurs)en labsence dey1(proies)a1k2

    y2= taux de destruction des proiespar lesprdateurs

    a2k1

    y1= taux de croissance desprdateursau dtriment desproies

    dy1dt

    = +a1y1

    1

    y2k2

    (18a)

    dy2dt

    = a2y2

    1

    y1k1

    (18b)

    Solutionspriodiques

    MNCS 44 2014-2015

    EDO 5 Systmes dEDO du 1er o rd re 5 .2 qua ti ons d e L ot ka -Vo lt er ra

    Rsolution numrique de Lotka-Volterra :k1= k2 = 1,a1 = 1,a2= 0, 2,h= 0, 1

    chelleslinaires

    0

    5

    10

    15

    20

    0 20 40 60 80 100

    Populations

    temps

    Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 1

    proiesprdateurs

    Mthode dEuler progressive :

    Les solutions divergent

    0

    5

    10

    15

    20

    0 20 40 60 80 100

    Populations

    temps

    Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 4

    proiesprdateurs

    Mthode de Runge Kutta dordre 4 :

    Cycle stable

    MNCS 45 2014-2015

    EDO 5 Systmes dEDO du 1er o rd re 5. 2 qua ti ons d e L ot ka -Vo lt er ra

    Rsolution numrique de Lotka-Volterra :k1= k2 = 1,a1 = 1eta2 = 0, 2.

    chellelogen ordonne

    1010

    108

    106

    104

    102

    100

    102

    0 20 40 60 80 100

    Populations

    temps

    Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 1

    proiesprdateurs

    Mthode dEuler progressive :divergente

    1010

    108

    106

    104

    102

    100

    102

    0 20 40 60 80 100

    Populations

    temps

    Lotka Volterra valeurs initiales : proies(0) = 10 prdateurs(0) = 1pas = 0,1 ordre de la mthode : 4

    proiesprdateurs

    Mthode de Runge Kutta dordre 4 : stable

    Pente avec peu de proies :d ln y2

    dt 1/2do facteur e

    4 1/54 sur une dure de 20 = 42.

    Pente avec peu de prdateurs :d ln y1

    dt 1/1do facteur 100 sur dure de 4, 6 = 4, 61

    MNCS 46 2014-2015

    EDO 5 Systmes dEDO du 1er o rd re 5 .2 qua ti ons d e L ot ka -Vo lt er ra

    Lotka-Volterra : cycle dans le plan de phase

    En liminant le temps,

    dy2dy1

    = a2y2a1y1

    1 y1/k11 y2/k2

    ya21 ya12 e

    a1y2/k2a2y1/k1 =Cte

    Tangentes horizontales poury1= k1(ouy2= 0) : quilibre desprdateurs

    Tangentes verticales poury2 = k2(ou y1= 0) : quilibre desproies

    0.0

    1.0

    2.0

    3.0

    4.0

    5.0

    6.0

    7.0

    8.0

    0 5 10 15 20

    prdateurs

    proies

    Plan de phase de Lotka Volterravaleurs initiales : proies(0) = 10 prdateurs(0) = 1

    pas = 0,1 ordre de la mthode : 1

    prdateurs= f(proies)

    Mthode dEuler : non priodique

    0.0

    1.0

    2.0

    3.0

    4.0

    5.0

    6.0

    7.0

    8.0

    0 5 10 15 20

    prdateurs

    proies

    Plan de phase de Lotka Volterravaleurs initiales : proies(0) = 10 prdateurs(0) = 1

    pas = 0,1 ordre de la mthode : 4

    prdateurs= f(proies)

    Runge Kutta dordre 4 : cycle correctMNCS 47 2014-2015

  • 7/23/2019 Equa Diff x4bv

    13/18

    EDO 6 quations diffrentielles dordre suprieur

    6 quations diffrentielles dordre suprieur

    dny

    dtn =f

    t, y,

    dy

    dt, . . . ,

    dn1y

    dtn1

    Une EDO scalaire dordrense ramne un systme de nquations diffrentielles

    du premier ordre couplesen posant :

    y1

    y2

    . . .

    yn

    =

    y

    y

    . . .

    y(n1)

    =

    y1

    y2

    . . .

    yn

    =

    y2

    y3

    . . .

    f(t, y1, y2, . . . , yn)

    MNCS 48 2014-2015

    EDO 6 quations diffrentielles dordre suprieur 6.1 Exemple

    6.1 Exemple

    Systme linaire du second ordre avec excitationh(t)

    d2y

    dt2 =a

    dy

    dt +by+h(t)

    Poser

    y1

    y2

    =

    y

    y

    y1

    y2

    =

    y2

    ay2+by1+h(t)

    Remarque

    Systme diffrentiel dordrepde dimensionn

    systme diffrentiel coupl du premier ordre npdimensions.

    MNCS 49 2014-2015

    E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6 .2 E xem pl e d E DO d o rd re 2 : l e pe ndu le

    6.2 Exemple dEDO dordre 2 : le pendule

    Pendulenon linaire(y= position angulaire)

    d2y

    dt2 = k2sin(y) o k2 =g/l (19)

    Pendulelinaris(cas des petites amplitudes) : sin(y) y

    d2y

    dt2 = k

    2

    y (20)

    l

    y

    mg

    lquation linarise admet une solution analytique en A sin(kt+).

    Exprimer cette EDO du second ordre sous la forme dun systme diffrentiel coupl

    de dimension 2 mais du premier ordre.y1

    y2

    =

    y

    y

    =

    y1

    y2

    =

    y2k2 sin(y1)

    MNCS 50 2014-2015

    E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6. 2 E xem pl e d E DO d o rd re 2 : l e pe ndu le

    Rsolution numrique du systme non-linaris, avec les valeurs initiales :y1(0)

    y2(0)

    =

    y(0)dy

    dt(0) =a

    =

    position angulaire

    vitesse angulaire

    nergie mcaniqueconserve (aprs division parml2) :

    1

    2

    dy

    dt2

    +k2(1 cos y) = constante

    Cas oy(0) = 0(dpart en position dquilibre stable)

    1

    2

    dy

    dt

    2+k2(1 cos y) =

    1

    2

    dy

    dt(0)

    2

    Vitesse angulaire minimale poury = (position dquilibre instable si atteinte).

    Sia = dy

    dt(0)> 2k(seuil) la vitesse angulaire ne sannule pas (apriodique).

    tude de latransition priodiqueapriodiqueselonadans le cas ok = 1

    MNCS 51 2014-2015

  • 7/23/2019 Equa Diff x4bv

    14/18

    E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6 .2 E xem pl e d E DO d o rd re 2 : l e pe ndu le

    Comparaisons non-linaire (Runge-Kutta 4)analytique linaris :y(t)

    .

    .

    .

    .

    .

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 500.25

    0.20

    0.15

    0.10

    0.05

    0.00

    0.05

    0.10

    0.15

    0.20

    0.25

    pendule + sol. linarise: mth. ordre 4 vitesse ang. init=0.2mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0000000e01

    temps

    theta

    a= 0.2 1linarisable

    .

    .

    .

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 501.5

    1.0

    0.5

    0.0

    0.5

    1.0

    1.5

    pendule + sol. linarise: mth. ordre 4 vitesse ang. init=1mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00

    temps

    theta

    a= 1priodique non sinusodal

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 503

    2

    1

    0

    1

    2

    3

    pendule + sol. linarise: mth. ordre 4 vitesse ang. init=1.98mthode dordre 4de 0.000000 50.000000 avec un pasde 0.01valeurs initiales 0.0000000e+00 1.9800000e+00

    temps

    theta

    a= 1.98priodique non sinusodal

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 5010

    0

    10

    20

    30

    40

    50

    pendule + sol. linarise: mth. ordre 4 vitesse ang. init=2.02mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00

    temps

    theta

    a= 2.02apriodiqueMNCS 52 2014-2015

    E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6. 2 E xem pl e d E DO d o rd re 2 : l e pe ndu le

    Comparaisons non-linaire (RK 4)analytique linaris : plan de phase y(y)

    .

    .

    .

    .

    .

    estimlinarisestimlinaris

    0. 25 0. 20 0. 15 0. 10 0. 05 0 .0 0 0 .0 5 0 .1 0 0 .1 5 0 .2 0 0 .2 50.25

    0.20

    0.15

    0.10

    0.05

    0.00

    0.05

    0.10

    0.15

    0.20

    0.25

    plan de phase pendule: mth. ordre 4 vitesse ang. init.=0.2mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0000000e01

    theta

    dtheta/dt

    a= 0.2 1linarisable

    .

    .

    .

    .

    .

    estimlinarisestimlinaris

    1.5 1.0 0.5 0.0 0.5 1.0 1.51.0

    0.8

    0.6

    0.4

    0.2

    0.0

    0.2

    0.4

    0.6

    0.8

    1.0

    plan de phase pendule: mth. ordre 4 vitesse ang. init.=1mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00

    theta

    dtheta/dt

    a= 1priodique non sinusodal

    .

    .

    .

    .

    estimlinarisestimlinaris

    3 2 1 0 1 2 32.0

    1.5

    1.0

    0.5

    0.0

    0.5

    1.0

    1.5

    2.0

    plan de phase pendule: mth. ordre 4 vitesse ang. init.=1.98mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.9800000e+00

    theta

    dtheta/dt

    a= 1.98priodique non sinusodal

    .

    .

    .

    .

    .

    estimlinarisestimlinaris

    10 0 10 20 30 40 502.5

    2.0

    1.5

    1.0

    0.5

    0.0

    0.5

    1.0

    1.5

    2.0

    2.5

    plan de phase pendule: mth. ordre 4 vitesse ang. init.=2.02mthode dordre 4de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00

    theta

    dtheta/dt

    a= 2.02apriodiqueMNCS 53 2014-2015

    E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6 .2 E xem pl e d E DO d o rd re 2 : l e pe ndu le

    Comparaisons non-linaire (Euler)analytique linarisy(t)

    .

    .

    .

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 500.3

    0.2

    0.1

    0.0

    0.1

    0.2

    0.3

    pendule + sol. linarise: mth. ordre 1 vitesse ang. init=0.2mthode dordre 1de 0.000000 50.000000 avec un pasde 0.01valeurs initiales 0.0000000e+00 2.0000000e01

    temps

    theta

    a= 0.2

    .

    .

    .

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 501.5

    1.0

    0.5

    0.0

    0.5

    1.0

    1.5

    pendule + sol. linarise: mth. ordre 1 vitesse ang. init=1mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00

    temps

    theta

    a= 1

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 5045

    40

    35

    30

    25

    20

    15

    10

    5

    0

    5

    pendule + sol. linarise: mth. ordre 1 vitesse ang. init=1.98mthode dordre 1de 0.000000 50.000000 avec un pasde 0.01valeurs initiales 0.0000000e+00 1.9800000e+00

    temps

    theta

    a= 1.98apriodique selon Euler!

    estimlinaireestimlinaire

    0 5 10 15 20 25 30 35 40 45 5010

    0

    10

    20

    30

    40

    50

    60

    pendule + sol. linarise: mth. ordre 1 vitesse ang. init=2.02mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00

    temps

    theta

    a= 2.02MNCS 54 2014-2015

    E DO 6 qua ti ons d if f ren ti el les d or dre s up r ieu r 6. 2 E xem pl e d E DO d o rd re 2 : l e pe ndu le

    Comparaisons non-linaire (Euler)analytique linaris : plan de phase y(y)

    .

    .

    .

    estimlinarisestimlinaris

    0.3 0.2 0.1 0.0 0.1 0.2 0.30.3

    0.2

    0.1

    0.0

    0.1

    0.2

    0.3

    plan de phase pendule: mth. ordre 1 vitesse ang. init.=0.2mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0000000e01

    theta

    dtheta/dt

    a= 0.2

    .

    .

    .

    estimlinarisestimlinaris

    1.5 1.0 0.5 0.0 0.5 1.0 1.51.5

    1.0

    0.5

    0.0

    0.5

    1.0

    1.5

    plan de phase pendule: mth. ordre 1 vitesse ang. init.=1mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.0000000e+00

    theta

    dtheta/dt

    a= 1

    .

    .

    .

    .

    .

    estimlinarisestimlinaris

    45 40 35 30 25 20 15 10 5 0 52.5

    2.0

    1.5

    1.0

    0.5

    0.0

    0.5

    1.0

    1.5

    2.0

    plan de phase pendule: mth. ordre 1 vitesse ang. init.=1.98mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 1.9800000e+00

    theta

    dtheta/dt

    a= 1.98apriodique selon Euler!

    .

    .

    .

    .

    .

    estimlinarisestimlinaris

    10 0 10 20 30 40 50 602.5

    2.0

    1.5

    1.0

    0.5

    0.0

    0.5

    1.0

    1.5

    2.0

    2.5

    plan de phase pendule: mth. ordre 1 vitesse ang. init.=2.02mthode dordre 1de 0.000000 50.000000 avec un pas de 0.01valeurs initiales 0.0000000e+00 2.0200000e+00

    theta

    dtheta/dt

    a= 2.02MNCS 55 2014-2015

  • 7/23/2019 Equa Diff x4bv

    15/18

    EDO 7 Implmentation vectorielle

    7 Mise en uvre vectorielle des mthodes un pas

    7.1 Introduction

    Les mthodes dintgration d oivent fonctionnerquelle que soit la taillepdes

    vecteursqui reprsentent la solution #y et le second membre#

    fde lEDO.

    Il en est de mme pour linterface formelle de la fonction second membre en

    fortran ou le pointeur de fonction second membre en C. Cestle programme principal qui fixera cette taille.

    Il devra donc choisir un second membre de la mme dimension.

    Les tailles des tableaux des seconds membres e ffectifs seront hrites du

    programme principal etnon dclares explicitement.

    Mais seules lespcomposantes effectives de#

    f(2 pour le pendule : drive et

    drive seconde) seront calcules partir despcomposantes de #y .

    MNCS 56 2014-2015

    EDO 7 Implmentation vectorielle 7.2 En fortran (norme 2003)

    7.2 En fortran (norme 2003)

    Utiliser desfonctions argument tableau de rang 1 #y

    dtenduepdtermine lexcution (nombrepdEDO scalaires dordre 1)

    et rsultat tableau de mme tendue que #y pour :

    1. le second membre de lquation diffrentielle :

    MODULE abstrait

    ABSTRACT INTERFACE ! de la fct gnrique IInd mb de lEDO

    function fty(t, y) ! dy/dtreal, dimension(:),intent(in) : : y ! variable vecteur

    real, intent(in) : : t

    real, dimension(size(y)) :: fty ! vecteur rsultat

    end function fty

    END INTERFACE

    END MODULE abstrait

    Ltenduepdu vecteur rsultat#

    f effectif sera donc fixe par le programme

    principal via #y et non par la fonction second membre.

    MNCS 57 2014-2015

    EDO 7 Implmentation vectorielle 7.2 En fortran (norme 2003)

    2. chacune des mthodes un pas(Euler, point milieu et Runge Kutta) :

    les pentes locales#

    kiseront destableaux automatiques locaux.

    FUNCTION u2_rk4(u1, t1, h, f)

    USE abstrait ! o est dfinie linterface abstraite fty

    REAL, DIMENSION(:), INTENT(IN) :: u1 ! valeur initiale

    REAL, INTENT(IN) :: t1 ! instant initial

    REAL, INTENT(IN) : : h ! pas

    PROCEDURE(fty) :: f ! dclaration de linterface de fREAL, DIMENSION(SIZE(u1)) :: u2_rk4 ! valeur estime t1+h

    ! variables locales de mme tendue que u1

    REAL, DIMENSION(SIZE(u1)) :: k1, k2, k3, k4 ! pentes locales

    ...

    u2_rk4 = u1 + ...

    END FUNCTION u2_rk4

    MNCS 58 2014-2015

    EDO 7 Implmentation vectorielle 7.2 En fortran (norme 2003)

    3. Dans le programme principal (et dans la procdure dcriture sur fichier), les

    solutions vectorielles (analytique et par intgration) sont reprsentes par des

    tableaux 2D allous dynamiquement(ninstants,pcomposantes).

    Les tenduesnetpsont donc choisies lexcution, sachant que pdoit tre

    correspondre au nombre effectif de composantes du second membre tudi.

    Mais la dimension temporelle nest pas vue par les mthodes : elles

    travaillent sur des vecteurs (dtendue p) dans un intervalle[ti, ti+1], ifix.

    MNCS 59 2014-2015

  • 7/23/2019 Equa Diff x4bv

    16/18

    EDO 7 Implmentation vectorielle 7.3 En C89 avec des tableaux dynamiques

    7.3 En C89 avec des tableaux dynamiques sur le tas

    Utiliser des fonctions argument tableau 1D #y de taille dtermine lexcution

    etrendant un pointeur vers un tableau allou sur le tas de mme taille que #y .

    1. le second membre de lquation diffrentielle sera allou par la fonction#

    f( #y , t)qui rend le pointeur vers ce tableau, dont le programme appelant

    devra prendre en charge la libration ;

    float * pendule(float t, float *u, int p){

    float *second_membre= NULL; /* tableau 1D */

    second_membre = float1d(p); /* allocation sur le tas */

    second_membre[0] = u[1];

    second_membre[1] = -sin(u[0]);

    return second_membre; /* valeur de retour = pointeur */

    }

    MNCS 60 2014-2015

    EDO 7 Implmentation vectorielle 7.3 En C89 avec des tableaux dynamiques

    2. pour chacune des mthodes un pas (Euler, point milieu et Runge Kutta) les

    pentes locales#

    kiseront des tableaux allous et librs localement, car leur

    nombre dpend de la mthode ; en revanche, le rsultat #u i+1qui est aussi

    vectoriel sera pass en argument (sous forme pointeur plus nombre

    dlments), son allocation et libration prises en charge par lappelant.

    void u2_milieu(int p, float *u1, float t1, float h,

    float* (* ptr_f) (float, float*, int), float * u2){/* permettant davancer dun pas en temps*/

    float *k1 = NULL; /* vecteur pente */

    float *k2 = NULL; /* vecteur pente */

    float *u12 = NULL; /* vecteur intermdiaire */

    k 1 = (*ptr_f)(t1, u1, p); /* allocation par la fct second membre *

    u12 = float1d (p); /* allocation locale */

    MNCS 61 2014-2015

    EDO 7 Implmentation vectorielle 7.3 En C89 avec des tableaux dynamiques

    3. Dans le programme principal(et dans la procdure dcriture sur fichier), les

    solutions vectorielles (analytique et par intgration) sont reprsentes par des

    tableaux 2D. Mais la dimension temporelle nest pas vue par les mthodes :

    elles travaillent sur des vecteurs de taillepdans un intervalle[ti, ti+1]. Cela

    impose que les composantes des vecteurs soient contiges en mmoire, donc

    le deuxime indice est celui des composantes, le premier celui du temps.

    /* allocation dans le main des tableaux 2D */

    u = float2d(n, p); /* n instants et p equations */

    /* appel de la mthode du point milieu par exemple */

    u2_milieu(p, u[i], t[i], h, &pendule, u[i+1]);

    /* donc u[i] est un tableau 1D = vecteur des composantes de u_i

    MNCS 62 2014-2015

    EDO 7 Implmentation vectorielle 7.4 En C99 avec des tableaux automatiques

    7.4 En C99 avec des tableaux automatiques

    Fonctions argument tableau 1D #y de taillepdtermine lexcution

    Dclaration tardive des tableaux automatiques viter les tableaux dynamiques

    Mais une fonction ne peut pas rendre un tableau fonctions rsultat void

    dclaration du tableau argument par lappelant

    et remplissage par la fonction appele

    1. la fonction second membre de lquation diffrentielleremplit le tableau

    second_mbde taillepreprsentant#

    f( #y , t)

    qui a t dclar par lappelant (la mthode) avec la taille fixe par le main

    // version C99 avec tableaux automatiques

    void pendule(float t, int p, float u[p], float second_mb[p]){

    // p = 2 ici = dimension des vecteurs u et second_membre

    second_mb[0] = u[1];

    second_mb[1] = -sin(u[0]);

    return;

    }MNCS 63 2014-2015

  • 7/23/2019 Equa Diff x4bv

    17/18

    EDO 7 Implmentation vectorielle 7.4 En C99 avec des tableaux automatiques

    2. pour chacune des mthodes un pas (Euler, point milieu et Runge Kutta) les

    pentes locales#

    kiseront destableaux locaux automatiques, car leur nombre

    dpend de la mthode ; en revanche, le rsultat #u i+1 qui est aussi vectoriel

    sera pass en argument, sa dclaration tant prise en charge par lappelant.

    // C99 avec tableaux automatiques

    void u2_milieu(int p, float u1[p], float t1, float h,

    void (* ptr_f) (float, int, float[], float[]),

    float u2[p]) {

    // methode permettant davancer dun pas en temps

    float k1[p] ; // vecteur pente gauche

    float k2[p] ; // vecteur pente au milieu

    float u12[p]; // vecteur intermdiaire

    (*ptr_f)(t1, p, u1, k1); // valuation du second membre en u1

    // rsultat dans le vecteur local k1

    ...

    // tableau u2[p] dclar dans lappelant et rempli ici (boucle)

    MNCS 64 2014-2015

    EDO 7 Implmentation vectorielle 7.4 En C99 avec des tableaux automatiques

    3. Dans le programme principal (et dans la procdure dcriture sur fichier), les

    solutions vectorielles (analytique et par intgration) sont reprsentes par des

    tableaux 2D. Mais la dimension temporelle nest pas vue par les mthodes :

    elles travaillent sur des vecteurs de taillepdans un intervalle[ti, ti+1]. Cela

    impose que les composantes des vecteurs soient contiges en mmoire, donc

    le deuxime indice est celui des composantes, le premier celui du temps.

    // tableaux automatiques 2D C99 dclars dans le main// p choisi selon la dimension du second membre

    float u[n][p]; // n instants et p equations

    // dans la boucle sur les instants i :

    // appel de la mthode du point milieu par ex.

    u2_milieu(p, u[i], t[i], h, &pendule, u[i+1]);

    // u[i] et u[i+1] : vecteurs p composantes

    // t[i] : scalaire

    MNCS 65 2014-2015

    EDO RFRENCES RFRENCES

    Rfrences

    AKAI , T ERRENCE J., Applied Numerical Methods for Engineers, 410 pages (Wiley,

    1994), ISBN 0-471-57523-2.

    BURDEN, R ICHARDL. et J. D OUGLAS FAIRES,Numerical Analysis, 847 pages

    (Thompson, Brooks/Cole, 2005), huitime dition, ISBN 0-534-40499-5.

    DEMAILLY, J.-P.,Analyse numrique et quations diffrentielles, 350 pages (EDP

    Sciences, 2006), troisime dition, ISBN 978-2-86883-891-9.

    GUILPIN, C H., Manuel de calcul numrique appliqu, 577 pages (EDP Sciences,

    1999), ISBN 2-86883-406-X.

    RAPPAZ, J ACQUESet M ARCOP ICASSO, Introduction lanalyse numrique, 268

    pages (Presses polytechniques et universitaires romandes, 2010), ISBN

    978-2-88074-851-7.

    MNCS 66 2014-2015

    EDO TABLE DES MATIRES TABLE DES MATIRES

    Table des matires

    1 Introduction 1

    1.1 Problme dif frent ie l . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.2 Deux types de problmes diffrentiels rsoudre . . . . . . . . . . . 2

    1.3 quations diffrentielles scalaires du 1er ordre . . . . . . . . . . . . 3

    1.4 Condit ions suffisant es . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.5 Mthodes de rsolution numrique et notations . . . . . . . . . . . . 5

    2 Mthodes un pas 7

    2.1 Mthodes du premier ordre . . . . . . . . . . . . . . . . . . . . . . 8

    2.1.1 Mthode dEuler progressive (explicite) . . . . . . . . . . . . 8

    2.1.2 Mthode dEuler rtrograde (implicite) . . . . . . . . . . . . . 10

    MNCS 67 2014-2015

  • 7/23/2019 Equa Diff x4bv

    18/18

    EDO TABLE DES MATIRES TABLE DES MATIRES

    2.2 Mthodes du deuxime ordre . . . . . . . . . . . . . . . . . . . . . 11

    2.2.1 Mthode du point mil ieu . . . . . . . . . . . . . . . . . . . . 11

    2.2.2 Mthode dEuler modifie . . . . . . . . . . . . . . . . . . . 13

    2.2.3 Mt hode de Heun . . . . . . . . . . . . . . . . . . . . . . . 16

    2.3 Mthodes de Runge Kutta . . . . . . . . . . . . . . . . . . . . . . 17

    2.3.1 Mthode de Runge Kutta dordre 3 . . . . . . . . . . . . . . 17

    2.3.2 Mthode de Runge Kutta dordre 4 . . . . . . . . . . . . . . 19

    2.4 Erreur absolue en fonction du pas et de lordre . . . . . . . . . . . . 20

    2.5 Exemple de l quat ion logistique . . . . . . . . . . . . . . . . . . . 21

    2.5.1 Exemple derreur totale maximale en simple prcision . . . . . 23

    2.5.2 Exemple derreur totale maximale en double prcision . . . . . 24

    2.5.3 Comparaison des erreurs maximales simple/double prcision . 25

    MNCS 68 2014-2015

    EDO TABLE DES MATIRES TABLE DES MATIRES

    3 Mthodes plusieurs pas 26

    3.1 Mthodes dAdams . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    3.1.1 Adams Bashforth (explicite : pas de terme enf(ti+1, ui+1)) . 2 7

    3.1.2 Adams Moulton (implicite : terme enf(ti+1, ui+1)) . . . . . 28

    3.1.3 Comparaison mthodes un pas et Adams explicite . . . . . . 30

    3.1.4 Mthodes de prdicteur correcteur . . . . . . . . . . . . . . 31

    3.2 Mthodes adaptatives . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.2.1 Exemple : mthode de Runge Kutta Fehlberg . . . . . . . . . 33

    3.3 Mthodes dextrapolation de Gragg . . . . . . . . . . . . . . . . . . 34

    3.3.1 Principe de l extrapolation . . . . . . . . . . . . . . . . . . . 34

    3.3.2 Comparaison mthodes un pas et extrapolation de Gragg . . 37

    4 Les EDO du premier ordre en pratique 38

    MNCS 69 2014-2015

    EDO TABLE DES MATIRES TABLE DES MATIRES

    4.1 chelles de temps et problmes raides . . . . . . . . . . . . . . . . 38

    4.2 Validation des rsultats . . . . . . . . . . . . . . . . . . . . . . . . 39

    4.3 Structure des programmes de rsolution dEDO du 1er ord re . . . . . 40

    Structure des programmes dEDO du 1er ordre 40

    5 Systmes dEDO du 1er ordre 41

    5.1 Mthodes scalaires explicites . . . . . . . . . . . . . . . . . . . . . 41

    5.2 quations de Lotka-Volterra . . . . . . . . . . . . . . . . . . . . . 44

    6 quations diffrentielles dordre suprieur 48

    6.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    6.2 Exemple dEDO dordre 2 : le pendule . . . . . . . . . . . . . . . . 50

    7 Implmentation vectorielle 56

    MNCS 70 2014-2015

    EDO TABLE DES MATIRES TABLE DES MATIRES

    7 .1 In tro ductio n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6

    7.2 En fort ran (norme 2003) . . . . . . . . . . . . . . . . . . . . . . . 57

    7.3 En C89 avec des tableaux dynamiques . . . . . . . . . . . . . . . . 60

    7.4 En C99 avec des tableaux automatiques . . . . . . . . . . . . . . . 63

    Bibliographie 66

    MNCS 71 2014-2015