clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
%constants while initializing
alpha = 1;
dT = 1;
xMin = -5;
xMax = 5;
%constants while updating particle velocity
c1 = 2;
c2 = 2;
w = 1.4;
beta = 0.95;
wMin = 0.35;
%constants while restricitng velocity
vMax = (xMax-xMin)/dT;
%creating vector for best global value and position
bestGlobalPosition = zeros(1,2);
bestGlobalValue = inf;
numberOfParticles = 50;
numberOfIterations = 10000;
%creating vector for best local value and position
bestLocalPosition = zeros(numberOfParticles,2);
bestLocalValue (1:numberOfParticles,1) = inf;
%Step1 : Initializing velocity and position
[positionParticle,velocityParticle] = initializing(xMin,xMax,numberOfParticles,alpha,dT);
iter=1;
while iter<numberOfIterations
functionValue = zeros(numberOfParticles,1);
for i=1:numberOfParticles
functionValue(i) = functionEvaluate(positionParticle(i,1),positionParticle(i,2));
if functionValue(i)<bestLocalValue(i)
bestLocalValue(i) = functionValue(i);
bestLocalPosition(i,:) = positionParticle(i,:);
end
if functionValue(i)<bestGlobalValue
bestGlobalValue = functionValue(i);
bestGlobalPosition = positionParticle(i,:);
end
end
%Step 4: Updating particle velocity
velocityParticle = updateVelocities(w,velocityParticle,c1,bestGlobalPosition,dT,positionParticle,c2,bestLocalPosition);
%Step 5: Restricting Velocity
velocityParticle = restrictVelocity(positionParticle,velocityParticle,vMax);
%Step 6: Updating Position
positionParticle = updatePositions(positionParticle,velocityParticle,dT);
%Step 7: Reducing influence of w
if w>wMin
w = w*beta;
end
iter = iter+1;
end
plotContour()
matlab-(含教程)基于惯性加权粒子群优化算法PSO函数最小值matlab仿真
版权申诉
197 浏览量
2021-09-10
18:42:54
上传
评论
收藏 1.2MB 7Z 举报
![avatar](https://profile-avatar.csdnimg.cn/d5fa1452106248a4a63014172db25c5d_leavemyleave.jpg!1)
mYlEaVeiSmVp
- 粉丝: 1961
- 资源: 19万+
最新资源
- SAPIEN PowerShell Studio 2024 v5.8.240 是一款功能强大且全面的集成开发环境(IDE)
- 一份关于vue开发大纲的教程!!!!!!
- Xceed Ultimate Suite 24.1.25154.0957 是一款全面的 .NET 组件和控件集合
- 在树莓派4B上,在ubuntu20.04中设置包含ros节点的文件自启动
- 一段基于汇编语言的计算斐波那契数列的代码
- 在树莓派4B上,在ubuntu20.04中设置包含ros节点的文件自启动
- 英语六级写作万能高分.docx
- 一段基于Object-C语言的计算斐波那契数列的代码
- 一段基于Rust语言的计算斐波那契数列的代码
- 没东西石达开代价大欧文见到就带大家
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)