Livre_silo 30 août 2013 16:32 Page 240
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
240
Informatique pour tous
et enfin :
y k+1 = y k +
h
6
(F (t k , y k ) + 2F (t k + h/2, α k ) + 2F (t k + h/2, β k ) + F (t k+1 , γ k )) .
Avec h = 1, l’approximation de la solution exacte est spectaculairement bonne, comme le montre la
figure 9.15.
exp3RK4.pdf
Figure 9.15
La méthode de Runge-Kutta d’ordre 4 pour y ′ = y avec y(0) = 1, pour h = 1
Exercice 9.9 Si z est la solution exacte d’une équation différentielle sur [a, b] et [y 0 , ..., yn] est la suite
des valeurs approchées de cette solution en a = t 0 < · · · < tn = b, on définit l’erreur d’approximation
comme le maximum des |z(t k ) − y k | pour 0 ⩽ k ⩽ n.
1 Écrire une fonction prenant en entrée z, y et t et renvoyant l’erreur d’approximation.
2 Tester sur des cas simples, avec différents schémas (Euler, Heun, Runge-Kutta et enfin le résultat fourni
par odeint).
On vérifiera en particulier avec l’exemple de la fonction exponentielle.
Exercice 9.10 Les flottants Python possèdent 52 bits significatifs. En faisant l’hypothèse que l’erreur
commise après une itération dans la méthode de résolution est de l’ordre de 2 −52 puis qu’il n’y a plus
d’erreur d’approximation, évaluer à partir de quel t on a y(t) de l’ordre de 1 (début de l’explosion).
Vérifier ce calcul « brutal » avec l’équation y ′′ = −2y ′ + 3y et des conditions initiales bien choisies :
prévoir le moment de la divergence, puis tester.
Exercice 9.11 avec corrigé * La résolution numérique de l’équation y ′′ = −2y ′ + 3y avec les conditions
initiales y(0) = 1 et y ′ (0) = −3 produit les résultats représentés figure 9.16.
Tenter une explication. Que doit-il se passer avec l’équation translatée y ′′ = −2y ′ + 3y − 1 sous les
conditions initiales y(0) =
4
3
et y ′ (0) = −3 ? Vérifier !
Précédent

- 253/402

Suivant