如何绘制f(x(1),x(2))=21.5+x(1)*sin(4*pi*x(1))+x(2)*sin(20*pi*x(2); 这个函数图,用matlab

s.t
-3-x(1)<=0
x(1)-12.1<=0
4.1-x(2)<=0
x(2)-5.8<=0
刚刚学matlab,试了好久都做不出来。。
求大神!

[x1,x2]=meshgrid(-3:0.05:12.1,4.1:0.05:5.8);
f=21.5+x1.*sin(4*pi*x1)+x2.*sin(20*pi*x2);
mesh(x1,x2,f),grid on;xlabel('x1'),ylabel('x2'),zlabel('f(x1,x2)');

追问

请问,
第一,meshgird后面的参数有特殊要求吗?我是说取的间隔
第二,为什么是f=21.5+x1.*sin(4*pi*x1)+x2.*sin(20*pi*x2); X1后面加个点
第三,mesh和plot还有surf有什么区别
第四,grid on 有什么用?

谢谢你啦,我搞明白就给分你了~

追答

meshgird后面的参数没啥特殊要求,间隔主要是为了成图的效果和不违反数学的定义就可。

数组的乘、除、乘方要用点运算,以此与矩阵运算区别。

plot是二维数据绘图,mesh和surf是三维数据绘图,区别主要是网格线颜色和其之间是否填色的不同。

grid on 是生成坐标网格,易于你读取坐标数据。

你还是参考help文档吧,这些实在太基础没啥好说的,你通过简单的试验一看就懂!

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答