由已知数学公式画出三维图像

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);

经验总结:1.exp函数是e的指数函数,exp(2)相当于e的2次方
2.即便这个公式很长,也不可分行(错误提示:表达式或语句不正确–可能 (、{ 或 [ 不对称。)
3.乘法不能省略*(错误提示:圆括号或方括号不对称或异常。)

提问:为什么我的运行结果和老师的不一样呢,是变量的取值问题还是公式输入错了?
(图一是老师的运行结果)
在这里插入图片描述在这里插入图片描述
Ps:今天发现了一个MATLAB的官方教学站子 ww2.mathworks.cn/help/matlab/index.html

解决方法:
是公式写错了,乘法应该是.* 除法是./ 幂是.^
正确代码:

X1=[0:0.001:2];%可以通过更改第三个数据来改变凹凸程度
Y1=[0:0.001:1];
[X,Y]=meshgrid(X1,Y1);
% [X,Y]=meshgrid(0:0.001:1.5);
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维方向');

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值