資源簡介
MATLAB SPIN路由算法+具體代碼,對于matlab和SPIN路由協議算法入門學習以及數學建模很有幫助!
代碼片段和文件信息
clf
clear
area_length=100; %長為100
area_width=100;?? %寬為100
node_num=50; %節點數目
for? ??i=1:node_num
??Nodes{i}.x=?area_length*rand(11);
? ??Nodes{i}.y?=area_width*rand(11);
axis([0?100?0?100]);%設定坐標范圍
plot(Nodes{i}.x?Nodes{i}.y‘o‘);
???????text(Nodes{i}.x?Nodes{i}.y[‘?‘num2str(i)]);%標坐標號
hold?on
end
E_elec?=?50*10^-6;
E_da=5*10^-9;
E_fs=10*10^-9;
E_mp=0.0013*10^-9;
for ?i=1:node_num %賦予初始化能量
Nodes{i}.energy?=?5;
end??
flag=0;%標志位
for ?i=1:node_num %初始化標志位
Nodes{i}.flag?=?0;
end??
Nodes{51}.x=?area_length*rand(11);
Nodes{51}.y?=area_width*rand(11);
plot(Nodes{51}.x?Nodes{51}.y‘ob‘‘markerfacecolor‘‘red‘);%建立基站
text(Nodes{51}.x?Nodes{51}.y[‘?‘num2str(51)]);%標坐標號
Nodes{51}.flag?=?0;
r=1+fix(rand(11)*50)%產生一個1-50范圍內的隨機點
plot(Nodes{r}.x?Nodes{r}.y‘ob‘‘markerfacecolor‘‘green‘);%畫出隨機點
n1=100;
n2=10;
d0=20;??
data=[0?0?0?0?0?0?0?0?0?0];
for ?i=1:node_num %賦予初始化能量
Nodes{i}.data(1)?=?1+fix(rand(11)*10);%產生一個1-10范圍內的隨機數
end??
for ?i=1:node_num
?????d(i)=sqrt((Nodes{i}.x-Nodes{r}.x)^2+(Nodes{i}.y-Nodes{r}.y)^2);
if??d(i) Etx(i)=E_elec*n2+E_fs*n1*d(i)^
- 上一篇:遺傳算法全局尋優代碼
- 下一篇:消息傳遞算法 和積算法 因子圖 matlab源碼
評論
共有 條評論