script_229cvmn_229.py

49,00 

Simuler et visualiser la propagation d’une épidémie au sein d’une population fermée via le modèle compartimental SIR.

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

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

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

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