本人很菜,matlab又只是一个辅助工具(仅针对本人),所以不算熟悉,在这里整理一些画图方法以及提供代码,方法很笨,还望大神指正。
matlab画函数图像
- 不带约束条件函数图像方法
例子函数:
一维图像代码如下:
clear
all
;
x=-10:0.1:10;
z=abs(x.*sin(x)+0.1.*x);
plot(x,z)
xlabel(
'x'
);
ylabel(
'F'
);
title(
'函数10'
);
结果如下:
二维图像代码如下:
clear
all
;
t=-10:0.1:10;
[x,y] =meshgrid(t);
%%表示区域网格控制,目的是为了让x,y形成格点矩阵%%
z=abs(x.*sin(x)+0.1.*x)+abs(y.*sin(y)+0.1.*y);
surfc(x,y,z);
%%设置三维曲面x轴,y轴,z轴,标题对应内容及三个坐标轴的取值范围%%
shading
interp
xlabel(
'x1'
);
ylabel(
'x2'
);
zlabel(
'F'
);
title(
'????10'
);
结果如下:
- 带约束条件的函数图像方法
例子函数:
一维图像代码如下:
clc
clear
x=-40:0.1:40;
y=x+20;
for
i=1:length(x)
if
y(i)<0
t1(i)=-160+y(i).^2;
elseif
y(i)>=0 & y(i)<=15
t1(i)=160/15.*(y(i)-15);
elseif
y(i)>=15 & y(i)<=20
t1(i)=200/5.*(15-y(i));
elseif
y(i)>20
t1(i)=-200+(y(i)-20).^2;
end
end
z=t1+200;
plot(x,z);
xlabel(
'x'
);
ylabel(
'F'
);
title(
'函数1'
);
结果如下:
二维图像代码如下:
clc
clear
x=-40:0.1:40;
[x1,x2]=meshgrid(x);
y1=x+20;
y2=x+20;
for
i=1:length(x1)
if
y1(i)<0
t1(i)=-160+y1(i).^2;
elseif
y1(i)>=0 & y1(i)<=15
t1(i)=160/15.*(y1(i)-15);
elseif
y1(i)>=15 & y1(i)<=20
t1(i)=200/5.*(15-y1(i));
elseif
y1(i)>20
t1(i)=-200+(y1(i)-20).^2;
end
end
for
i=1:length(x2)
if
y2(i)<0
t2(i)=-160+y2(i).^2;
elseif
y2(i)>=0 & y2(i)<=15
t2(i)=160/15.*(y2(i)-15);
elseif
y2(i)>=15 & y2(i)<=20
t2(i)=200/5.*(15-y2(i));
elseif
y2(i)>20
t2(i)=-200+(y2(i)-20).^2;
end
end
for
i=1:length(x1)
for
j=1:length(x2)
z(i,j)=t1(i)+t2(j)+200.*2;
end
end
surfc(x1,x2,z);
shading
interp
xlabel(
'x1'
);
ylabel(
'x2'
);
zlabel(
'F'
);
title(
'????1'
);
结果如下: