• Aucun résultat trouvé

Le tableau 5.3 synth´etise les valeursfinales deC,D etM pour les impl´ementations na¨ıves des m´ethodes d’Euler, de RK2 et de RK4 enbinary64.

Tableau 5.3 – Synth`ese des constantes d’erreurs locales pour Euler, RK2 et RK4

M´ethode C D M r´esultat

Euler 9,01u 1,01 2(1ξ2u) lemme 5.5 RK2 24,03u 1,01 2(15,01uξ ) lemme 5.6 RK4 54,47u 5,34 13u lemme 5.7

5.5 Erreurs globales

En section 5.4, nous avons exhib´e des bornes sur l’erreur locale de m´ethodes clas-siques. Comme indiqu´e en section 5.2, l’´etape suivante consiste `a borner l’erreur d’ar-rondi globale de ces mˆemes m´ethodes. Nous prouvons tout d’abord, en section 5.5.1, que nous pouvons d´eduire une borne d’erreur globale `a partir d’une borne sur les erreurs locales relatives de toutes les it´erations pr´ec´edentes. Nous en d´eduisons ensuite, en sec-tion 5.5.2, les bornes d’erreurs globales associ´ees aux m´ethode d’Euler, de Runge-Kutta 2 et de Runge-Kutta 4.

5.5.1 Passage des erreurs locales aux erreurs globales

Cette section est vou´ee au lien de d´ependance entre erreurs locales et globales.

L’analyse propos´ee inclut la gestion des d´epassements de capacit´e inf´erieurs lors du passage des erreurs locales aux erreurs globales.

Tout d’abord, nous prouvons un lemme auxiliaire et relativement simple : Lemme 5.8. Soit C ⩾0, ρ⩾0. Supposons que 0<Cu+ρ. Alors, pour tout n∈N:

(Cu+ρ)n+1�ε0+nCu∣y0

Cu+ρ�+Cuρn∣y0∣ ⩽(Cu+ρ)n+1�ε0+ (n+1)Cu∣y0∣ Cu+ρ�. D´emonstration. En simplifiant par (Cu+ρ)n+1ε0 de chaque cˆot´e de l’in´egalit´e, il reste

`a prouver :

(Cu+ρ)n+1nCu∣y0

Cu+ρ+Cuρn∣y0∣ ⩽(Cu+ρ)n+1(n+1)Cu∣y0∣ Cu+ρ. En simplifiant par (Cu+ρ)n+1nCuCu+y0ρ, il reste `a prouver que :

Cuρn∣y0∣ ⩽(Cu+ρ)n+1Cu∣y0∣ Cu+ρ.

Cela est trivialement vrai si y0=0 ou C =0. Dans les autres cas, il reste `a prouver : ρn ⩽(Cu+ρ)n+1 1

Cu+ρ = (Cu+ρ)n.

CommeC ⩾0, l’in´egalit´e est v´erifi´ee, ce qui ach`eve la d´emonstration.

Le th´eor`eme qui suit permet d’obtenir une borne sur l’erreur d’arrondi globale d’une m´ethode donn´ee `a partir de toutes les erreurs locales pr´ec´edentes. Dans la section 5.4, la borne sur l’erreur locale `a l’it´erationn d´epend de l’occurrence ou non de d´epassements de capacit´e inf´erieurs. Le caract`ere stable des m´ethodes ´etudi´ees permet en fait de montrer que, tant que la derni`ere erreur locale n’est pas impact´ee par les d´epassements de capacit´e inf´erieurs, il en est de mˆeme pour l’erreur globale.

Th´eor`eme 5.9. Passage des erreurs locales aux erreurs globales

Soit h∈F, λ∈ R. Soit C ⩾ 0, D ⩾0, M > 0. Consid´erons une m´ethode de Runge-Kutta dont la fonction de stabilit´e est R(h,λ). Soit (ỹn)n∈N la suite des solutions calcul´ees par cette m´ethode. Soient (εn)n∈N et (En)n∈N les suites des erreurs locales et globales associ´ees `a l’impl´ementation de cette m´ethode. Supposons que :

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

● ∀n∈Nn⩽Cu∣�yn1∣+Dη;

● 0<Cu+∣R(h,λ)∣<1.

Alors :

● ∀n,∣ ̃yn∣ ⩾M⇒ ∣En∣ ⩽(Cu+∣R(h,λ)∣)n �ε0+nCuCu+∣Ry(0h,λ )∣�;

● ∀n,∣En∣ ⩽(Cu+∣R(h,λ)∣)n�ε0+nCu+∣R(h,λ)∣Cuy0 �+nDη.

D´emonstration. Nous proc´edons par induction sur n. Pour n=0, nous avons :

∣E0∣=ε0= (Cu+∣R(h,λ)∣)0�ε0+0 Cu∣y0

Cu+∣R(h,λ)∣�+0Dη et les deux conclusions du th´eor`eme sont trivialement vraies.

Supposons que le r´esultat est vrai pour un certainn∈N.

● Supposons que ∣�yn+1∣ ⩾M.

Par application du lemme 5.1, nous avons ∣ ̃yn∣ ⩾ M. Essayons maintenant de borner ∣En+1∣par simple d´epliage des d´efinitions d’erreurs donn´ees par les ´equa-tions (6.4) et (6.5) et via une in´egalit´e triangulaire :

∣En+1∣ ⩽ ∣�yn+1−R(h,λ)ỹn∣+∣R(h,λ)ỹn−R(h,λ)yn∣=εn+1+∣R(h,λ)∣∣En∣. Nous bornons εn+1 en utilisant l’hypoth`ese du th´eor`eme :

εn+1⩽Cu∣ ̃yn∣ ⩽Cu(∣ ̃yn−yn∣+∣yn∣) =Cu∣En∣+Cu∣R(h,λ)∣n∣y0∣. (5.8) Puis, via l’´equation (5.8) :

5.5. ERREURS GLOBALES 90

∣En+1∣ ⩽

Cu∣En∣+Cu∣R(h,λ)∣n∣y0∣+∣R(h,λ)∣∣En∣= (Cu+∣R(h,λ)∣)∣En∣+Cu∣R(h,λ)∣n∣y0∣. En utilisant l’hypoth`ese d’induction, nous obtenons :

∣En+1∣ ⩽(Cu+∣R(h,λ)∣)(Cu+∣R(h,λ)∣)n�ε0+n Cu∣y0∣ Cu+∣R(h,λ)∣�

+ Cu∣R(h,λ)∣n∣y0

= (Cu+∣R(h,λ)∣)n+1 �ε0+n Cu∣y0

Cu+∣R(h,λ)∣�+ Cu∣R(h,λ)∣n∣y0∣. Puis, en appliquant le lemme 5.8 avec ρ=∣R(h,λ)∣:

∣En+1∣ ⩽(Cu+∣R(h,λ)∣)n+1 �ε0+ (n+1) Cu∣y0∣ Cu+∣R(h,λ)∣�.

● Supposons que ∣�yn+1∣est quelconque.

En bornantεn+1 `a partir des hypoth`eses :

∣En+1∣ ⩽εn+1+∣R(h,λ)∣∣En∣ ⩽Cu∣ ̃yn∣+Dη+∣R(h,λ)∣∣En

⩽Cu(∣ ̃yn−yn∣+∣yn∣) +Dη+∣R(h,λ)∣∣En

=Cu∣En∣+Cu∣R(h,λ)∣n∣y0∣+Dη+∣R(h,λ)∣∣En

= (Cu+∣R(h,λ)∣)∣En∣+Cu∣R(h,λ)∣n∣y0∣+Dη.

En utilisant l’hypoth`ese d’induction, nous obtenons :

∣En+1∣ ⩽(Cu+∣R(h,λ)∣)

×�(Cu+∣R(h,λ)∣)n�ε0+nCu+∣R(h,λ)∣Cu∣y0 �+nDη�+Cu∣R(h,λ)∣n∣y0∣+Dη

= (Cu+∣R(h,λ)∣)n+1 �ε0+nCu+∣R(h,λ)∣Cu∣y0

+Cu∣R(h,λ)∣n∣y0∣+ (Cu+∣R(h,λ)∣)nDη+Dη

⩽(Cu+∣R(h,λ)∣)n+1 �ε0+nCuCu∣y+∣R(h,λ0 )∣�+Cu∣R(h,λ)∣n∣y0∣+ (n+1)Dη.

En appliquant le lemme 5.8 :

∣En+1∣ ⩽(Cu+∣R(h,λ)∣)n+1 �ε0+ (n+1) Cu∣y0

Cu+∣R(h,λ)∣�+ (n+1)Dη.

Ce th´eor`eme permet de borner l’erreur d’arrondi globale de fa¸con g´en´erique, mˆeme en pr´esence de d´epassements de capacit´e inf´erieurs. Bien que les erreurs locales s’accu-mulent au cours des it´erations, l’erreur globale ne diverge pas de mani`ere trop rapide.

Le ph´enom`ene s’explique par la propri´et´e de stabilit´e lin´eaire : il y a un effet d’amortis-sement des premi`eres erreurs dˆu `a la multiplication par ∣R(h,λ)∣<1. Ce r´esultat induit donc une relation int´eressante entre la stabilit´e au sens de l’analyse num´erique et la stabilit´e au sens de l’arithm´etique `a virgule flottante. En l’absence de d´epassement de capacit´e inf´erieur, le th´eor`eme 5.9 donne ´egalement une borne sur l’erreur relative :

� ̃yn−yn

yn � ⩽ �Cu+∣R(h,λ)∣

∣R(h,λ)∣ �

n

�� ̃y0−y0

y0 �+n Cu

Cu+∣R(h,λ)∣�.

Si, de plus, Cu≪ ∣R(h,λ)∣, l’expression se r´eduit `a :

� ̃yn−yn

yn � ≲ � ̃y0−y0

y0 �+n Cu

∣R(h,λ)∣. (5.9)

Les r´esultats de la section 5.4 montrent qu’en pratique la constante C est de petite taille (au plus 54,47 pour les m´ethodes de Runge-Kutta consid´er´ees). Faire l’hypoth`ese Cu ≪ ∣R(h,λ)∣ est donc raisonnable et permet d’obtenir une borne d’erreur relative proportionnelle au nombre n d’it´erations.

Le th´eor`eme 5.9 est un cas particulier du th´eor`eme 6.12 qui correspond au cas matriciel et a ´et´e formalis´e en Coq.

5.5.2 Bornes sur l’erreur globale de m´ ethodes de Runge-Kutta

En section 5.4, nous avons exhib´e des bornes sur les erreurs locales de certaines m´e-thodes de Runge-Kutta. Puis, en section 5.5.1, nous avons montr´e qu’il ´etait possible de borner l’erreur d’arrondi globale `a partir des bornes d’erreurs locales des it´erations pr´ec´edentes (th´eor`eme 5.9). L’obtention de bornes d’erreurs globales est donc un pro-c´ed´e m´ecanique et presque imm´ediat. Dans cette section, nous bornons l’erreur globale induite par les m´ethodes d’Euler, de Runge-Kutta 2 et de Runge-Kutta 4. Comme dans la section 5.4.2, le format consid´er´e est binary64.

Nous commen¸cons par la m´ethode d’Euler, pour laquelle il faut instancier le th´eo-r`eme 5.9 avec les constantes du lemme 5.5,i.e. C=9,01, D=1,01 et M = 2(1−2u)ξ . Th´eor`eme 5.10. Borne sur l’erreur globale de la m´ethode d’Euler

Soit h ∈ F, λ ∈ R. Supposons que −2 ⩽ hλ ⩽ −2100, 9,01u+∣1+hλ∣ < 1 (stabilit´e) et 260⩽h⩽1. Alors, dans le format binary64 :

● ∀n,∣En∣ ⩽(9,01u+∣1+hλ∣)n�ε0+n9,01u9,01u∣y+∣1+0 �+1,01nη;

● ∀n,∣ ̃yn∣ ⩾ 2(1ξ2u) ⇒ ∣En∣ ⩽(9,01u+∣1+hλ∣)n�ε0+n9,01u9,01u+∣1y+0 �.

De mˆeme, pour la m´ethode de Runge-Kutta d’ordre 2, il suffit d’instancier le th´eo-r`eme 5.9 en utilisant les constantes donn´ees par le lemme 5.6.

5.6. GESTION DES D´EPASSEMENTS DE CAPACIT´E SUP´ERIEURS 92