内容发布更新时间 : 2025/7/10 9:14:53星期一 下面是文章的全部内容请认真阅读。
精品文档
if(j>9)
tInfo=strcat('第',char(floor(j/10)+48), char(rem(j,10)+48),'维'); end title(tInfo) end
%------显示种群速度 figure(2) for j=1:D if(rem(D,2)>0)
subplot((D+1)/2,2,j) else
subplot(D/2,2,j) end
plot(x(:,j),'b*');grid on xlabel('粒子') ylabel('初始速度')
tInfo=strcat('第,char(j+48),'维'); if(j>9)
tInfo=strcat('第',char(floor(j/10)+48), char(rem(j,10)+48),'维); end title(tInfo) end figure(3) %第一个图 subplot(1,2,1)
%------初始化种群个体(在此限定速度和位置)------------ x1=x; v1=v;
%------初始化个体最优位置和最优值--- p1=x1;
pbest1=ones(N,1); for i=1:N
pbest1(i)=fitness(x1(i,:),D);
。 6欢迎下载
精品文档
end
%------初始化全局最优位置和最优值--------------- g1=1000*ones(1,D); gbest1=1000; for i=1:N
if(pbest1(i)
gb1=ones(1,T);
%-----浸入主循环,按照公式依次迭代直到满足精度或者迭代次数--- for i=1:T for j=1:N
if (fitness(x1(j,:),D)
pbest1(j)=fitness(x1(j,:),D); end
if(pbest1(j)
v1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:))+c21*rand*(g1-x1(j,:)); x1(j,:)=x1(j,:)+v1(j,:); end
gb1(i)=gbest1; end plot(gb1)
TempStr=sprintf('c1= %g ,c2=%g',c11,c21); title(TempStr); xlabel('迭代次数'); ylabel('适应度值'); %第二个图 subplot(1,2,2)
%-----初始化种群个体(在此限定速度和位置)------------
。 7欢迎下载
精品文档
x2=x; v2=v;
%-----初始化种群个体最有位置和 最优解----------- p2=x2;
pbest2=ones(N,1); for i=1:N