資源簡(jiǎn)介
模擬SIR信息傳播模型的CP過程的仿真程序。SIR模型是基于傳染病動(dòng)力學(xué)的信息傳播模型。
代碼片段和文件信息
function?[?ss?ii?rr?]?=?CPSIR(?DegreeBetaSourse_IDTppvv??)
%??刻畫SIR模型
%???返回[ssiirr]
%???ss表示每一時(shí)刻傳播節(jié)點(diǎn)的密度
%???ii表示每一時(shí)刻未感染節(jié)點(diǎn)的密度
%???rr表示每一時(shí)刻免疫節(jié)點(diǎn)的密度
%???輸入變量的含義:
%??????Degree---------度分布矩陣
%??????Beta------------傳播概率矩陣
%??????links------------全邊矩陣
%??????Sourse_ID---------源傳播節(jié)點(diǎn)
N?=?length(Degree);
A?=?zeros(N3);%產(chǎn)生一個(gè)N行3列的零矩陣存儲(chǔ)節(jié)點(diǎn)狀態(tài)第一列為傳播狀態(tài),第二列為未感染狀態(tài),第三列為免疫狀態(tài)
A(Sourse_ID1)?=?1;%假設(shè)第一個(gè)節(jié)點(diǎn)為傳播節(jié)點(diǎn)
for?e?=?1:N
????if?e?~=Sourse_ID
????????A(e2)=1;
????end
end
%?p1?=?0.09;
p2=pp;%免疫概率
v=vv;%傳播自然轉(zhuǎn)移為免疫的速度
ss?=?zeros(1T);%產(chǎn)生一個(gè)1行T列的零矩陣,存儲(chǔ)傳播節(jié)點(diǎn)密度
ii?=?zeros(1T);
rr?=?zeros(1T);
for?t?=?1:T
????disp(num2str(t));
????S?=?0;%傳播節(jié)點(diǎn)數(shù)量
????I?=?0;
????R?=?0;
????for?i?=?1:N
????????S?=?S?+?A(i1);
????????I?=?I?+?A(i2);
????????R?=?R?+?A(i3);
????end
????ss(1t)?=?S/N;
????ii(1t)?=?I/N;
????rr(1t)?=?R/N;
????
????%%
????%對(duì)節(jié)點(diǎn)遍歷,根據(jù)傳播規(guī)則進(jìn)行交互
????for?i?=?1:N
????????%如果節(jié)點(diǎn)i為傳播節(jié)點(diǎn),且它的度大于0
????????if?Degree(i)>0?&&?A(i1)?==?1
????????????%確定節(jié)點(diǎn)i在Beta矩陣中的最開始那行的id(i_uplimit)
????????????i_uplimit?=?1;
????????????if?i?==?1???????????????%將序號(hào)為1的特殊處理
????????????????i_uplimit?=?1;
????????????else
????????????????for?j?=?2:i
????????????????????i_uplimit?=?i_uplimit?+?Degree(j-1);
????????????????end
????????????end
????????????
????????????%contact?process?CP接觸過程,每一時(shí)刻只與一個(gè)鄰居交互
????????????rand_nei?=?randi(Degree(i)?1)?+?i_uplimit?-1;%找出該鄰居的編號(hào)
????????????%判斷該鄰居是未感染節(jié)點(diǎn),則進(jìn)行傳播
????????????if?A(Beta(rand_nei2)2)==1
????????????????a?=?rand();
????????????????
????????????????if?a ????????????????????A(Beta(rand_nei2)1)?=?1;
????????????????????A(Beta(rand_nei2)2)?=?0;
????????????????end
????????????end
????????????
????????????if?A(Beta(rand_nei2)3)==1?||?A(Beta(rand_nei2)1)==1%Beta(k1)表示的是Beta矩陣中第k行第一列的節(jié)點(diǎn)id
????????????????b?=?rand();
????????????????if?b ????????????????????A(i3)?=?1;
????????????????????A(i1)?=?0;
????????????????end
????????????end????????????
????????end
????end
????%%
????%傳播節(jié)點(diǎn)可有較小概率自然衰減成免疫節(jié)點(diǎn)
????for?i?=?1:N
????????if?A(i1)?==1
????????????c?=rand();
????????????if?c ????????????????A(i3)?=?1;
????????????????A(i1)?=?0;
????????????end
????????end
????end
????
end
%?plot(ss‘+-‘);
%?hold?on;
%?plot(ii‘*‘);
%?plot(rr‘.‘);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????2603??2012-09-29?08:55??CPSIR.m
評(píng)論
共有 條評(píng)論