本程序用于绘制三维函数的模板,输入的要求是构造的变量x1和x2数目相同
% 绘制三维图像
% 清屏
clc
clear all; % 删除工作区变量
close all; % 关闭图形窗口
lx1 = input('请输入 x1 的下边界:') % x1 的下边界
ux1 = input('请输入 x1 的上边界:') % x1 的上边界
foot1 = input('请输入 x1的步距:') % x1的步距
lx2 = input('请输入 x2 的下边界:') % x2 的下边界
ux2 = input('请输入 x2 的上边界:') % x2 的上边界
foot2 = input('请输入 x2 的步距:') % x2 的步距
x1 = lx1:foot1:ux1; % 构造x1 变量
x2 = lx2:foot2:ux2 % 构造x1 变量
% 要求x1 和 x2 的数目相同
% 构造 z 变量
for i=1:(ux1-lx1)/foot1+1
for j = 1: (ux2-lx2)/foot2 +1
x = [x1(i),x2(j)]; % 将变量存储到一个变量中,便于传递
z(i,j) = fun(x);
end
end
[x,y]=meshgrid(x1,x2);%网格化
mesh(x,y,z) %画图
需要绘制的函数,需要在同一文件目录中另存为m文件,这里选取的是网上比较典型的函数
function y = fun(x)
y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+2.71289;
绘制效果如下