TP d’informatique n°2 R. DUPERRAY Lycée F. BUISSON PTSI
Exercice 1 : Echauffement…..
a) Ecrire une fonction qui calcule la vitesse moyenne d’un mobile connaissant son temps de parcours et la distance parcourue.
b)
Ecrire une fonction qui indique s’il est possible de construire un triangle avec trois segments de mesures données.Exercice 2 : Variables locales et variables globales
On considère le programme suivant :def position_valeur (valeur, liste) :
for i in range(len(liste)) :
if liste[i] = = valeur:
return(i)
return -1
Unevaleur = float(input(« Unevaleur : »))
Uneliste = [1,2,4,8,16,32,64,128,256,512,1024] p =position_valeur(Unevaleur,Uneliste)
if p > 0 :
print (« la valeur est a la position », p) else :
print (« la valeur n’est pas presente »)
a) Repérer le début et la fin de la fonction ainsi que le programme principal.
b) Comment se nomment les variables globales ? Et les locales ? Tester ce programme.
Si la variable est utilisée dans plusieurs fonctions alors elle doit être globale; en revanche, si elle n’est
utilisée que dans une fonction pour des calculs intermédiaires, il faut la considérer comme locale.
Exercice 3 : La suite logistique
Une suite (ou séquence) importante en biologie qui sert de modèle pour décrire l’évolution d’une population est la suite logistique définie de la façon suivante :
Pn+1= k Pn(1− Pn).
Pn indique la taille de la population à la nième génération (ou à l’année n) d’une espèce unique. Pour garder des nombres de taille raisonnable, Pn indiquera la fraction de la population maximale, ainsi 0≤ Pn ≤ 1 . L’équation logistique est ici formulée sous sa forme discrète par opposition à une forme continue (c’est-à-dire une équation différentielle). La forme discrète est bien adaptée pour décrire les populations d’insectes où l’accouplement et la mort se produisent de façon périodique. Les écologistes (les biologistes spécialistes en évolution des populations, terme dont le sens est différent de celui des écologistes militants de la défense de l’environnement) souhaitent prédire la taille d’une population en fonction du temps et se posent les questions suivantes : la population va-t-elle se stabiliser à une valeur limite ? Evolue-va-t-elle de façon périodique ? A-va-t-elle un comportement aléatoire ?
Dans cet exercice, il faudra écrire un programme Python (qui utilisera les fonctions, les listes…) pour calculer les n premiers termes de la séquence avec une population initiale P0 telle que
1) Calculez une trentaine de termes de la séquence pour P0 =1
2 et pour deux valeurs de k telle que 1 ≤ k ≤ 3 (stockez les valeurs dans une liste). Si vous savez le faire, tracez le graphe de chaque séquence (fonction Plot, cf. TP-Python-4). La séquence converge-t-elle ? Recommencez pour une autre valeur de P0 avec toujours 0≤ P0 ≤ 1. La limite dépend-t-elle du choix de P0 ? Du choix de k ? 2) Calculez les termes de la suite pour une valeur de k comprise entre 3,0 et 3,4. Comment se comportent les termes de la série ?
3) Refaire la même chose pour une valeur de k comprise entre 3,4 et 3,5. Que se passe-t-il ?
4) Recommencez pour une valeur de k comprise entre 3,6 et 4. Calculez au moins 100 termes de la série et tracez-la. Comment se comporte la suite ? Que se passe-t-il si vous changez la valeur de P0 de seulement 0,001 ? Ce type de comportement est nommé chaotique et on le retrouve dans l’évolution de populations d’insectes dans certaines circonstances.
Exercice 4 : Intégration numérique
Le concept d’intégrale joue un rôle fondamental en mathématiques et bien sûr dans les sciences naturelles (physique, chimie, sciences de l’ingénieur, biologie etc..). Vous connaissez tous le théorème fondamental du calcul qui permet de calculer l’intégrale d’une fonction :
La difficulté consiste à déterminer la primitive (antiderivative en anglais) F de la fonction f . Il est très souvent difficile voire impossible de déterminer F c’est pourquoi les scientifiques déterminent les intégrales de façon approchée (quand même très précise) par un calcul numérique.
On peut calculer de façon approchée l’intégrale par la méthode dite de Simpson : f x
( )
a b∫
dx ≈( )
b− a 3n f a( )
+ f b( )
+ 4 f a + 2k −1(
(
)
h)
+ 2 k=1 f a(
+ 2kh)
n 2 ( )−1∑
k=1 n 2∑
⎛ ⎝ ⎜⎜ ⎞⎠⎟⎟ Ici, h =( )
b− an et n doit être un entier pair.
L’objectif de cet exercice est d’écrire une fonction Simpson
(
a,b,n)
qui retourne le côté droit de la relation encadrée.Ecrire un programme avec entre autres la fonction Simpson qui permettra d’évaluer 3 2 sin
3x 0
π
∫
dx ,dont la valeur exacte est 2, pour n = 2, 6,12,100,500 . Le programme devra pour chaque cas afficher la valeur approchée de l’intégrale ainsi que l’erreur par rapport à la valeur exacte. Conclusion.