主函数源程序(main.m)%------基本粒子群优化算法(ParticleSwarmOptimization)-----------%------名称:基本粒子群优化算法(PSO)%------作用:求解优化问题%------说明:全局性,并行性,高效的群体智能算法%------初始格式化--------------------------------------------------clearall;clc;formatlong;%------给定初始化条件----------------------------------------------c1=1.4962;%学习因子1c2=1.4962;%学习因子2w=0.7298;%惯性权重MaxDT=1000;%最大迭代次数D=10;%搜索空间维数(未知数个数)N=40;%初始化群体个体数目eps=10^(-6);%设置精度(在已知最小值时候用)%------初始化种群的个体(可以在这里限定位置和速度的范围)------------fori=1:Nforj=1:Dx(i,j)=randn;%随机初始化位置v(i,j)=randn;%随机初始化速度endend%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------fori=1:Np(i)=fitness(x(i,:),D);y(i,:)=x(i,:);endpg=x(1,:);%Pg为全局最优fori=2:Niffitness(x(i,:),D)FITNESS(PG,D)spanpg=x(i,:);endend%------进入主要循环,按照公式依次迭代,直到满足精度要求------------fort=1:MaxDTfori=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,:),D)P(I)spanp(i)=fitness(x(i,:),D);y(i,:)=x(i,:);endifp(i)FITNESS(PG,D)spanpg=y(i,:);endendPbest(t)=fitness(pg,D);end%------最后给出计算结果disp('*************************************************************')disp('函数的全局最优位置为:')Solution=pg'disp('最后得到的优化极值为:')Result=fitness(pg,D)disp('*************************************************************')%------算法结束---DreamSunGL&HF-----------------------------------适应度函数源程序(fitness.m)functionresult=fitness(x,D)sum=0;fori=1:Dsum=sum+x(i)^2;endresult=sum;