Corrigé

import matplotlib.pyplot as plt
import csv
susceptibles = 100000
malades = 1
gueris = 0
morts = 0
p_contamination = 0.000005 # probabilité de contamination par jour, prendre 0.2 pour la version avancée
p_guerison = 0.1 # probabilité de guérison par jour
p_deces = 0.0001 # probabilité de deces par jour
nb_rencontre = 10 # nombres de personnes rencontrées en moyenne par jour (avec lesquelles une transmission serait possible)
courbe_infection = []
duree = 50 # nombre de jours consideres
for i in range(duree):

    # modele de base 
    infections = p_contamination * malades * susceptibles
    guerisons = p_guerison * malades
    deces = p_deces * malades

    ## une version un peu plus élaborée qui tient compte du pourcentage de malades
    ## dans nos contacts plutôt que du nombre total de malades pour déterminer le risque d'être infecté. 
    # infections = p_contamination * malades/(malades+gueris+susceptibles) *nb_rencontre * susceptibles


    # pour éviter les nombres négatifs dus à la méthode d'Euler (à ajouter ensuite)
    infections = min(infections,susceptibles)
    deces = min(deces,malades)
    guerisons = min(guerisons,malades)


    susceptibles = susceptibles - infections
    malades = malades + infections - deces - guerisons
    morts = morts + deces
    gueris = gueris + guerisons
    courbe_infection.append(infections)

# on imprime le nombre de personne appartenant a chaque categorie
print("Susceptibles:", susceptibles)
print("Malades:", malades)
print("Guéris:", gueris)
print("Morts:",morts)
Susceptibles: 1266.2603561594362
Malades: 19853.258506438633
Guéris: 78802.678458943
Morts: 78.80267845894298
# on fait un graphic du nombre d'infections
plt.plot(courbe_infection,'-')
plt.xlabel('jours')
plt.ylabel("nombres d'infections")
plt.show()

cascumul = []
ncas = []
date = []
with open("covid_vd.csv") as covid_file:
    reader = csv.reader(covid_file)
    for row in reader:
        date.append(row[0])
        if row[4]== '':
            cascumul.append(0)
        else:
            cascumul.append(int(row[4]))
            ncas.append(cascumul[-1]-cascumul[-2])
# on affiche la vraie courbe
plt.plot(cascumul)
plt.show()