日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

生物计算:SIR模型笔记

發布時間:2025/4/5 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生物计算:SIR模型笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1SIR模型

susceptible(易受感染的但沒有被感染的)

infected(感染的)

recovered(恢復并免疫了的)

1.1? 狀態定義

第t天:

狀態為S的人數x(t)
狀態為I的人數y(t)
狀態為R的人數z(t)
總人數N

1.2 SIR方程

這是一種形式的SIR,實際上還有很多種。

1.2.1 SIR方程解釋

假設每天每個S狀態的人(易受感染的但沒有被感染的人)和其他m個人有關聯

在第t天, 總體感染人的比例為

——>對于每一個S狀態的人的這m個有關聯的人里面,有?個人是感染了的

而第t天一共有x(t)個狀態是S的人

——>在第t天,所有狀態為S的人的x(t) × m個有關聯的人里面,有個人是感染了的(這個數量不一定等于狀態為I的人的數量,甚至可能比狀態為I的人的數量多。因為一個感染的人可能和多個狀態為S的人有關聯)

假設每一個“有關聯”的感染者使被關聯的S狀態的人被感染的概率是p

——>在第t天,新增感染者的數量為

我們令mp=β,β稱之為感染接觸率

那么對于S狀態的人我們就有:

同時,我們令恢復率為r(也即是每天有r比例的感染者康復)

那么對于I和R狀態的人我們又有:

1.3 用python實現SIR

1.3.1 導入庫

import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt

1.3.2 數據定義

N=1000 #總人口 I0=1 #一開始的感染人口 R0=0 #一開始的治愈(免疫)人口 S0=N-I0-R0 #一開始的易感染人口 beta=0.2 #感染接觸率β gamma=0.1 #恢復率 t=np.linspace(0,159,160) #設置時間片段為160天

1.3.3 SIR模型定義

def sir(y,t,N,beta,gamma):S,I,R=ydS_dt=-beta*S*I/NdI_dt=beta*S*I/N-gamma*IdR_dt=gamma*Ireturn(dS_dt,dI_dt,dR_dt) #SIR常微分方程

1.3.4 進行SIR的常微分方程計算

y0=(S0,I0,R0) #初始化參數ret=odeint(sir,y0,t,args=(N,beta,gamma)) ret.shape #(160, 3)S=ret[:,0] I=ret[:,1] R=ret[:,2]

1.3.5 結果可視化

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號plt.plot(t,S,color='b',label='易感人群') plt.plot(t,I,color='r',label='感染人群') plt.plot(t,R,color='g',label='康復/免疫人abs')plt.xlabel('天數,單位:天') plt.ylabel('人數,單位:人') #設置橫縱軸標題plt.legend() #顯示標簽 plt.show()

2 SEIR

1、S 類,易感者 (Susceptible),指未得病者,但缺乏免疫能力,與感染者接觸后容易受到感染;

2、E 類,暴露者 (Exposed),指接觸過感染者,但暫無能力傳染給其他人的人,對潛伏期長的傳染病適用;

3、I 類,感病者 (Infectious),指染上傳染病的人,可以傳播給 S 類成員,將其變為 E 類或 I 類成員;

4、R 類,康復者 (Recovered),指被隔離或因病愈而具有免疫力的人。如免疫期有限,R 類成員可以重新變為 S 類。

總結

以上是生活随笔為你收集整理的生物计算:SIR模型笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。