📄 draw_3d.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 + -