matlab粒子群优化算法举例分析

内容发布更新时间 : 2025/7/11 3:20:32星期一 下面是文章的全部内容请认真阅读。

精品文档

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

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi