Livre_silo 30 août 2013 16:32 Page 229
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
229
9 – Résolution numérique d’équations différentielles
On importe cette dernière, par exemple via from numpy import *. Ensuite, on obtient le résultat souhaité :
In [7]: 2*array([1,2]) + array([3,4])
Out[7]: array([5, 8])
Exercice 9.4 avec corrigé * Si t1 et t2 sont des array, expliquer la différence entre t1 += t2 et
t1 = t1 + t2.
Tester sur un exemple, en définissant d’abord t1 et t2, ainsi que t3 = t1. L’opération t1 += t2 ne va pas
créer un nouveau tableau numpy (array) : elle va modifier le tableau existant, pointé par t1, mais aussi
par t3. Si on exécute t1 = t1 + t2, un nouveau tableau est créé et t1 pointe maintenant dessus, alors
que t3 pointe sur un tableau qui n’a pas changé.
On teste le programme sur l’équation y
′′ + y = 0, avec les conditions initiales
(y(0), y
′ (0)) = (0, 1). Mathématiquement, la solution est connue — il s’agit de la fonction sin.
Le résultat est représenté figure 9.6. On voit que pour un pas h =
1
100
, les approximations
conduisent à s’écarter de façon sensible de la véritable solution, puisqu’on quitte l’intervalle
[−1, 1]. On peut alors diminuer le pas ou changer de méthode.
pendule-Euler.pdf
Figure 9.6
Méthode d’Euler pour y ′′ + y = 0 avec y(0) = 0 et y ′ (0) = 1, avec un pas égal à
1
100
Précédent

- 242/402

Suivant