欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度

发布时间:2025/3/21 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度

 

 

 

目录

输出结果

实现代码


 

 

 

输出结果

 

实现代码

x = 1:0.01:2;          y = sin(10*pi*x) ./ x; figure plot(x, y) title('绘制目标函数曲线图—Jason niu'); hold onc1 = 1.49445; c2 = 1.49445;maxgen = 50;     sizepop = 10;  Vmax = 0.5;    Vmin = -0.5; popmax = 2;     popmin = 1;ws = 0.9;   we = 0.4;for i = 1:sizepoppop(i,:) = (rands(1) + 1) / 2 + 1;   V(i,:) = 0.5 * rands(1); fitness(i) = fun(pop(i,:)); end[bestfitness bestindex] = max(fitness); zbest = pop(bestindex,:);  gbest = pop;    fitnessgbest = fitness;   fitnesszbest = bestfitness;  for i = 1:maxgenw = ws - (ws-we)*(i/maxgen);  for j = 1:sizepopV(j,:) = w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));V(j,find(V(j,:)>Vmax)) = Vmax; V(j,find(V(j,:)<Vmin)) = Vmin;pop(j,:) = pop(j,:) + V(j,:);pop(j,find(pop(j,:)>popmax)) = popmax;pop(j,find(pop(j,:)<popmin)) = popmin;fitness(j) = fun(pop(j,:));endfor j = 1:sizepop  if fitness(j) > fitnessgbest(j)gbest(j,:) = pop(j,:);     fitnessgbest(j) = fitness(j);endif fitness(j) > fitnesszbestzbest = pop(j,:);fitnesszbest = fitness(j);endendyy(i) = fitnesszbest;     end[fitnesszbest zbest] plot(zbest, fitnesszbest,'r*')figure plot(yy) title('PSO:PSO算法(快于GA算法)+ω参数实现找到最优个体适应度—Jason niu','fontsize',12); xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);

 


相关文章
PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度

 

 

 

 

总结

以上是生活随笔为你收集整理的MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。