0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Modélisation des populations de moustiques

Le script Python modélise la dynamique des populations de moustiques en utilisant des méthodes numériques pour résoudre des équations différentielles. Il compare les résultats de la méthode d'Euler et de Runge-Kutta avec des données réelles, tout en traçant les populations d'œufs, de larves et d'adultes. Les résultats sont visualisés à l'aide de graphiques enregistrés en tant qu'images.

Transféré par

baptiste.r.daniel
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Modélisation des populations de moustiques

Le script Python modélise la dynamique des populations de moustiques en utilisant des méthodes numériques pour résoudre des équations différentielles. Il compare les résultats de la méthode d'Euler et de Runge-Kutta avec des données réelles, tout en traçant les populations d'œufs, de larves et d'adultes. Les résultats sont visualisés à l'aide de graphiques enregistrés en tant qu'images.

Transféré par

baptiste.r.daniel
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

02/06/2025 20:35 poh.

py

~\OneDrive\Documents\Cours\MPSI\[Link]

1 import numpy as np
2 from [Link] import odeint
3 from [Link] import solve_ivp
4 import [Link] as plt
5 import pandas as pd
6
7
8 #Capacité d'accueil surfacique et surface d'étude
9
10 kl_s = 0.059e-2
11 sur = 142e6
12
13
14 #Taux de ponte intrinsèque
15
16 b=5.5
17
18 #Taux de mortalité des oeufs, larves, adultes
19
20 d=0.15
21 dl=0.18
22 da=0.11
23
24
25 #Taux de transfert des oeufs vers larves et larves vers adultes
26
27 s=0.5
28 sl=0.4
29
30
31 #Capacités d'accueil des oeuf et des larves
32
33 ke= kl_s*sur*2
34 kl= kl_s*sur
35
36
37 #Pas et nombre d'itérations
38
39 n=75006
40 h=0.01
41
42
43 #Conditions initiales
44
45 a0=62702.7027027
46 e0=0.0
47 l0=0.0
48
49
50 #Résolution par la méthode d'Euler
51

localhost:51306/ffefa630-8cb0-422d-8994-c35d2b95fa0b/ 1/3
02/06/2025 20:35 [Link]

52 tp = [0]
53 ap = [a0]
54 ep = [e0]
55 lp = [l0]
56
57 for k in range(n):
58 [Link](tp[-1] + h)
59 [Link](ap[-1] + h*(sl*lp[-1]-da*ap[-1]))
60 [Link](ep[-1] + h*((b*ap[-1]*(1-(ep[-1]/ke)))-(s+d)*ep[-1]))
61 [Link](lp[-1]+h*(s*ep[-1]*(1-(lp[-1]/kl))-(sl+dl)*lp[-1]))
62
63
64 #Sysème d'équation
65
66 def system(t, Y, b, d, dl, da, s, sl, ke, kl):
67 e, l, a = Y
68 ap=sl*l-da*a
69 ep=b*a*(1-(e/ke))-(s+d)*e
70 lp=s*e*(1-(l/kl))-(sl+dl)*l
71 return [ep, lp, ap]
72
73
74 #Résolution par la méthode de Runge-Kutta à l'ordre 5 à l'aide du module solve_ivp
75
76 solution = solve_ivp(system, [0, 750], [e0, l0, a0], method='RK45', args=
(b,d,dl,da,s,sl,ke,kl), max_step=h,dense_output=True) #resoudre solveivp a0
77
78
79 #Récupération des solutions de la résolution par Runge-Kutta
80
81 t = solution.t
82 e=solution.y[0]
83 l=solution.y[1]
84 a=solution.y[2]
85
86
87 #Comparaison avec les données réelles
88
89 file='C:\\Users\\bapti\OneDrive\\Documents\\Cours\\MPSI\\Default_Dataset.csv'
90
91 with open(file, 'r', encoding='utf-8') as f:
92 content = [Link]().replace(',', '.')
93
94 temp_file = "fichier_modifie.csv"
95 with open(temp_file, 'w', encoding='utf-8') as f2:
96 [Link](content)
97
98 df = pd.read_csv(temp_file, sep=';', dtype=str)
99
100 for col in [Link]:
101 try:
102 df[col] = df[col].astype(float)
103 except ValueError:
104 pass

localhost:51306/ffefa630-8cb0-422d-8994-c35d2b95fa0b/ 2/3
02/06/2025 20:35 [Link]

105
106 listes=[]
107 for col in [Link]:
108 liste = [col] + df[col].tolist()
109 [Link](liste)
110
111 xlist = [Link](listes[0], dtype=float)
112 ylist = [Link](listes[1], dtype=float)
113
114 y2list = [Link](tp, xlist, ylist)
115 y3list = [Link](t, xlist, ylist)
116
117 ecart_moyen1 = [Link]([Link](ap-y2list))
118 ecart_moyen2 = [Link]([Link](a-y3list))
119
120
121 #Tracé des solutions de la résolution par la méthode d'Euler
122
123 [Link](tp, ap, 'r', label="Moustiques adultes", linewidth=1.2)
124 [Link](tp, lp, 'b', label="Moustiques larves", linewidth=1.2)
125 [Link](tp, ep, 'g', label="Oeufs de moustiques", linewidth=1.2)
126 [Link]()
127 [Link]()
128 [Link]('C:\\Users\\bapti\OneDrive\\Documents\\Cours\\MPSI\\[Link]')
129 [Link]()
130
131 [Link](tp, ap, 'r', label="Moustiques adultes selon la méthode d'Euler",linewidth=1.2)
132 [Link](tp, y2list, 'g', label="Moustiques adultes dans la réalité", linewidth=1.2)
133 [Link]([],[], label="Écart moyen: "+str(round(ecart_moyen1, 2)))
134 [Link]()
135 [Link]()
136 [Link]('C:\\Users\\bapti\OneDrive\\Documents\\Cours\\MPSI\\[Link]')
137 [Link]()
138
139
140 #Tracés des solutions de la résolution par la méthode de Runge-Kutta à l'ordre 5
141
142 [Link](t, a, 'r', label="Moustiques adultes", linewidth=1.2)
143 [Link](t, l, 'b', label="Moustiques larves", linewidth=1.2)
144 [Link](t, e, 'g', label="Oeufs de moustiques", linewidth=1.2)
145 [Link]()
146 [Link]()
147 [Link]('C:\\Users\\bapti\OneDrive\\Documents\\Cours\\MPSI\\[Link]')
148 [Link]()
149
150 [Link](t, a, 'r', label="Moustiques adultes selon la méthode\n de Runge-Kutta à l'ordre
5" ,linewidth=1.2)
151 [Link](t, y3list, 'g', label="Moustiques adultes dans la réalité", linewidth=1.2)
152 [Link]([],[], label="Écart moyen: "+str(round(ecart_moyen2, 2)))
153 [Link]()
154 [Link]()
155 [Link]('C:\\Users\\bapti\OneDrive\\Documents\\Cours\\MPSI\\[Link]')
156 [Link]()
157

localhost:51306/ffefa630-8cb0-422d-8994-c35d2b95fa0b/ 3/3

Vous aimerez peut-être aussi