plot_phase_space.py

49,00 

Modéliser et visualiser la dynamique des populations Proie-Prédateur via les équations de Lotka-Volterra.

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

🔷 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.

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

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