ロックダウンでどれくらい感染者数制御ができるか試してみた
(構想10分実装5分グラフ化5分)
感染者が500000人超えるとロックダウン
100000人切るとロックダウン解除
simu.py
N=70
normal=10**8
patient=1
temp=0
lock=False
t=[]
log0=[]
log1=[]
for i in range(N):
#一周期で感染者が回復もしくは死亡する
#ロックダウンを開始する感染者閾値は適当
if lock==False and patient>50**4:
lock=True #ロックダウン開始
temp=(normal*0.7)//1 #ロックダウンが始めると70%が家にこもる
elif lock==True and patient<10**4:
lock=False #ロックダウン終了
temp=0 #ロックダウンが終わると日常生活を再開させる
infect=((2*(normal-temp)/10**8)*patient)//1 #一人当たり1.5-2.4人に感染させるので係数は2とした (normal-temp)/10**8は感染効率
patient+=infect-patient
normal-=infect
t.append(i)
log0.append(normal)
log1.append(patient)
青が未感染者、オレンジが感染者
ロックダウンの開始条件が50万人の感染となかなかきついので、感染者が100万人以上と大変なことになってたりする
graph.py
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(t, log0)
ax.plot(t, log1)
plt.show()
本当は症状がでた感染者と潜伏期の感染者に分けて計算して、感染者数目押しロックダウンの効果のラグを再現したかったけど今日はここまで