Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
math_tech_info
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
orestis.malaspin
math_tech_info
Commits
874c7383
Commit
874c7383
authored
5 years ago
by
orestis.malaspin
Browse files
Options
Downloads
Patches
Plain Diff
added stufff
parent
312a50fb
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#10082
passed
5 years ago
Stage: test
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
covid/01_covid.md
+2
-2
2 additions, 2 deletions
covid/01_covid.md
covid/python/covid.py
+18
-9
18 additions, 9 deletions
covid/python/covid.py
covid/python/data.txt
+21
-0
21 additions, 0 deletions
covid/python/data.txt
with
41 additions
and
11 deletions
covid/01_covid.md
+
2
−
2
View file @
874c7383
...
...
@@ -18,7 +18,7 @@ qui donne le nombre nombre d'individus ayant contracté une maladie en fonction
du temps. La valeur $M_0=M(0)$ est le nombre de malades le jour où la maladie
se déclare pour la première fois. On aimerait décrire l'évolution
de cette maladie. Pour ce faire, nous allons écrire une équation
qui va
représenter le taux de variation de $M(t)$, soit $M'(t)$, la dérivée de $M(t)$
.
qui va
calculer $M(t+
\d
elta t)$ à partir de $M(t)$ qui est supposé connu
.
Supposons dans notre modèle très simplifié, que chaque personne malade
contamine exactement deux personnes saines en un temps $
\d
elta t$.
...
...
@@ -50,7 +50,7 @@ Ce qu'on a fait ici comme modèle est un modèle compartimental (on a compartime
on a divisé la population en une classe, celle des malades $M(t)$. Puis
on a adjoint une règle d'évolution à cette classe: chaque jour chaque malade infecte
deux nouvelles personnes. Ce modèle est très simpliste mais il illustre très bien
comment on constuit un modèle d'épidémie.
comment on const
r
uit un modèle d'épidémie.
Par ailleurs, on peut se rendre compte que l'équation que nous avons écrite plus
haut décrit l'évolution du
*taux de variation*
de $M(t)$. En effet, en réarrangeant les termes de cette équation, on a que
...
...
This diff is collapsed.
Click to expand it.
covid/python/covid.py
+
18
−
9
View file @
874c7383
import
numpy
as
np
import
matplotlib.pyplot
as
plt
swiss
=
np
.
array
([
2.100350058
,
3.150525088
,
4.900816803
,
6.534422404
,
10.501750292
,
13.302217036
,
24.970828471
,
31.271878646
,
39.323220537
,
43.640606768
,
57.292882147
,
76.079346558
,
100.116686114
,
131.271878646
,
158.576429405
,
256.709451575
,
256.709451575
,
268.378063011
,
309.218203034
,
353.325554259
,
453.675612602
])
swiss
=
np
.
array
([
18
,
27
,
42
,
56
,
90
,
114
,
214
,
268
,
337
,
374
,
491
,
652
,
858
,
1125
,
1359
,
2200
,
2200
,
2300
,
2650
,
3028
,
3888
])
days
=
np
.
array
(
range
(
1
,
len
(
swiss
)
+
1
))
def
s
(
dt
,
beta
,
S0
,
I0
,
N
):
return
S0
-
dt
*
(
beta
*
S0
*
I0
/
N
)
...
...
@@ -20,9 +25,9 @@ def timestep(S0, I0, R0, dt, beta, lamb, N):
return
S1
,
I1
,
R1
S0
=
400000
I0
=
1
I0
=
swiss
[
0
]
R0
=
0
max_t
=
100
0
max_t
=
3
0
n_steps
=
1000
dt
=
max_t
/
n_steps
...
...
@@ -30,7 +35,7 @@ dt = max_t / n_steps
N
=
compute_n
(
S0
,
I0
,
R0
)
lamb
=
1.0
/
14.0
beta
=
1
beta
=
0.33
s_list
=
[
S0
]
r_list
=
[
R0
]
...
...
@@ -42,16 +47,20 @@ for i in range(0, n_steps):
i_list
.
append
(
I1
)
r_list
.
append
(
R1
)
t_list
.
append
((
i
+
1
)
*
dt
)
# if ((i+1)*dt >= 10):
# beta = 0.1, 0.25, 0.5
# if ((i+1)*dt >= 10 and (i+1)*dt <= 365):
# beta = 0.1
# else:
# beta = 1
s
=
np
.
array
(
s_list
)
s
=
np
.
array
(
s_list
)
r
=
np
.
array
(
r_list
)
ii
=
np
.
array
(
i_list
)
t
=
np
.
array
(
t_list
)
plt
.
plot
(
t
,
s
,
'
b
'
)
plt
.
plot
(
t
,
r
,
'
r
'
)
plt
.
plot
(
t
,
ii
,
'
k
'
)
# plt.plot(t, s, 'b')
# plt.plot(t, r, 'r')
plt
.
semilogy
(
t
,
ii
,
'
k
'
)
plt
.
loglog
(
days
,
swiss
,
'
k*
'
)
plt
.
legend
([
'
S
'
,
'
I
'
,
'
R
'
,
swiss
])
plt
.
show
()
This diff is collapsed.
Click to expand it.
covid/python/data.txt
0 → 100644
+
21
−
0
View file @
874c7383
2.100350058 18 1
3.150525088 27 2
4.900816803 42 3
6.534422404 56 4
10.501750292 90 5
13.302217036 114 6
24.970828471 214 7
31.271878646 268 8
39.323220537 337 9
43.640606768 374 10
57.292882147 491 11
76.079346558 652 12
100.116686114 858 13
131.271878646 1125 14
158.576429405 1359 15
256.709451575 2200 16
256.709451575 2200 16
268.378063011 2300 17
309.218203034 2650 18
353.325554259 3028 19
453.675612602 3888 20
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment