🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script plot_phase_space.py
Version 1.0.0
Date de création 02/03/2026
Auteur / Demandeur Gemini (IA Générée)
Objectif principal Modéliser et visualiser la dynamique des populations Proie-Prédateur via les équations de Lotka-Volterra.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script définit une classe EcoSimulator qui résout numériquement les équations différentielles de Lotka-Volterra. Il génère un portrait de phase incluant les trajectoires de population, le champ de vecteurs (flux) et les points d’équilibre théoriques.
📌 Probleme résolu
Il permet de prédire et de visualiser l’évolution cyclique de deux espèces en interaction (ex: lynx et lièvres) en fonction de paramètres biologiques comme le taux de reproduction et de prédation.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution Script autonome / Module de simulation
📦 Dépendances / Librairies
numpy : Calcul numérique et gestion des tableaux.
scipy : Intégration numérique de l’équation différentielle (solve_ivp).
matplotlib : Génération des graphiques et du champ de vecteurs.
📥 ENTRÉES (INPUTS)
# Nom Type Obligatoire Description Exemple
1 params dict ✅ Oui Coefficients α,β,γ,δ {‘alpha’: 1.1, …}
2 z0 list ✅ Oui Populations initiales [x0,y0] [10, 5]
3 t_span list ✅ Oui Intervalle de temps [tstart,tend] [0, 50]
📤 SORTIES (OUTPUTS)
# Nom Type Description Exemple
1 sol Bunch Objet contenant les temps et les états calculés sol.y (données)
2 Graphique Image Portrait de phase affiché via Matplotlib Fenêtre interactive
🧱 STRUCTURE DU SCRIPT
plot_phase_space.py
📌 IMPORTS : numpy, scipy.integrate, matplotlib.pyplot
📌 CLASSE EcoSimulator
__init__ : Initialise les paramètres et l’équilibre.
model : Définit le système d’équations différentielles.
run : Exécute l’intégration numérique.
plot_phase_space : Gère toute la partie graphique.
📌 MAIN (Exemple d’utilisation) : Instanciation et affichage.
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
model(t, z) t (float), z (list) list Calcule dx/dt et dy/dt.
run(z0, t_span) z0, t_span ODE Solution Résout le système via la méthode ‘RK45’.
plot_phase_space(sol) sol (OdeResult) None Génère le graphique (Quiver + Courbes).
🔄 LOGIQUE / ALGORITHME
Initialisation : Calcul du point d’équilibre stable où dx/dt=0 et dy/dt=0.
Intégration : Utilisation de l’algorithme Runge-Kutta d’ordre 4(5) pour calculer l’évolution temporelle.
Visualisation :
Création d’une grille (meshgrid) pour le champ de vecteurs.
Tracé des isoclines (lignes où une population ne change pas).
Superposition de la trajectoire spécifique partant de z0.
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Équilibre exact z0 = eq Trajectoire immobile (point unique) ⬜ À tester
2 Paramètres nuls alpha: 0 Extinction de la population ⬜ À tester
3 Pas de prédateurs beta: 0 Croissance exponentielle des proies ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python plot_phase_space.py
💻 Exemple d’appel en tant que module
Python
from plot_phase_space import EcoSimulator
sim = EcoSimulator({‘alpha’: 1.0, ‘beta’: 0.1, ‘gamma’: 1.5, ‘delta’: 0.75})
result = sim.run(z0=[10, 5], t_span=[0, 100])
sim.plot_phase_space(result)



Avis
Il n’y a pas encore d’avis.