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