w(i) = wmax - ((wmax - wmin)/Gmax)*i;
x(i, j) = Xmin + (Xmax - Xmin)*rand(1);
v(i, j) = Vmin + (Vmax - Vmin)*rand(1);
plocal(i, :) = findlbest(x(Size, :), x(i, :), x(i+1, :));
plocal(i, :) = findlbest(x(i-1, :), x(i, :), x(1, :));
plocal(i, :) = findlbest(x(i-1, :), x(i, :), x(i+1, :));
if fitfun(x(i, :)) > fitfun(BestS)
v(i, :) = w(kg)*v(i, :) + c1*rand*(y(i, :) - x(i, :)) + c2*rand*(plocal(i, :) - x(i, :));
v(i, :) = w(kg)*v(i, :) + c1*rand*(y(i, :) - x(i, :)) + c2*rand*(BestS - x(i, :));
x(i, :) = x(i, :) + v(i, :)*1;
x(i, k) = Xmin + (Xmax - Xmin)*rand(1);
plocal(i, :) = findlbest(x(Size, :), x(i, :), x(i+1, :));
plocal(i, :) = findlbest(x(i-1, :), x(i, :), x(1, :));
plocal(i, :) = findlbest(x(i-1, :), x(i, :), x(i+1, :));
if fitfun(x(i, :)) > p(i)
Best_value(kg) = fitfun(BestS);
plot(kg, Best_value, 'r', 'linewidth', 2, 'Color', "#F7A7B7"), grid on
ylabel('Fitness function');
display('Local Maximum x at'); disp(BestS);
Local Maximum x at
3.1614 4.0000
display('with the value of the fitness function = '); disp(Best_value(Gmax));
with the value of the fitness function =
22.1520
[X, Y] = meshgrid(-4:8/40:4);
Z = (3*cos(X.*Y) + X + Y.^2);
plot3(BestS(1), BestS(2), Best_value(Gmax), 'pentagram', 'MarkerFaceColor','red', 'MarkerSize', 15),
xlabel('x'), ylabel('y'), zlabel('f(x,y)')
f = 3*cos(x(1)*x(2)) + x(1) + x(2)^2;
function f = findlbest(x1, x2, x3)
fSet = [fitfun(x1), fitfun(x2), fitfun(x3)];
[maxvalue index] = max(fSet);
plocalbest = xSet(index,:);