粒子群优化算法(Particle Swarm Optimization)的 Matlab(R2018b)代码实现

该博客通过2D Michalewicz function展示了粒子群优化算法的Matlab实现,包括算法的子函数如粒子群初始化、移动及边界处理,以及图形展示,讨论了算法的优缺点,指出其依赖于粒子群大小和迭代次数以找到全局最优解。
摘要由CSDN通过智能技术生成

这里以 2D Michalewicz function 为对象来演示粒子群算法。

1、Michalewicz function

2、代码详解

2.1 画Michalewicz函数的网格图形

f=@(x,y)(-sin(x).*(sin(x.^2/3.1415926)).^(2*m)...
    -sin(y).*(sin(2*y.^2/3.1415926)).^(2*m));

range=[0 4 0 4];
Ngrid=100;
dx=(range(2)-range(1))/Ngrid;
dy=(range(4)-range(3))/Ngrid;
xgrid=range(1):dx:range(2);
ygrid=range(3):dy:range(4);
[x,y]=meshgrid(xgrid,ygrid);
z=f(x,y);
figure(1);
%subplot(1,2,1);
surfc(x,y,z);
hold on;

2.2 粒子群优化算法的子函数

粒子群初始化

function [xn,yn]=init_pso(n,range)
xrange=range(2)-range(1);
yrange=range(4)-range(3);
xn=rand(1,n)*xrange+range(1);
yn=rand(1,n)*yrange+range(3);
end

粒子群的移动

function [xn,yn]=ps
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值