首页 > 行业资讯 > 【粒子群算法】基于粒子群算法求解函数极值问题含Matlab源码

【粒子群算法】基于粒子群算法求解函数极值问题含Matlab源码

时间:2023-01-15 来源: 浏览:

【粒子群算法】基于粒子群算法求解函数极值问题含Matlab源码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集

1 简介

2 完整代码

%%% %%% %%% %%% %%% %%粒子群算法求函数极值% %%% %%% %%% %%% %%% %%% %%% %%% % %%% %%% %%% %%% %%% %%% %%% %%% 初始化 %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% clear all; %清除所有变量 close all; %清图 clc; %清屏 N= 100 ; %群体粒子个数 D= 10 ; %粒子维数 T= 200 ; %最大迭代次数 c1= 1.5 ; %学习因子 1 c2= 1.5 ; %学习因子 2 w= 0 . 8 ; %惯性权重 Xmax= 20 ; %位置最大值 Xmin=- 20 ; %位置最小值 Vmax= 10 ; %速度最大值 Vmin=- 10 ; %速度最小值 %%% %%% %%% %%% %%% %初始化种群个体(限定位置和速度) %%% %%% %%% %%% %%% % x=rand(N,D) * (Xmax-Xmin)+Xmin; v=rand(N,D) * (Vmax-Vmin)+Vmin; %%% %%% %%% %%% %%% %%% 初始化个体最优位置和最优值 %%% %%% %%% %%% %%% %%% % p=x; pbest=ones(N, 1 ); for i= 1 :N pbest(i)=func1(x(i, : )); end %%% %%% %%% %%% %%% %%% %初始化全局最优位置和最优值 %%% %%% %%% %%% %%% %%% g=ones( 1 ,D); gbest=inf; for i= 1 :N if (pbest(i)<gbest) g=p(i, : ); gbest=pbest(i); end end gb=ones( 1 ,T); %%% %%% %%% %%按照公式依次迭代直到满足精度或者迭代次数% %%% %%% %%% %%% for i= 1 :T for j= 1 :N %%% %%% %%% %%% %%更新个体最优位置和最优值% %%% %%% %%% %%% %%% % if (func1(x(j, : ))<pbest(j)) p(j, : )=x(j, : ); pbest(j)=func1(x(j, : )); end %%% %%% %%% %%% %%% %更新全局最优位置和最优值 %%% %%% %%% %%% %%% if (pbest(j)<gbest) g=p(j, : ); gbest=pbest(j); end %%% %%% %%% %%% %%% %%跟新位置和速度值% %%% %%% %%% %%% %%% %%% %% v(j,:)=w*v(j,:)+c1*rand*(p(j,:)-x(j,:))... +c2*rand*(g-x(j,:)); x(j,:)=x(j,:)+v(j,:); % %%% %%% %%% %%% %%% %%% %边界条件处理 %%% %%% %%% %%% %%% %%% %%% % for ii= 1 :D if (v(j,ii)>Vmax) | (v(j,ii)< Vmin) v(j,ii)=rand * (Vmax-Vmin)+Vmin; end if (x(j,ii)>Xmax) | (x(j,ii)< Xmin) x(j,ii)=rand * (Xmax-Xmin)+Xmin; end end end %%% %%% %%% %%% %%% %%% %%记录历代全局最优值% %%% %%% %%% %%% %%% %%% %% gb(i)=gbest; end g; % 最优个体 gb( end ); %最优值 figure plot(gb) xlabel( ’迭代次数’ ); ylabel( ’适应度值’ ); title( ’适应度进化曲线’ )

%%% %%% %%% %%% %%% %%% %适应度函数 %%% %%% %%% %%% %%% %%% %% function result=func1(x) summ=sum(x.^2); result=summ;

3 运行结果

4 参考文献

[1]夏链等. "基于机器视觉的BGA芯片缺陷检测及其MATLAB实现." 合肥工业大学学报:自然科学版 32.11(2009):4.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐