script_245cvmn_245.py

49,00 

Modéliser et simuler l’évolution des populations de 5 espèces animales dans un écosystème de safari.

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

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

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

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