Informatique TD 4 1
Remettre un compte rendu à la fin de la séance
A. Équation différentielle d’ordre 2
Remarques générales
On utilisera pour les fonctions usuelles et les représentations graphiques, le module pylab de la bibliothèque matplotlib.
On commencera par l’instruction from pylab import *.
Pour les représentations graphiques, on utilisera les commandes :
•xlim(xmin,xmax) et ylim(ymin,ymax) qui déterminent les intervalles de représentation pour les abscisses et les
ordonnées.
•grid() pour créer une grille de fond sur la figure.
•x=linspace(a,b,n), qui crée un tableau à une dimension, ayant n éléments et allant de la valeur de départ a à la
valeur finale b.
•y=f(x) qui crée le tableau image du précédent par la fonction f.
•plot(x,y) qui permet de tracer la courbe d’équation y=f(x) à partir des tableaux précédents.
•show() pour ouvrir une fenêtre et afficher l’image créée.
•close() pour effacer dans la fenêtre l’image précédente.
On s’intéresse dans cet exercice au problème de Cauchy :
(∀t∈I, y00 (t)+2y0(t) + 65 y(t) = 65 t+ 2
y(0) = 4 et y0(0) = −3
1. Méthode mathématique
Résoudre mathématiquement cette équation différentielle. On cherchera une solution particulière " évidente ".
Représenter la solution sur [0,2π].
2. Méthode d’Euler explicite à 2 pas
La méthode d’Euler explicite à 2 pas permet de définir une suite récurrente (yn)d’ordre 2 qui permet de représenter une
approximation de la solution exacte de l’équation différentielle ci-dessus.
On donne un pas de temps h > 0. On pose tn=n h.
Utiliser deux fois la méthode d’Euler explicite sur y0puis sur y00 , avec le pas de temps h, pour déterminer yn+2 en
fonction de yn+1,ynet h.
Utiliser la méthode d’Euler explicite sur y0, avec le pas de temps h, pour déterminer y1en fonction de y(0),y0(0) et h.
Proposer une fonction qui a pour variable d’entrée le pas het qui retourne les deux listes T= [t0, t1, t2, . . .]et Y=
[y0, y1, y2, . . .]sachant que t∈[0,2π].
Représenter la solution approchée et la solution exacte de l’équation différentielle sur un même graphique, en prenant
successivement h= 0.05, h = 0.01 et h= 0.001.
B. Récursivité
1. a. Écrire une fonction récursive qui prend en entrée un entier naturel net retourne n!.
Déterminer la complexité de cet algorithme.
b. Dans l’algorithme ci-dessous, les commandes print permettent de voir le principe d’empilement et de dépilement
de la méthode récursive. Appliquer l’algorithme pour n= 6.