【正文】
)grid on。,39。)axis([0 10 0 10 0 10],39。,food(1),food(2),food(3),39。endplot3(x,y,z,39。 y(i)=pos{i}(2)。 pos{i}=pos{i}+direc1{i}/norm(direc1{i})*v*exp(5*(cons(i)1))。pos{i}=pos{i}+direc1{i}/norm(direc1{i})*v。 direc4{i}=(direc4{i}+pos{i}pos{j})./n。 cons(i)=norm(l)/k。 direc2{i}= (direc2{i}+(pos{j}pos{i}))./m。k=k+norm(direc1{j})。amp。 direc8{i}=(direc8{i}+direc1{r})./r。l=[0,0,0]。n=0。 end end for i=11:30 %普通個(gè)體行為 if norm(pos{i}food)=3 direc1{i}=direc1{i}+*(foodpos{i})。 direc4{i}=(direc4{i}+pos{i}pos{j})./n。 for j=1:30 if norm(pos{i}pos{j})。 direc8{i}=zeros(1,3)。 direc4{i}=zeros(1,3)。 direc2{i}=zeros(1,3)。cons=zeros(1,30)。direc8=cell(1,30)。direc3=cell(1,30)。direc1=cell(1,30)。z=zeros(1,30)。 %確定食物位置for i=1:30 pos{i}=[rand(1,1)*10,rand(1,1)*10,rand(1,1)*10]endx=zeros(1,30)。end、問題三的程序代碼:pos=cell(1,30)。grid on。manual39。square39。o39。.39。 z(i)=pos{i}(3)。 for i=1:100 x(i)=pos{i}(1)。 end end end end if (pre(1)=5)||(pre(2)=5)||(pre(1)=0)||(pre(2)=0)||(pre(3)=5)||(pre(3)=0) direcpre=(1)*direcpre。 else direc1{i}=*direc1{i}+*direc2{i}+*direc3{i}+*direc4{i}+*direc7{i}+*direc8{i}。 direc1{i}=*direc2{i}+*direc3{i}+*direc4{i}+* direc5{i}+ *direc6{i}+*direc7{i}+*direc8{i}。 else if norm(pos{i}pre)= %定義感知區(qū)域 direc5{i}=pos{i}pre。 end end else if (pos{i}(1)=5)||(pos{i}(2)=5)||(pos{i}(1)=0)||(pos{i}(2)=0)||(pos{i}(3)=5)||(pos{i}(3)=0) direc1{i}=(1)*direc1{i}。direcpre=[rand(1,1)*10,rand(1,1)*10,rand(1,1)*10]。 pos{i}=pos{i}+(*direc5{i}+*direc6{i})*v。 direc6{i}=(1)*direcpre。 direc4{i}=(direc4{i}+pos{i}pos{j})./n。 cons(i)=norm(l)./k。 direc2{i}= (direc2{i}+(pos{j}pos{i}))./m。k=k+norm(direc1{j})。amp。 direc8{i}=(direc8{i}+direc1{j})./j。 direc6{i}=zeros(1,3)。 l=[0,0,0]。 n=0。endfor t=1:2