星期日, 十二月 25, 2011

坚信者退化模型:只要有10%的坚信者,就可以改变社会?(part 2 实验模拟)

看了这篇:只要有10%的坚信者,就可以改变社会?http://www.guokr.com/article/57629/#page=2 进行了模型的扩展,继续有感想:
我在《坚信者退化模型:只要有10%的坚信者,就可以改变社会?(part 1)》里假设从普通信仰者到坚信者是逐渐过渡的。人们持有某一观点,对坚持这一观点是有一定强度的,会随着与对立观点的逐渐接触而弱化,又会随着与相同观点的接触而增强。
于是,做了如下程序,以实验之
【方法】
% 坚信者测试,Matlab程序
clear all
close all
N=10000;%人群数量
mean_opinion=1;%观点强度分布的平均值
sd_opinion=10;%观点强度分布的方差
people=round(normrnd(mean_opinion,sd_opinion,N,1));%人们坚持观点的强度

for i=1:100%多次循环
ppl_index=randperm(N);%随机排队
A_index=ppl_index(1:N/2); %A组是排队前一半人
B_index=ppl_index(N/2+1:N);%B组是排队后一半人
A_value=people(A_index);%A组每个人的坚持观点强度
B_value=people(B_index);%B组每个人的坚持观点强度
A_sign=sign(A_value);%A组每个人的观点,+1,-1分别表示两种观点,0表示没有观点
B_sign=sign(B_value);
people(A_index)=people(A_index)+B_sign;%A组人与B组排队相应人的观点交互,两人观点相同则加强,反之则减弱
people(B_index)=people(B_index)+A_sign;

figure(1)
hist(people)%不断显示人群观点强度的分布
opinion(i)=mean(people);%计算平均意见
end
figure(2)
plot(opinion)%显示平均意见的变化过程

【结果】
多次循环以后,人群的观点强度仍然是正态分布
Peoplehist
但是,人群的平均观点发生了变化:
Opinionshift
由于初始设定人群稍微偏向+方观点,最终大家都转向+方观点。
如果初始平均观点设定是0呢,有趣的事情发生了,下列两种情况都有可能出现:
但是毫无疑问,平均观点偏离了0点。
Opinionshift2
Opinionshift10peoplehist0opinionshift0opinionshift10opinionshift2

没有评论: