资源简介
协同粒子群matlab程序,协同PSO算法的系统辨识,算法可实现逐维寻优,避免算法的退化 ,本人在matlab2016a上面运行能够跑通,希望对需要的人有用。

代码片段和文件信息
clear all
close all
iter =40; %迭代次数
n = 5; %粒子维数
m = 50; %种群规模
%w = 0.1; %算法参数
c1 = 2; %算法参数
c2 = 2; %算法参数
%粒子初始化
%(T1,T2,T3,K,t)
for i=1:m
for j=1
pop(ij)=10+5*rands(11);
end
end
for i=1:m
for j=2
pop(ij)=20+5*rands(11);
end
end
for i=1:m
for j=3
pop(ij)=30+5*rands(11);
end
end
for i=1:m
for j=4
pop(ij)=rand(11);
end
end
for i=1:m
for j=5
pop(ij)=60+5*rands(11);
end
end
V=zeros(mn);%初始化粒子速度
BsJ=0;
%初始化种群中的粒子最优和个体最优
for s=1:m
indivi=pop(s:);
[indivisBsJ]=fitness(indivisBsJ);
P(s)=BsJ;
end
[OrderErIndexEr]=sort(P);%适应值排序
Pleast=OrderEr(1);%最小误差
for i=1:m %群体最优
if Pleast==P(i)
gbest=pop(i:);
break
end
end
pbest=pop;%个体最优
%循环
for t=1:iter
t
w=0.9-(0.5*t)/iter;
for s=1:m
%r1r2粒子群算法参数
r1=rand(1);
r2=rand(1);
% C=c1+c2;
% A=2/(abs(2-C-sqrt(C*C-4*C)));
%速度更新
V(s:) = (w*V(s:) + c1*r1*(pbest(s:)-pop(s:)) + c2*r2*(gbest-pop(s:)));
%位置更新
for i=1:3
if V(si)>3
V(si)=3;
end
if V(si)<-3
V(si)=-3;
end
end
for i=4
if V(si)>0.2
V(si)=0.2;
end
if V(si)<-0.2
V(si)=-0.2;
end
end
for i=5
if V(si)>10
V(si)=10;
end
if V(si)<-10
V(si)=-10;
end
end
pop(s:)=pop(s:)+V(s:);
%更新后的适应度值
[pop(s:)sBsJ]=fitness(pop(s:)sBsJ);
p(s)=BsJ;
%根据适应度值对个体和群体最优进行更新
if p(s) pbest(s:)=pop(s:);
P(s)=p(s);
end
if p(s) gbest=pop(s:);
Pleast=p(s);
N=s;
end
end
G=gbest;
g=gbest;
for i=1:n
for s=1:m
g(i)=pbest(si);
[gNBsJ]=fitness(gNBsJ);
if BsJ G(i)=g(i);
end
end
end
[GNBsJ]=fitness(GNBsJ);
if BsJ Pleast=BsJ;
gbest=G;
end
Best(t)=Pleast;
gbest
end
plot(Best);
title(‘G(s)函数适应度曲线‘)
xlabel(‘进化次数‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-11-08 15:35 copso\
文件 2672 2013-09-10 23:48 copso\copso.fig
文件 2585 2013-09-24 20:52 copso\copso.m
文件 2681 2013-09-24 21:00 copso\copso1.fig
文件 868 2013-09-02 15:10 copso\fitness.asv
文件 884 2013-09-02 15:22 copso\fitness.m
相关资源
- 四旋翼MATLAB仿真文件+实验报告
- 串行级联cpm系统MATLAB仿真
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
评论
共有 条评论