⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draw_3d.m

📁 本人编辑的标准PSO算法
💻 M
字号:
%The DeJong (Sphere) function for use with the psotoolbox
% Function Description:
% Equation -> sum ( x(i)^2 )
%      xmin  = [0, 0, 0.....0]  (all zeroes)
%      fxmin = 0                  (zero)
clear;clc;
%%%%%%%%% DeJong (Sphere) 三维曲面绘图 %%%%%%%%%% --[1]
if 1
    X = -2:0.1:2;
    Y = X;
    [Dx,Sizex] = size(X);
    [Dy,Sizey] = size(Y);
    for i = 1:Sizex
        for j = 1:Sizey
            Z(j,i) = X(i)^2 + Y(j)^2;
        end
    end
    surf(X,Y,Z); %三维曲面绘图函数,X、Y为i、j向量,Z为j、i矩阵,即:( X(i),Y(j),Z(j,i) );
    axis([-2  2  -2  2  0  8]);
    xlabel('X');ylabel('Y');zlabel('Z'); title('二维Sphere函数');
    shading interp;
end
%%%%%%%%% Rosenbrock 三维曲面绘图 %%%%%%%%%% --[2]
%The Rosenbrock function for use with the psotoolbox
% Function Description:
% Equation -> sum ( 100 * (x(i+1) - x(i)^2)^2 + (1-x(i))^2 )
%      xmin  = [1, 1, 1.....1]  (all ones)
%      fxmin = 0                  (zero)
if 1
    figure(2);
    X = -2:0.1:2;
    Y = X;
    [Dx,Sizex] = size(X);
    [Dy,Sizey] = size(Y);
    for i = 1:Sizex
        for j = 1:Sizey
            Z(j,i) = 100 * ( Y(j)-X(i)^2 )^2 + (1- X(i) )^2;
        end
    end
    surf(X,Y,Z); %三维曲面绘图函数,X、Y为i、j向量,Z为j、i矩阵,即:( X(i),Y(j),Z(j,i) );
    axis([-2  2  -2  2  0  4000]);
    xlabel('X');ylabel('Y');zlabel('Z'); title('二维Rosenbrock函数');
    shading interp;
end
%%%%%%%%% Rastrigin 三维曲面绘图 %%%%%%%%%% --[3]
%The Rastrigin function for use with the psotoolbox
% Function Description:
% Equation ->  sum (x(i)^2 - 10 * cos(2 * pi * x(i)) + 10)
%      xmin  = [0, 0, 0.....0]  (all zeoes)
%      fxmin = 0                  (zero)
if 1
    figure(3);
    X = -10:0.1:10;
    Y = X;
    [Dx,Sizex] = size(X);
    [Dy,Sizey] = size(Y);
    for i = 1:Sizex
        for j = 1:Sizey
            Z(j,i) = 10*2 + X(i)^2 -10*cos( 2*pi*X(i) ) + Y(j)^2 -10*cos( 2*pi*Y(j) );
        end
    end
    surf(X,Y,Z); %三维曲面绘图函数,X、Y为i、j向量,Z为j、i矩阵,即:( X(i),Y(j),Z(j,i) );
    axis([-10  10 -10  10  0  250]);
    xlabel('X');ylabel('Y');zlabel('Z'); title('二维Rastrigin函数');
    shading interp;
end
%%%%%%%%% Griewank 三维曲面绘图 %%%%%%%%%% --[4]
%The Griewank function for use with the psotoolbox
% Function Description:
% Equation -> sum(((x(i).^2) / 4000)')' - prod(cos(x(i) ./ sqrt(i))')' + 1
%      xmin  = [0, 0, 0.....0]  (all zeroes)
%      fxmin = 0                  (zero)
if 1
    figure(4);
    X = -50 : 0.5 : 50;
    Y = X;
    [Dx,Sizex] = size(X);
    [Dy,Sizey] = size(Y);
    for i = 1:Sizex
        for j = 1:Sizey
            Z(j,i) = (X(i))^2/4000 + (Y(j))^2/4000 - cos(X(i)/sqrt(1)) * cos(Y(j)/sqrt(2)) + 1;
        end
    end
    surf(X,Y,Z); %三维曲面绘图函数,X、Y为i、j向量,Z为j、i矩阵,即:( X(i),Y(j),Z(j,i) );
%     axis([-50 50 -50  50  0  3.5]);
    xlabel('X');ylabel('Y');zlabel('Z'); title('二维Griewank函数');
    shading interp;
end
%%%%%%%%%  Levy No.3 三维曲面绘图 %%%%%%%%%% --[5]
%The Rastrigin function for use with the psotoolbox
% Function Description:
% Equation ->  sum (x(i)^2 - 10 * cos(2 * pi * x(i)) + 10)
%      xmin  = [0, 0, 0.....0]  (all zeoes)
%      fxmin = 0                  (zero)
if 0
    figure(5);
    X = -10:0.1:10;
    Y = -10:0.1:10;
    [Dx,Sizex] = size(X);
    [Dy,Sizey] = size(Y);
    for i = 1:Sizex
        for j = 1:Sizey
            Z(j,i) = 10*2 + X(i)^2 -10*cos( 2*pi*X(i) ) + Y(j)^2 -10*cos( 2*pi*Y(j) );
        end
    end
    surf(X,Y,Z); %三维曲面绘图函数,X、Y为i、j向量,Z为j、i矩阵,即:( X(i),Y(j),Z(j,i) );
    axis([-10  10 -10  10  0  250]);
    xlabel('X');ylabel('Y');zlabel('Z');title('二维Levy No.3函数');
    shading interp;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -