例12:一只游船上有800(1000)人,一名游客不慎患传染病,12(10)小时后有3人发病,由于船上不能及时隔离,问经过60(30)小时,72小时,患此病的人数。(与人口模型和Logistic模型类似)
先用python和matlab模拟
我的python代码
#-*- coding: utf-8 -*-
importnumpy as npimportrandomimportmatplotlib
matplotlib.rcParams['font.sans-serif']=[u'simHei']
matplotlib.rcParams['axes.unicode_minus']=Falseimportpandas as pdimportmatplotlib.pyplot as plt
p_size=10000get_ill_p= 0.1is_ill=np.zeros(p_size)
is_ill[0]=1ill_n=1x=[]
y=[]for time in range(100):
x.append(time)
y.append(ill_n)#遍历每一个交往的人数
for i inrange(ill_n):#交往的人数再0-2个人内
renshu = np.random.randint(0,2)for j inrange(renshu):#随机挑一个人
p =np.random.randint(0,p_size)#如果p没患病
if is_ill[p]==0 and random.random()<0.5:
is_ill[p]=1ill_n+&#