SIR 모델의 일본어 표시 (그 2)
7879 단어 코로나 바이러스SIR 모델Python3matplotlib
감염병의 수학 예측 모델의 소개(SIR 모델)
sir02.py
#! /usr/bin/python
# ------------------------------------------------------------------
import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import odeint
from scipy.optimize import minimize
import sys
# ------------------------------------------------------------------
def SIR_EQ(v, t, beta, gamma):
return [-beta*v[0]*v[1], beta * v[0] * v[1] - gamma * v[1], gamma * v[1]]
# ------------------------------------------------------------------
sys.stderr.write("*** start ***\n")
t_max = 160
dt = 0.01
beta_const = 0.2/1000
gamma_const = 0.1
#initial_state
S_0=999
I_0=1
R_0=0
ini_state = [S_0,I_0,R_0] #[S[0], I[0], R[0]]
#numerical integration
times =np.arange(0,t_max, dt)
args =(beta_const, gamma_const)
#R0
N_total = S_0+I_0+R_0
R0 = N_total*beta_const *(1/gamma_const)
print(R0)
sys.stderr.write("*** ccc ***\n")
#Numerical Solution using scipy.integrate
#Solver SIR model
result = odeint(SIR_EQ, ini_state, times, args)
#
#
plt.rcParams["font.family"] = "TakaoExGothic"
# plt.rcParams["font.family"] = "IPAGothic"
plt.title("基本再生産数 : {}".format(format(R0,".3f")))
plt.xlabel('日数')
plt.ylabel('人数')
plt.plot(times,result)
plt.legend(['未感染者','感染者','回復者'])
plt.show()
sys.stderr.write("*** end ***\n")
# ------------------------------------------------------------------
글꼴 지정은 TakaoExGothic 또는 IPAGothic 모두 괜찮습니다.
Arch Linux에서 확인했습니다.
$ uname -a
Linux iwata 5.6.10-arch1-1 #1 SMP PREEMPT Sat, 02 May 2020 19:11:54 +0000 x86_64 GNU/Linux
$ python --version
Python 3.8.2
Reference
이 문제에 관하여(SIR 모델의 일본어 표시 (그 2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ekzemplaro/items/e40049dec177993252f0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)