• Aucun résultat trouvé

Soit C ⩾ 0, M > 0. Consid´erons une m´ethode de Runge-Kutta d´efinie par la relation

∀n∈N,y�n+1=�si=0α̃i⊗ ̃yn. Supposons que :

● ∑si=0∣ ̃αi∣ ⩽V ;

● (s+1)u⩽1;

● ∀n∈N,∣ ̃yn∣ ⩾M⇒εn ⩽Cu∣�yn1∣;

● Cu+∣R(h,λ)∣ ⩽1;

● M ⩽ (1+(s+1)u)VΩ ;

● ξ ⩽2emax−p;

● ∣̃y0∣ ⩽min�Ω,(1+(s+Ω1)u)V�.

Alors, pour tout n, il n’y a aucun d´epassement de capacit´e sup´erieur en calculant ỹn. D´emonstration. La d´emonstration se fait par induction sur n.

Si n=0, commeỹ0 est fini, il n’y a pas de d´epassement de capacit´e sup´erieur.

Soit n un entier donn´e. Supposons qu’aucun d´epassement de capacit´e sup´erieur ne s’est produit apr`es n it´erations (hypoth`ese d’induction). Si ∣ ̃yn∣ ⩾M, alors d’apr`es le lemme 5.2, ∣ ̃yn∣ ⩽ ∣̃y0∣ ⩽ (1+(s+Ω1)u)V. Si ∣ ̃yn∣ < M alors nous avons ´egalement ∣ ̃yn∣ <

(1+(s+Ω1)u)V. Donc, dans les deux cas, d’apr`es le lemme 5.13, pour tout k⩽s :

��k

i=0α�i+sk⊗ ̃yn� ⩽Ω.

Donc, il n’y a pas de d´epassement de capacit´e sup´erieur dans le calcul de y�n+1. Combin´e `a l’hypoth`ese d’induction, ce r´esultat ach`eve la d´emonstration.

Montrons que les hypoth`eses du Th´eoreme 5.14 sont sens´ees :

● Pour pr´evenir le risque de d´epassement de capacit´e sup´erieur, il suffit de v´erifier que∣̃y0∣n’est pas trop grand. Le tableau 5.4 donne les valeurs deset un ordre de grandeur deV et (1+(s+1)u)VΩ , en choisissant V ´egal `a sa valeur minimale∑si=0∣ ̃αi∣ (calcul´ee via les contraintes surhλ), pour des m´ethodes classiques impl´ement´ees au format binary64. En fait, les probl`emes r´esolus par des m´ethodes de Runge-Kutta font g´en´eralement apparaˆıtre des constantes de taille raisonnable. Par exemple, mˆeme en astrophysique, les conditions initiales n’exc`edent pas 1024 [21], qui est une valeur bien inf´erieure par rapport aux bornes du tableau 5.4.

● De plus, le th´eor`eme 5.14 utilise l’hypoth`eseξ⩽2emax−p. En fait, tous les formats utiles d’arithm´etique `a virgule flottante v´erifient cette hypoth`ese. Par exemple, dans le format binary64,ξ =21022 et 2emaxp =2970.

5.7 R´ esultats empiriques

La m´ethodologie adopt´ee ´etant relativement g´en´erique, les bornes fournies peuvent s’av´erer pessimistes. En effet, nous ne tenons pas compte des particularit´es de chaque

´equation diff´erentielle et de chaque m´ethode num´erique. Les bornes que nos r´esultats permettent d’obtenir sont valables «dans le pire cas».

Tableau 5.4 – Valeurs de V, s, et (1+(s+Ω1)u)V pour des m´ethodes classiques enbinary64 Method V s (1+(s+1)u)VΩ

Euler 3 2 3+Ω9u5,99×10307 RK2 5 3 5+20uΩ 3,6×10307 RK4 16,5 11 16,5+Ω198u1,09×10307

Nous avons n´eanmoins souhait´e comparer ces bornes aux erreurs d’arrondi effecti-vement commises par l’impl´ementation de m´ethodes de Runge-Kutta sur des syst`emes dynamiques particuliers. Il faut pour cela pouvoir se baser sur une impl´ementation

«id´eale», i.e.en pr´ecision infinie, des algorithmes d´ecrits en section 5.1.2. Plutˆot que d’impl´ementer les m´ethodes `a l’aide de nombres r´eels constructifs, nous avons jug´e suffi-sant d’utiliser MPFR avec une pr´ecision de 1000 bits. Nous comparons les solutions ainsi obtenues aux r´esultats d’une impl´ementation en double pr´ecision. Prenons l’exemple de l’´equationy˙=−y2,i.e.λ=−0,5 avec la condition initialey0=1. Nous r´esolvons le syst`eme avec la m´ethode de Runge-Kutta d’ordre 2 en choisissant un pas h= 641 sur n = 1000 it´erations. Lafigure 5.2(a) montre le r´esultat de l’´evaluation de la borne obtenue (th´eo-r`eme 5.11) sur l’exemple choisi. Pournpetit, une bosse apparaˆıt, puis la borne d’erreur d´ecroˆıt rapidement. La borne calcul´ee ´etant ´egale `a (Cu+∣R(h,λ)∣)nnCu+∣R(h,λ)∣Cu∣y0 avec C ≈24, le terme dominant est de la forme nCu∣y0∣pour npetit. En revanche, quand n devient grand, le terme (Cu+∣R(h,λ)∣)n domine et la borne d’erreur d´ecroˆıt (quasi-) exponentiellement. Nous comparons cette borne `a l’erreur sign´ee effective (figure 5.2(b)).

Les axes des ordonn´ees desfigures 5.2(a) et 5.2(b) ne sont pas `a la mˆeme ´echelle. Il apparaˆıt que l’erreur est petite par rapport `a la borne obtenue, avec un rapport d’environ 180. Cela s’explique par le fait que nous fournissons une analyse«pire cas», pour touth, pour tout λet sans prendre en compte d’´eventuelles compensations d’erreurs au cours des it´erations. Notons n´eanmoins que l’erreur effective et la borne d’erreur semblent

´evoluer de fa¸con similaire, avec une forte hausse puis une d´ecroissance rapide.

(a) Borne d’erreur d’arrondi (b) Erreurs d’arrondi sign´ees

Figure5.2 – Borne d’erreur d’arrondi et erreur sign´ee pour RK2 appliqu´ee au syst`eme

˙

y=−y2,i.e. λ=−0,5 avec y0=1 et h= 641 surn=1000 it´erations.

5.8. CONCLUSION 96

Figure5.3 – Exemple de RK2 : erreur de m´ethode (en rouge), borne d’erreur d’arrondi (en bleu) et erreur sign´ee (en jaune) sur une ´echelle logarithmique

Nous comparons ´egalement les erreurs d’arrondi aux erreurs de m´ethode des sch´e-mas de Runge-Kutta. La figure 5.3 pr´esente, sur une ´echelle logarithmique, l’erreur de m´ethode pour la m´ethode RK2 (obtenue en comparant les impl´ementations MPFR sur 1000 bits de la m´ethode et de la fonction exponentielle) ainsi que la borne d’erreur d’arrondi et l’erreur d’arrondi obtenue en pratique. Bien que pessimistes, les bornes exhib´ees restent n´egligeables par rapport `a l’erreur de m´ethode. Ces bornes suffisent donc `a garantir que les erreurs d’arrondi ne faussent pas significativement les r´esultats.

5.8 Conclusion

Nous avons propos´e une analyse d’erreurs d’arrondi applicable `a une classe impor-tante de m´ethodes d’int´egration num´erique des ´equations diff´erentielles dans le cas li-n´eaire unidimensionnel. Cette analyse d’erreurs `a grainsfins permet d’obtenir des bornes fines et tenant compte d’´eventuels d´epassements de capacit´e inf´erieurs. Par ailleurs, nous avons obtenu une condition suffisante sur∣y0∣permettant de se pr´emunir de tout risque de d´epassement de capacit´e sup´erieur au cours des it´erations d’une m´ethode.

La m´ethodologie adopt´ee est relativement m´ecanique et repose sur des r´esultats g´en´eriques. Nous avons de plus d´eroul´e l’analyse d’erreurs sur quelques exemples de m´ethodes num´eriques qui sont tr`es fr´equemment utilis´ees en pratique, comme la m´e-thode d’Euler, la m´em´e-thode du point-milieu (RK2) et la m´em´e-thode RK4.

En pratique, l’utilisation de la fonction exponentielle est souvent pr´ef´er´ee `a la r´e-solution num´erique d’´equations diff´erentielles lin´eaires dans le cas unidimensionnel. Le rˆole principal de ce chapitre est en fait d’introduire une m´ethodologie ainsi que certaines d´efinitions (erreurs locales, erreurs globales, etc) comme premier pas vers l’analyse d’er-reurs dans le cas des syst`emes lin´eaires matriciels, dont la r´esolution num´erique par les m´ethodes de Runge-Kutta est plus courante et qui fait l’objet du chapitre 6.

Chapitre 6

Erreurs d’arrondi des m´ ethodes de Runge-Kutta : cas matriciel et

formalisation

Le chapitre 5 a permis d’introduire une m´ethodologie g´en´erique permettant de bor-ner les erreurs d’arrondi de m´ethodes de Runge-Kutta explicites appliqu´ees `a des sys-t`emes lin´eaires scalaires. Nous ´etendons cette m´ethodologie aux syssys-t`emes lin´eaires ma-triciels de la forme y=Ay (avec A une matrice carr´ee). Il existe en effet de nombreux cas d’utilisation de ce type d’´equations pour mod´eliser des probl`emes physiques,e.g.en science du nucl´eaire [12] ou en m´ecanique quantique [172]. Nous proposons de plus une formalisation en Coq de l’ensemble des r´esultats dans le cas matriciel, ainsi que de leur application `a des m´ethodes de Runge-Kutta classiques. Nous utilisons Flocq [37, 38] et les matrices de la biblioth`eque Mathematical Components [144].

La premi`ere ´etape importante est la formalisation d’´el´ements d’analyse matricielle en Coq. La biblioth`eque Mathematical Components [144] est riche d’une biblioth`eque de vecteurs et matrices comportant un nombre important de r´esultats (voir section 2.2.3).

Il faut n´eanmoins que nous formalisions l’impl´ementation des op´erations matricielles en arithm´etique `a virguleflottante ainsi que des bornes sur les erreurs d’arrondi associ´ees.

Cette ´etape de la formalisation est la plus technique car elle repose sur des manipulations fines de matrices, de vecteurs et de normes qui leur sont associ´ees.

La seconde ´etape consiste `a v´erifier formellement les r´esultats g´en´eriques permettant de construire les erreurs locales et globales associ´ees aux impl´ementations de m´ethodes de Runge-Kutta. Les d´emonstrations de ces r´esultats suivent des raisonnements relative-ment naturels et pr´esentent assez peu de difficult´es techniques. Elles peuvent cependant s’av´erer fastidieuses et calculatoires, ce qui peut conduire `a des erreurs de raisonnement que l’usage de Coq permet de mieux contrˆoler.

Enfin, la derni`ere ´etape de la formalisation consiste `a instancier les r´esultats aux m´ethodes d’Euler et de Runge-Kutta 2. Ces applications sont calculatoires et tr`es diffi-ciles `a mener `a la main. L’assistant de preuves Coq s’impose l`a encore comme un alli´e.

97

6.1. HYPOTH`ESES ET NOTATIONS 98