Propagation du Coronavirus en Python

Les différentes décisions prises dans beaucoup de Pays sur le confinement, ou sur d’autres sujets (achats de masques médicaments, etc..) sont basées sur des projections, ces dernières sont obtenues par le biais de simulations, et ces simulations suivent un modèle mathématique, et sont pour la plupart fournies par le prestigieux Imperial College of London.

Cela montre en quoi les mathématiques associées à l’informatique peuvent être un merveilleux outil au service de l’humanité.

Dans le cas d’un virus comme le Covid-19, la croissance est en effet exponentielle au début. Mais il est clair que cela ne peut pas continuer éternellement. À un moment donné, le virus manquera de ressources, c’est-à-dire de personnes susceptibles d’être infectées, car une grande partie de la population l’est déjà ou l’a déjà été. Ensuite, le nombre de cas n’augmente que de façon linéaire, c’est-à-dire de façon constante chaque jour. Et, encore plus tard, la croissance de la courbe s’arrête complètement. C’est exactement ce que décrit l’équation logistique ci-dessus :

Source : pourlascience – À noter que cette fonction décrit de façon approximative la propagation du virus, c’est la seule que j’ai pu trouver sur internet.

J’ai voulu comprendre le sens mathématique de ces simulations, pour les reproduire moi même en Python, en considérant les paramètres suivants :

  • X indique le temps, supposons qu’il commence au jour 0 et s’arrête après 50 jours.
  • X0 indique le moment où la croissance exponentielle s’arrête, disons après 30 jours.
  • L indique la valeur maximale pouvant être par la courbe (nombre de cas), disons 4.5 10^-4 de la population française, soit 30000
  • K indique la pente de la courbe : disons 0.5
Résultat de la simulation, après le 20ème jour d’apparition du virus, la croissance devient exponentielle avant de se stabiliser au 40ème jour

Ceci est une projection, basée sur une seule simulation, autrement dit, un seul scénario, mais il est tout à fait possible d’en simuler plusieurs, ce qui est fait d’ailleurs par l’Imperial College of London.

Les résultats sont visibles ci-dessous :

Le détail des scénarios est mentionnés dans le code Python.

Bien sûr, les simulations officielles sont basées sur beaucoup plus de détails et de paramètres, cet article est purement écrit dans un but pédagogique.

Code Python :