J'aimerai vous solliciter pour cet exercice vu mon niveau de débutant.
L'essentiel de cet exercice vise à la représentation graphique d'un modèle d'évolution de population selon différents scénarios.
Pierre François Verhulst a proposé vers 1840 un modèle d'évolution de population
basé sur la suite logistique.
Le modèle peut être décrit par une formule de récurrence :
v=pt+((k-pt)/k)*r*p
Où pt et pt+1 la population aux temps t et t+1.
K la capacité maximale de l'écosystème
r un coefficient représentant le taux de reproduction de l'espèce
Le but de l'exercice est d'écrire un programme python qui calcule la population en
fonction du temps. Le programme doit demander à l'utilisateur les valeurs de la population initiale p0, de la capacité maximale de l'écosystème K et du taux de reproduction r, ainsi que le nombre de pas pour lesquels l'utilisateur souhaite effectuer le calcul. Les valeurs calculées des couples (temps, population) doivent être sauvegardées dans des variables, enregistrées dans un fichier et affichées.
Première étape
Une interface graphique doit permettre d'afficher l'évolution de la population en
fonction du temps (sous forme de points, ou de ligne). Le programme doit calculer les étendues des valeurs à afficher dans les deux axes, puis effectuer une mise à l'échelle en fonction de la taille du canvas créé et enfin afficher les points correspondant aux différents couples (temps, population) calculés. Une amélioration de l'interface consiste à prévoir des cases à remplir où l'utilisateur renseignera les paramètres et un bouton d'exécution des calculs. Testez votre programme avec r=1 ; p0=100 ; K=500 et calculez jusque t=500.
Deuxième étape
Des exécutions du programme doivent être effectuées avec différents paramètres pour vérifier le bon fonctionnement du programme à l'aide des points suivants :
1) Influence de la valeur de population initiale (différentes valeurs de p0 pour les
mêmes K et r)
2) Influence de la capacité maximale K (différents K pour les mêmes p0 et r)
3) Influence du taux de reproduction, notamment ces 5 valeurs de r : -0,5 ; 0,5 ;
1,8 ; 2,3 ; 2,8
Pour chacun de ces trois cas, il faudra que le programme affiche superposées les
courbes de différents p0 , K et r. À vous d'organiser l'interface qui permet d'effectuer cet affichage de manière conviviale.
Solution:
from tkinter import *
mafen1=Tk()
mafen1.title("capacité de reprodcution")
saisie_ut=StringVar()
resultat1=StringVar()
def lire1():
saisie=case_entree.get()
global k
try:
nombre=float(saisie)
k=nombre*1
resultat1.set(str(k))
mafen1.destroy()
except:
if("," in saisie):
resultat1.set(". comme sépar.decimal")
else:
resultat1.set("Entrez un nombre")
Pour mieux expliquer ce je fais, j'ai créé des fenêtres afin de pouvoir entrer les valeurs permettant de calculer mon modèle. Cependant, j'aurai souhaité plutôt mettre en place des cases en lieu et place des fenêtres pour n'avoir qu'une fenêtre en fin de compte.
1) Donc ma première question c'est comment regrouper dans une seule fenêtre les cases me permettant de calculer mon modèle?
2) ensuite pour tester mon programme, il m'a été demandé de tester les valeurs suivantes:
po=100
k=500
r=1
avec t allant jusqu'à 500
==> pour cette question, il me semble qu'il me faudra mettre en place une boucle, ce que je ne parviens pas à faire afin d'avoir les valeurs de population de 1 à 500 en vue d'obtenir la courbe.
En espérant avoir été plus précis, je vous remercie d'avoir pris le temps de vous intéresser à mon problème.