function[xm,fv] = PSO(fitness,N,c1,c2,w,M,D) %参数值需要根据具体的模型进行赋值
%fitness 目标函数的适应度
%c1,c2 学习因子
%N 粒子群中的个体数目
%M 最大迭代次数
%D 搜索空间的维数
%w 惯性权重
%%%%%%%%%%初始化粒子群
format long;
for i = 1:N
for j = 1:D
x(i,j) = randn; %随机指定粒子的初始位置
v(i,j) = randn; %随机指定粒子的初始速度
end
end
%%%%%%%%%计算各个粒子的适应度,初始化pi和pg
for i = 1:N
P(i) = fitness(x(i,:));
y(i,:) = x(i,:);
end
pg = x(N,:);
for i = 1:(N-1)
if fitness(x(i,:)) < fitness(pg) %当目标的自适应都小于全局极值的自适应度时,将目标的自适应度数值赋给全局极值
pg = x(i,:);
end
end
%%%%%%%%%开始主循环,按照速度和位置的公式进行迭代运算,直至满足精度要求为止
for t = 1:M
for i = 1:N
v(i,:) = w*v(i,:)+c1*rand*(y(i,:))+c2*rand*(pg-x(i,:)); %速度迭代
x(i,:) = x(i,:)+v(i,:); %位移迭代
if fitness(x(i,:)) < p(i)
p(i) = fitness(x(i,:));
y(i,:) = x(i,:);
end
if p(i) < fitness(pg)
pg = y(i,:);
end
end
pbest(t) = fitness(pg);
end
%%%%%%%%给出计算的结果
disp('*************')
disp('目标函数取最小值时的自变量:')
xm = pg'
disp('目标函数的最小值:')
fv = fitness(pg)
disp('*************')
PSO.rar_dressnrs_pso matlab
版权申诉
80 浏览量
2022-09-25
00:08:49
上传
评论
收藏 3KB RAR 举报
我虽横行却不霸道
- 粉丝: 75
- 资源: 1万+
最新资源
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
- 基于Python+OpenCV对多张图片进行全景图像拼接,消除鬼影,消除裂缝+源代码+文档说明+界面截图(高分课程设计)
- 基于C++实现的全景图像拼接源码(课程设计)
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的异常姿势识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 隐藏文件展示工具,用来展示被病毒隐藏的文件
- 基于Matlab的图像分割系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈