if p(i)<feval(func,pg) pg=y(i,:); subplot(1,2,1); bar(pg,0.25); axis([0 3 -40 40 ]) ; title (['Iteration ', num2str(t)]); pause (0.1); subplot(1,2,2); plot(pg(1,1),pg(1,2),'rs','MarkerFaceColor','r', 'MarkerSize',8) hold on; plot(x(:,1),x(:,2),'k.'); set(gca,'Color','g') hold off; grid on; axis([-100 100 -100 100 ]) ; title(['Global Min = ',num2str(p(i))]); xlabel(['Min_x= ',num2str(pg(1,1)),' Min_y= ',num2str(pg(1,2))]); end
时间: 2024-04-13 07:26:13 浏览: 13
这段代码是在粒子群优化算法中更新全局最优位置(pg)的部分,并且在每次更新时绘制图形展示当前的最优解。
在代码的条件语句中,判断当前粒子的个体最优适应度值(p(i))是否小于全局最优适应度值(使用函数句柄func调用feval函数计算)。如果是,则将全局最优位置pg更新为当前粒子的位置y(i,:)。
接下来,代码中使用subplot函数绘制了两个子图。第一个子图展示了全局最优位置pg的柱状图,其中bar函数用于绘制柱状图,axis函数用于设置坐标轴范围和刻度,title函数用于设置标题,pause函数用于暂停一段时间以观察图形。
第二个子图展示了粒子的散点图和全局最优位置pg所在的红色正方形标记。其中,plot函数用于绘制散点图和正方形标记,hold on和hold off函数用于保持绘图的持续和结束,set(gca,'Color','g')函数用于设置坐标轴背景色为绿色,grid on函数用于显示网格线,axis函数用于设置坐标轴范围和刻度,title函数用于设置标题,xlabel函数用于设置x轴标签。
通过这段代码,可以实时绘制粒子群优化算法的迭代过程和全局最优解的变化,以便更直观地观察算法的收敛情况和最优解的进展。