资源简介
小生境PSO算法matlab程序
程序在原有PSo常用测试函数的基础上进行改进,实现了多模寻优
代码片段和文件信息
clc;clear;
close all;
%-----确定实际问题参数集------
wmin=0;wmax=0.9; %惯性权重
itmax=50; %最大循环次数
c1=2;c2=2; %自身因子和全局因子
for iter=1:itmax
W(iter)=wmax-((wmax-wmin)/itmax)*iter;%自适应权重
end
a=0;b=1; %变量取值范围
N=30; %粒子个数
D=1; %维数
step=0.01; %步长
f=‘exp(-2*log(2)*(((x-0.1)./0.8).^2)).*((sin(5*pi*x)).^6)‘;
x=[a:step:b];
xf=x;
y=eval(f);
x=[];
vmfit=[];
x=a+(b-a)*rand(N1); %位置初始化
V=wmin+(wmin-wmax)*rand(N1); %向量初始化
for i=1:N
F(i1)=exp(-2*log(2)*(((x(i1)-0.1)/0.8).^2))*((sin(5*pi*x(i1))).^6);%第一代个体适应度计算
end
media=mean(F(:1));
vmfit=[vmfit media];
[CI]=max(abs(F(:1)));
B(11)=C;
gbest(11)=x(I1); %群体最优位置
for p=1:N
G(p1)=gbest(11); %更新群体最优位置记录
end
Fbest(11)=exp(-2*log(2)*(((G(11)-0.1)/0.8).^2))*((sin(5*pi*G(11))).^6);%群体最优位置适应度
for i=1:N
pbest(i1)=x(i1); %个体最优位置,第一代群体设为当前位置
end
Fb(11)=exp(-2*log(2)*(((pbest(11)-0.1)/0.8).^2))*((sin(5*pi*pbest(11))).^6);%个体最优位置适应度
%------程序主循环----------
for j=2:itmax
V(:j)=W(j-1)*V(:j-1)+c1*rand*(pbest(:j-1)-x(:j-1));%+c2*rand*(G(:j-1)-x(:j-1));%向量更新
x(:j)=x(:j-1)+V(:j); %位置更新
for xx=1:N
if x(xxj) x(x
相关资源
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- matlab空间桁架计算程序
- newmark法源程序
- 用matlab写的有限元程序-FEM2DL_Box.m
- KF+EKF matlab程序实现
- Matlab多元统计分析程序
- 水和水蒸气热力性质计算程序代码m
- 多重分形Qcc检验程序
- 清洁机器人路径规划matlab仿真程序
- SRC的程序,matlab的,很有用处
- 粒子群算法优化pid源码 matlab仿真.ra
- 圆拟合matlab程序,以及圆心 半径的确
- stlwritematlab程序
- 层次分析法的matlab程序
- 泊松过程的模拟及检验 matlab程序
- 小卫星多普勒频偏MATLAB仿真程序及参
- EMD 算法MATLAB 程序
- 世上最牛的23个图像跟踪算法MATLAB程序
- 散点拟合平面的MATLAB程序
- 8PSK通信系统的蒙特卡罗仿真分析 ma
- 角普法再现程序
- 信号检测与估计-理论与应用答案及
- 雷达数字配相法多波束形成仿真程序
- 通用弹道仿真计算程序V1.0-源码
- STBC 空时编码程序
- ROC曲线MATLAB程序
- 纸牌识别Matlab源程序+报告
- dijkstra算法改进的matlab程序能求出两点
- EEMD的MATLAB程序
评论
共有 条评论