🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script script_229cvmn_229.py
Version 1.0.0
Date de création 02/03/2026
Auteur / Demandeur IA Générée (Gemini)
Objectif principal Simuler et visualiser la propagation d’une épidémie au sein d’une population fermée via le modèle compartimental SIR.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script modélise mathématiquement l’évolution de trois catégories de population au cours du temps : les Susceptibles (sains), les Infectés et les Rétablis (immunisés ou décédés). Il résout un système d’équations différentielles ordinaires et génère un graphique temporel montrant l’évolution de la courbe épidémique.
📌 Problème résolu
Il permet de prédire le pic épidémique, la durée d’une infection et l’impact du taux de transmission (β) et de rétablissement (γ) sur l’immunité collective, en calculant notamment le nombre de reproduction de base (R0).
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Windows / Linux / MacOS
Mode d’exécution CLI / Script autonome
📦 Dépendances / Librairies
# Librairies externes (pip install)
numpy (Calcul matriciel)
scipy (Intégration numérique via odeint)
matplotlib (Visualisation graphique)
📥 ENTRÉES (INPUTS)
# Nom Type Obligatoire Description Exemple
1 N int ✅ Oui Taille totale de la population 1000
2 I0 int ✅ Oui Nombre initial d’infectés 1
3 R0 int ✅ Oui Nombre initial de rétablis 0
4 beta float ✅ Oui Taux de transmission 0.3
5 gamma float ✅ Oui Taux de rétablissement 0.071
📤 SORTIES (OUTPUTS)
# Nom Type Description Exemple
1 time_points ndarray Vecteur des points temporels (jours) [0, 0.32, …]
2 solution ndarray Matrice des populations [S, I, R] par pas de temps [[999, 1, 0], …]
3 Graphique Image Fenêtre Matplotlib affichant les courbes SIR (Fenêtre contextuelle)
🧱 STRUCTURE DU SCRIPT
script_229cvmn_229.py
│
├── 📌 IMPORTS (numpy, scipy.integrate, matplotlib)
├── 📌 CLASSE SIR_Simulation
│ ├── __init__() → Initialisation des paramètres et calcul du R0
│ ├── _sir_equations() → Définition du système différentiel
│ ├── run_simulation() → Résolution numérique (odeint)
│ └── plot_results() → Génération du rendu graphique
└── 📌 MAIN (Définition des constantes et exécution)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
_sir_equations(y, t) y: list, t: float list Définit les dérivées dS/dt, dI/dt, dR/dt.
run_simulation(t_max, steps) t_max: int, steps: int tuple Calcule la trajectoire de l’épidémie sur t_max jours.
plot_results(t, sol) t: array, sol: array None Affiche l’évolution des compartiments S, I, R.
🔄 LOGIQUE / ALGORITHME
Initialisation : Calcul de S0 (Susceptibles restants) et du R0=β/γ.
Intégration : Utilisation de l’algorithme LSODA (via odeint) pour résoudre :
dS/dt=−βSI/N
dI/dt=βSI/N−γI
dR/dt=γI
Visualisation : Plotting des vecteurs de résultats sur un axe temporel.
✅ CONTRAINTES & RÈGLES MÉTIER
Règle 1 : La population totale N doit rester constante (S+I+R=N).
Règle 2 : Le R0 doit être supérieur à 1 pour qu’une épidémie se propage.
Règle 3 : Les valeurs de population ne peuvent pas être négatives (garanti par le modèle mathématique).
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu Statut
1 Cas nominal Beta=0.3, Gamma=0.1 Courbe en cloche pour I ⬜ À tester
2 Immunité collective I0=0 Ligne droite (pas d’épidémie) ⬜ À tester
3 Rétablissement rapide Gamma > Beta Diminution immédiate de I ⬜ À tester
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python script_229cvmn_229.py
📋 Exemple de sortie console attendue
Plaintext
Le nombre de reproduction de base (R0) est : 4.20




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