MATLAB根据已知数学公式画三维图像

X=[0:0.1:1];
Y=[0:0.1:1];
[X,Y]=meshgrid(X,Y);
Z=(3.9*exp((-0.25)*(9*X-2)^2-0.25*(9*Y-2)^2)+3.9*exp((-1)*(9*X+1)^2/49-(9*Y+1)/10.0)+2.6*exp((-0.25)*((9*X-7)^2+(9*Y-3)^2))-1.04*exp((-1)*(9*X-4)^2-(9*Y-7)^2));
%MATLAB的语句是以行为单位解释执行的,大多数语句不允许断为多行(少数情况下,例如输入数组,是允许分为多行输入的)
%乘法的地方不能省略符号 * 
surf(X,Y,Z);
mesh(X,Y,Z);

提问:按照讲课的PPT中的数学公式做三维图,运行出来的图为什么跟老师的完全不一样?
解答:公式输入不规范
在这里插入图片描述
在这里插入图片描述
更改后代码:

[X,Y]=meshgrid(0:0.001*pi:1);
Z=(3.9*exp((-0.25)*(9*X-2).^2-0.25*(9*Y-2).^2)+3.9*exp(((-1)*(9*X+1).^2)./49-(9*Y+1)./10.0)+2.6*exp((-0.25)*((9*X-7).^2+(9*Y-3).^2))-1.04*exp((-1)*(9*X-4).^2-(9*Y-7).^2));
% %MATLAB的语句是以行为单位解释执行的,大多数语句不允许断为多行(少数情况下,例如输入数组,是允许分为多行输入的)
% %乘法的地方不能省略符号 * 
surf(X,Y,Z);
mesh(X,Y,Z);
xlabel('x维方向');
ylabel('y维方向');
zlabel('z维方向');

PS:输入公式的时候,由于x,y都是矩阵,乘法除法运算时后面应有点号

运行结果:

在这里插入图片描述
ps:可以更改比例
X1=[0:0.001:2];
Y1=[0:0.001:1];
[X,Y]=meshgrid(X1,Y1);
在这里插入图片描述

发布了9 篇原创文章 · 获赞 0 · 访问量 576

猜你喜欢

转载自blog.csdn.net/qq_43536231/article/details/105173206