二维粒子群算法的matlab实现

首先是程序的初始化%% 程序初始化 √clc;clear;close all;接着是确定粒子群算法的适应度函数,此处用一个二元函数来代替,根据问题不同可以替换适应度函数%% 目标函数 √f = @(x,y) x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x) - y + cos(5 * y) + 5 * y .* sin(3 * y); % f(X,Y)X = 0:0.1:20;Y = 0:0.1:10;[x,y] = me
摘要由CSDN通过智能技术生成

首先是程序的初始化

%% 程序初始化  √
clc;
clear;
close all;

接着是确定粒子群算法的适应度函数,此处用一个二元函数来代替,根据问题不同可以替换适应度函数

%% 目标函数  √
f = @(x,y) x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x) - y + cos(5 * y) + 5 * y .* sin(3 * y);  % f(X,Y)

X = 0:0.1:20;
Y = 0:0.1:10;
[x,y] = meshgrid(X,Y);  % 生成网格,构造X,Y矩阵
z_1 = x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x) - y + cos(5 * y) + 5 * y .* sin(3 * y);
figure(1)
mesh(x,y,z_1);  % 以网格状绘制图像

下面是设置粒子群算法的运行参数,本文在x~[0,20],y~[0,10]范围内寻找目标函数的最大值

%% 优化相关参数设置  √
N = 50;                         % 初始种群个数
d = 2;                          % 空间维数
ger = 1000;                     % 最大迭代次数     
xlimit = [0, 20];               % 设置x参数限制
ylimit = [0,10];                % 设置y参数限制
vlimit = [-5,5];                % 设置速度限制
w = 0.8;                        % 惯性权重
c1 = 1.495;                     % 自我学习因子
  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值