0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

雑雑なロックダウンシミュレータ

Posted at

ロックダウンでどれくらい感染者数制御ができるか試してみた
(構想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)

結果がこちら
無題.png

青が未感染者、オレンジが感染者
ロックダウンの開始条件が50万人の感染となかなかきついので、感染者が100万人以上と大変なことになってたりする

graph.py
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ax.plot(t, log0)
ax.plot(t, log1)
plt.show()

本当は症状がでた感染者と潜伏期の感染者に分けて計算して、感染者数目押しロックダウンの効果のラグを再現したかったけど今日はここまで

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?