仿真一:在100*100 的区域内随机生成100 个节点 (matlab 仿真代码: clear; xm=100;%x轴范围 ym=100;%y轴范围 sink.x=0.5*xm;%基站x轴 50 sink.y=0.5*ym;%基站y轴 50 n=100; E0=0.02; for i=1:1:n S(i).xd=rand(1,1)*xm; S(i).yd=rand(1,1)*ym; S(i).G=0;%每一周期结束此变量为0 S(i).E=E0;%设置初始能量为E0 S(i).type='N';%节点类型为普通 plot(S(i).xd,S(i).yd,'o'); hold on; end %设置SINK节点的坐标 S(n+1).xd=sink.x; S(n+1).yd=sink.y; plot(S(n+1).xd,S(n+1).yd,'*');%绘制基站节点 仿真结果图片: (‘O’代表随机散布的节点,‘*’代表SINK节点) 01020304050607080901000102030405060708090100 仿真二:LEACH 分簇效果图(matlab 代码见附件) 仿真结果:(p=0.1) 1、簇头个数 14. 01020304050607080901000102030405060708090100 2、簇头个数:11 01020304050607080901000102030405060708090100 3、簇头个数:12 01020304050607080901000102030405060708090100 4、簇头个数:10 01020304050607080901000102030405060708090100 (p=0.05) 1、簇头=6 01020304050607080901000102030405060708090100 2、簇头=7 01020304050607080901000102030405060708090100 3、簇头=12 01020304050607080901000102030405060708090100 4、簇头=8 01020304050607080901000102030405060708090100 5、01020304050607080901000102030405060708090100xyLEACH分簇算法成簇效果图SINK节点簇头普通节点 仿真三:LEACH 分簇算法第一个节点死亡的轮数 01020304050607080901000102030405060708090100 0102030405060708090100010203040506070809010001020304050607080901000102030405060708090100第一 死 亡 节 点 出 现 的 分 布 及 轮 数死 亡 节 点SINK节 点簇 头 节 点普 通 节 点01020304050607080901000102030405060708090100第一死亡节点出现的分布及轮数xySINK节点死亡节点 01020304050607080901000102030405060708090100xy第一死亡节点出现的分布及轮数SINK节点死亡节点 经过matlab 仿真,LEACH 分簇算法在第一个节点死亡时,已经运行的轮数分别为: 122、143、125、149、122、72. 仿真四:20%的节点死亡时分布及轮数 1、 01020304050607080901000102030405060708090100xy20%的节点死亡时分布及轮数SINK节点死亡节点簇 头 节点普 通 节点 2、 01020304050607080901000102030405060708090100xy 01020304050607080901000102030405060708090100xy 轮数:196、207、205、181.