(数学建模)谣言的传播
假设1
第1个人还是会参加第2次的谣言传播。即第1个人和相信谣言的人会不断传播谣言
假设2
相信此谣言的人每人在单位时间内传播的平均人数正比于当时尚未听说此谣言的人数这个比恒定不变
假设3
传播的时候也会传给传播谣和听过谣言的人
设第i个单位时间开始时
相信谣言总人数
xyz(i)
没听过人数
mt(i)
受传播人数中没听过的人数占总人数比例(共有n+1个人,出去自己就有n个人)
t(i)=mt(i)/n;
受传播人数如果k为定植
scb(i)=k*mt(i)*xyz(i);
受传播人数中没听过谣言的人数(考虑到传播的时候也会传给传播谣和听过谣言的人)
sch_mt(i)=scb(i)*t(i);
其中相信的有
scb_mt_xx(i)=sch_mt(i)*p*a/100+sch_mt(i)*(1-p)*b/100;
其中不相信的有
scb_mt_bxx(i)=sch_mt(i)-scb_xx(i);
第i+1时刻单位时间开始时
相信谣言总人数
xyz(i+1)=xyz(i)+scb_mt_xx(i);
没听过人数
mt(i+1)=mt(i)-sch_mt(i);
受传播人数中没听过的人数占总人数比例
t(i+1)=mt(i+1)/n;
受传播人数如果k为定植
scb(i+1)=k*mt(i+1)*xyz(i+1);
受传播人数中没听过谣言的人数(考虑到传播的时候也会传给传播谣和听过谣言的人)
sch_mt(i+1)=scb(i+1)*t(i+1);
其中相信的有
scb_mt_xx(i+1)=sch_mt(i+1)*p*a/100+sch_mt(i+1)*(1-p)*b/100;
其中不相信的有
scb_mt_bxx(i+1)=sch_mt(i+1)-scb_xx(i+1);
可以看到各种数构成了一个循环,这样就可以无限迭代下去
根据由1单位时刻
相信谣言总人数
xyz(1)=1
没听过人数
mt(1)=n
然后迭代下去。
如果假设1中第1个人不参与,只有其他相信的人参与。
那循环应该从第三个开始(本来是第二),因为
第2时刻相信谣言总人数不是下面的公式
xyz(i+1)=xyz(i)+scb_mt_xx(i);
而是
xyz(2)=scb_mt_xx(i);
所以要从第三个循环开始
至于程序楼上都差不多搞定了。自己看着办吧。
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇