🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_245cvmn_245.py
Version 1.0.0
Date de création 02/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Modéliser et simuler l’évolution des populations de 5 espèces animales dans un écosystème de safari.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script utilise le modèle mathématique de Lotka-Volterra généralisé pour simuler les interactions (prédation, compétition, symbiose) entre cinq espèces : Lion, Éléphant, Girafe, Zèbre et Rhinocéros. Il calcule l’évolution des populations au cours du temps, identifie les points d’équilibre théoriques et analyse leur stabilité mathématique.
📌 Problème résolu
Il permet de prédire si un écosystème complexe est viable à long terme ou si certaines espèces risquent l’extinction en fonction de leurs taux de croissance et de leurs interactions mutuelles.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.8+
OS cible Tous (Windows / Linux / MacOS)
Mode d’exécution CLI / Script autonome
📦 Dépendances / Librairies
numpy : Calcul matriciel et gestion des vecteurs.
scipy.integrate (odeint) : Résolution d’équations différentielles ordinaires.
scipy.optimize (fsolve) : Recherche de racines pour trouver les points d’équilibre.
matplotlib.pyplot : Génération de graphiques de visualisation.
📥 ENTRÉES (INPUTS)
📂 Variables de configuration (Hardcodées)
# Nom Type Obligatoire Description Exemple
1 R0 list ✅ Oui Populations initiales [50, 800, …]
2 r_vec list ✅ Oui Taux de croissance intrinsèques [0.1, 0.05, …]
3 A_matrix list[list] ✅ Oui Matrice d’interaction 5×5 [[-0.005, …], …]
4 SPECIES list ✅ Oui Noms des espèces [« Lion », …]
📤 SORTIES (OUTPUTS)
📂 Données en sortie
Type Description
Graphique (Plot) Courbes d’évolution des populations (N vs Temps).
Console (Logs) Liste des points d’équilibre stables calculés avec les valeurs finales par espèce.
🧱 STRUCTURE DU SCRIPT
script_245cvmn_245.py
│
├── 📌 IMPORTS (numpy, scipy, matplotlib)
├── 📌 CLASSE SafariSimulator (Cœur du modèle)
│ ├── __init__() → Initialisation des paramètres.
│ ├── lotka_volterra_model() → Définition du système d’EDO.
│ ├── run_simulation() → Intégration numérique.
│ ├── find_equilibria() → Calcul des points fixes.
│ ├── analyze_stability() → Analyse via la Jacobienne.
│ └── plot_results() → Visualisation.
└── 📌 MAIN / EXECUTION (Paramétrage et lancement)
🔧 DÉTAIL DES FONCTIONS PRINCIPALES
Fonction Paramètres Retour Rôle
lotka_volterra_model(N, t) N (array), t (float) dNdt (array) Calcule la dérivée de la population à l’instant t.
run_simulation(t_max, pts) float, int tuple(t, result) Résout l’équation différentielle sur la durée définie.
analyze_stability(eq) array bool Détermine si un équilibre est stable via les valeurs propres de la Jacobienne.
🔄 LOGIQUE / ALGORITHME
Initialisation : Chargement des populations de départ et de la matrice de « destin » (interactions).
Intégration : Utilisation de odeint pour calculer pas à pas l’évolution selon la formule :
dtdN=N⋅(r+A⋅N)
Analyse de point fixe : Résolution de r+AN=0.
Vérification de stabilité : Un équilibre est marqué « Stable » si la partie réelle de toutes les valeurs propres de la matrice Jacobienne est strictement négative.
Rendu : Génération du graphique et affichage des statistiques en console.
✅ CONTRAINTES & RÈGLES MÉTIER
Non-négativité : Le script utilise np.maximum(N, 1e-10) pour empêcher mathématiquement une population de devenir négative (ce qui serait physiquement impossible).
Interactions : La matrice A définit les relations : une valeur négative simule une compétition ou prédation, une valeur positive une coopération (rarement utilisée ici pour les proies).
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python script_245cvmn_245.py
📋 Sortie attendue (Console)
Plaintext
Points d’équilibre stables trouvés:
Équilibre 1: {‘Lion’: 22.4, ‘Éléphant’: 750.2, …}
Simulations terminées.
🧪 TESTS ATTENDUS
Stabilité du Lion : Vérifier si la population de Lions ne s’effondre pas si le Zèbre (proie principale) disparaît.
Convergence : Vérifier que les courbes tendent vers les lignes en pointillés (équilibres) à t>80.




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