主要循环fort=1:Mfori=1:Nv(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));x(i,:)=x(i,:)+v(i,:);iffitness(x(i,:))<p(i)p(i)=fitness(x(i,:));y(i,:)=x(i,:);endifp(i)<fitness(pg)pg=y(i,:);endendPbest(t)=fitness(pg);endxm=pg';fv=fitness(pg);(2)目标函数fitness.m文件functionf=fitness(x)f=x(1).^2+x(2).^2+x(3).^2;end需要说明的是,针对不同的函数优化,只需要改变目标函数就可以。(3)在命令行输入或建立调用m文件在命令行先后输入[xm,fv]=PSO(fitness,100,2,2,0.6,1000,3),或建立包涵该语句的m文件,运行即可得到结果。四、结果与分析4.1实验结果(1)对于目标函数f=x(1).^2+x(2).^2+x(3).^2优化结果如下:xm=1.0e-162*0.5561630774546230.9372920235923590.146573921409127fv=0,fv是最优值,xm为最优值对应的自变量值。4.2分析通过对实验结果和已知最小值比较可知,该算法能有效解决这类问题,需要特别指出的是xm的取值只是近似值,另外,本文的粒子群算法程序只是实现粒子群算法的基本功能,该算法还有待进一步改进。五、总结本文利用粒子群算法思想,通过编写matlab程序,对一个三维连续函数进行优化得到了较好的仿真结果,证明粒子群算法在解决这类问题的可行性。另外,在编写本文的工作过程中,提高了自己对粒子群算法的理解和应用能力。为今后利用智能算法撰写论文或进行科学研究打下了很好地基础。