| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1196 人关注过本帖
标题:SIR病毒传播程序求助
取消只看楼主 加入收藏
liangdiny
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-2-18
收藏
 问题点数:0 回复次数:0 
SIR病毒传播程序求助
大哥大神们,小弟最近被一个仿真程序难住了,算法的思想很简单,但是我的程序有点问题,我知道是我的错,麻烦大家帮忙看看,程序见附件

要求:实现模拟出病毒按SIR传播模型在网络上的传播情况。
输入:感染概率irate(如0.2),恢复概率rrate(如rrate =1)和网络的邻接矩阵A
输出:传播结束或者传播稳定时感染的个体总个数。

原理:网络中的节点分为三类:已经感染的节点I(infection),易感染节点S(susceptible),移除状态的节点R(removed).设网络中的节点总数为N,选择节点1为传播源进行传播,即初始时节点1的状态为infection,其他节点的状态为susceptible。依次对节点1的邻居以概率irate标记为infection状态,对节点1的所有邻居都进行了这个操作之后,节点1以概率rrate转换为removed,处于removed状态的节点不再参加传播,也不再改变自己的状态。

接下来,网络中所有的处于infection状态的节点再次按照节点1的模式进行传播,即以概率irate将自己的邻居节点标记为infection状态,完成之后又以概率rrate将自己的状态标为removed。

停止条件:所有的节点都有成为过infection状态。

解释:因为处于infection状态的节点会以概率rrate转化为removed状态而处于removed状态的节点不会再改变自己的状态,所以一旦网络中所有的节点都有过infection状态时,停止。

结果要输出处于infection和removed状态的节点集合和节点的个数。


我的matlab程序和输入文件如附件所示,但是感觉我的程序上有点问题,希望高手帮忙,跪谢啊
disease_spreading.rar (1.42 KB)


[ 本帖最后由 liangdiny 于 2014-2-18 11:31 编辑 ]
搜索更多相关主题的帖子: 大哥大 模型 网络 
2014-02-18 10:29
快速回复:SIR病毒传播程序求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031186 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved