测试函数shubert(十)标准粒子群算法pso求解shubert

测试函数shubert(十)

shubert函数属于周期性多峰函数,如图1所示拥有多个全局最优值,如图二所示在一个周期内只有一个全局最优值,局部最优解较多,适合测试算法的收敛性能,粒子群算法是一种收敛速度较快的算法,运算速度快,本文用标准粒子群算法进行求解,如有疑问,欢迎大家留言交流!
函数图像如下
测试函数shubert(十)标准粒子群算法pso求解shubert_第1张图片
测试函数shubert(十)标准粒子群算法pso求解shubert_第2张图片
MATLAB编程shubert代码如下:

clc
clear
close all
x = -2:0.1:2;
y  = -2:0.1:2;
x = -10:0.1:10;
y  = -10:0.1:10;
[x,y] = meshgrid(x,y);
[m,n] = size(x);
z = zeros(m,n);
for ii = 1:m
    for jj = 1:n
        xx = [x(ii,jj) y(ii,jj)];
        z(ii,jj) = shubertfun(xx);
    end
end
figure
surf(x,y,z)
xlabel('x1')
ylabel('x2')
zlabel('z')
axis([-2 2 -2 2 -200 200])
% axis([-10 10 -10 10 -200 200])
% shading inte

你可能感兴趣的:(#,常用测试函数及100种求解方法,算法,人工智能,matlab)