script_312cvmn_312.py

49,00 

Simuler et visualiser dynamiquement la croissance, la reproduction et la compétition spatiale d’une population végétale.

UGS : script_312cvmn_312.py Catégorie : Étiquette :

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_312cvmn_312.py

Version 1.0.0

Date de création 09/03/2026

Auteur / Demandeur IA Générée (Gemini)

Objectif principal Simuler et visualiser dynamiquement la croissance, la reproduction et la compétition spatiale d’une population végétale.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Ce script simule l’évolution d’une forêt sur un plan en 2D. Il gère le cycle de vie individuel de chaque plante (naissance, croissance logistique, reproduction par dispersion de graines, et mort par vieillesse ou compétition) et affiche le résultat sous forme d’une animation interactive.

📌 Problème résolu

Il modélise les systèmes biologiques complexes et les dynamiques de populations où les ressources (l’espace) sont limitées, permettant de visualiser comment une colonie végétale s’étend ou s’auto-régule.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Tous (Windows / Linux / MacOS)

Mode d’exécution Script graphique (Matplotlib Animation)

📦 Dépendances / Librairies

numpy : Calculs mathématiques et génération aléatoire.

matplotlib : Moteur de rendu graphique et animation.

📥 ENTRÉES (INPUTS)

📂 Fichiers / Sources de données en entrée

Aucun fichier externe : Le script utilise des paramètres d’initialisation par défaut dans la classe ForestSimulation (10 plantes initiales sur une grille 100×100).

📤 SORTIES (OUTPUTS)

📂 Fichiers / Données en sortie

Visualisation graphique : Une fenêtre interactive Matplotlib affichant l’animation en temps réel.

Données dynamiques : Coordonnées (x, y), tailles (croissance) et couleurs (âge) mises à jour à chaque frame.

🧱 STRUCTURE DU SCRIPT

script_312cvmn_312.py

├── 📌 IMPORTS (numpy, matplotlib)

├── 📌 CLASSE Plant (Modèle de l’individu)

├── 📌 CLASSE ForestSimulation (Moteur de la simulation)

├── 📌 FONCTIONS DE MISE À JOUR (update_plot)

└── 📌 MAIN (Initialisation FuncAnimation et plt.show())

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

Plant.grow() Aucun None Augmente la taille et l’âge de la plante.

Simulation.update() Aucun None Gère la reproduction, la mortalité et la compétition.

update_plot(frame) frame: int scatter Met à jour les données du graphique pour l’animation.

🔄 LOGIQUE / ALGORITHME

INITIALISATION → Création de N plantes à des positions aléatoires.

BOUCLE D’ANIMATION :

Croissance : Chaque plante grandit selon une courbe logistique.

Reproduction : Si l’âge > 5, probabilité de 20% de créer une graine à proximité (loi exponentielle).

Survie :

Si âge > 50 → Mort.

Si deux plantes se chevauchent → La plus petite/jeune est supprimée (Compétition).

RENDU → Mise à jour des points sur le graphique (Taille = Volume, Couleur = Âge).

🚨 GESTION DES ERREURS

Volumétrie : Le script ne limite pas explicitement le nombre de plantes. En cas de surpopulation massive, un ralentissement de l’animation est à prévoir (complexité O(n2) pour la détection de collision).

✅ CONTRAINTES & RÈGLES MÉTIER

Règle 1 : Les graines sont dispersées autour du parent mais restent dans les limites de la grille (modulo).

Règle 2 : La croissance est plafonnée par max_size (propre à chaque plante).

Règle 3 : La compétition est binaire : un contact physique entraîne la mort immédiate du plus faible.

🧪 TESTS ATTENDUS

# Cas de test Entrée Résultat attendu

1 Nominal Lancement standard Population stable ou croissante avec animation fluide.

2 Extinction initial_plants=1 Probabilité forte que la colonie disparaisse avant reproduction.

3 Surpopulation initial_plants=500 Ralentissement du calcul des collisions.

📝 EXEMPLE D’UTILISATION

▶️ Lancement en ligne de commande

Bash

python script_312cvmn_312.py

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “script_312cvmn_312.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *