Problem with ploting exp function

1 view (last 30 days)
I try to plot t(x,y) = (x^2 - 2y^2)*e^(x-y) in Matlab and i use the following code
t=@(x,y)((x.^2-2*y.^2).*exp(x-y));
x = -1:2/50:1;
y = -2:4/50:2;
[X, Y] = meshgrid(x, y);
surf(X, Y, t(X,Y));
rotate3d on;
I got the result but it is not the same as i drawn in Geogebra
I think there is a problem with .*exp(x-y)
  4 Comments
Dinh Le Dung
Dinh Le Dung on 3 May 2022
I see, thanks for your help sir!

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 3 May 2022
Edited: Stephen23 on 3 May 2022
"I think there is a problem with .*exp(x-y)"
I doubt that. Did you look at the domains and ranges that you are plotting?
Your Geogebra example shows that you plotted over x = -8..+8 and y = -8..+8. Then in MATLAB you plotted over x = -1..1 and y = -2..2. And then you did not limit the Z axes to the same range as your example plot. Lets try that now:
x = -8:0.5:8;
y = -8:0.5:8;
[X,Y] = meshgrid(x,y);
T = (X.^2-2*Y.^2).*exp(X-Y);
surf(X,Y,T);
zlim([-3,6])

More Answers (1)

Catalytic
Catalytic on 2 May 2022
If I had to guess, you have x and y reversed.
[X, Y] = ndgrid(x, y);
surf(X, Y, t(X,Y));
  1 Comment
Dinh Le Dung
Dinh Le Dung on 3 May 2022
i dont think so :((, but thanks for your help!

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!