资源简介
我用matlab自己写的一个三维粒子群算法的程序,不是很精简,有简化的空间,但是功能还是很全面的,注释略多,看不惯可以自己删哈哈
代码片段和文件信息
SR=1000;%搜索范围Searching range
RNS=1;%群体规模与搜索范围之比The ratio of the number of particles to the searching range
M=RNS*SR;%群体规模Members
W=0.5;%惯性权重Inertia weight
C1=5;%加速常数Accelerated constant
C2=5;%加速常数Accelerated constant
RVR=0.02;%最大速度与搜索范围之比The ratio of the maximum velocity to the searching range
RCS=0.01;%收敛区间与搜索范围之比The ratio of the convergent interval to the searching range
CI=RCS*SR;%收敛区间Convergent interval
PT=0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001;%暂停时间Pause time
RNPA=0.5;%正负半轴标度之比The ratio of the negative half axis to the positive half axis
x=SR*rand(1M);
y=SR*rand(1M);
z=SR*rand(1M);
px=x;
py=y;
pz=z;%初始化个体历史最优解数据
vx=RVR*SR*rand(1M);
vxmax=RVR*SR*(zeros(1M)+1);
vy=RVR*SR*rand(1M);
vymax=RVR*SR*(zeros(1M)+1);
vz=RVR*SR*rand(1M);
vzmax=RVR*SR*(zeros(1M)+1);
ox=SR*rand*(zeros(1M)+1);
oy=SR*rand*(zeros(1M)+1);
oz=SR*rand*(zeros(1M)+1);%随机生成谷地位置 以上为初始化过程
sx=abs(x-ox);
sy=abs(x-oy);
sz=abs(x-oz);%评估每个微粒的适应度
[rc]=find(sx==min(min(sx)));
gx=x(rc)*(zeros(1M)+1);
[rc]=find(sy==min(min(sy)));
gy=y(rc)*(zeros(1M)+1);
[rc]=find(sz==min(min(sz)));
gz=z(rc)*(zeros(1M)+1);
while (max(max(sx))>CI)||(max(max(sy))>CI)||(max(max(sz))>CI)%确定结果收敛区间
ox=0.1*SR*rand*(zeros(1M)+1);
oy=0.1*SR*rand*(zeros(1M)+1);
oz=0.1*SR*rand*(zeros(1M)+1);
plot3(oxoyoz‘r*‘);
title(‘三维粒子群算法收敛演示‘);
text(oxoyoz‘随机目标点‘);
xlabel(‘X‘)
ylabel(‘Y‘)
zlabel(‘Z‘);
axis([-RNPA*SR SR -RNPA*SR SR -RNPA*SR SR]);
grid on;
hold on;
plot3(xyz‘b*‘);
hold off;
pause(PT);
if max(max(sx))>CI
vx=W*vx+C1*rand*(px-x)+C2*rand*(gx-x);%根据算法方程给v一个改变量。因为区间长度较小,所以弱化微粒的自身惯性和自我认知能力,强化社会能力以尽快得到最优解
while max(max(vx))>RVR*SR||min(min(vx))<-RVR*SR
if max(max(vx))>RVR*SR
[rc]=find(vx==max(max(vx
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论