Sunday

April 20, 2014

April 20, 2014

Posted by **Lee** on Wednesday, July 20, 2011 at 2:59am.

disp('Problem 13.9')

x=[-2*pi:.00001*pi:2*pi];

a=0;

y=sin(x-a);

g=plot(x,y);

title(sprintf('sin(x-%.2f)\n',a))

grid on;

set(g,'EraseMode','xor')

while a<=8*pi

a=a+.1*pi;

y=sin(x-a);

plot(x,y)

title(fprintf('sin(x-%.2f)\n',a))

grid on;

drawnow

end

I have another question though that I seem to be struggling with.

Create an animation of the following:

Let x vary form -2pi to +2pi

Let y=sin(x)

Let z=sin(x-a)cos(y-a)

Let a be the animation variable.

Remember that you'll need to mesh x and y to create two-dimensional matrices; use the resulting arrays to find z.

Here's my attempt at a solution.

x=-2*pi:pi/50:2*pi;

y=sin(x);

[X,Y]=meshgrid(x,y);

z=sin(X)*cos(Y);

h=surf(z);

axis tight

set(gca,'nextplot','replacechildren');

shading interp

colormap(jet)

for a=0:pi/100:8*pi

z=sin(X-a)*cos(Y-a);

set(h,'zdata',z);

drawnow

end

When I try to run it the axes are colored for like a tenth of a second and then it just turns to white. I don't know exactly what I'm doing wrong.

- Computer Science - MATLAB -
**MathMate**, Wednesday, July 20, 2011 at 8:35amI had a quick look at the code, and I suggest the following changes (just a guess).

I believe the code has worked as expected, but the duration of the animation is only about 1/10th of a second.

To test the hypothesis, change

for a=0:pi/100:8*pi

to

for a=0:pi/1000:8*pi

to make 10 times more frames. If it stays for about a second, then it is the problem.

The other "problem" that it stays white at the end is probably the endpoint (8π) puts everything to zero, so it is/may be coloured white.

Try changing the endpoint to, say

8.5π or 8.25π and see if it makes a difference.

Let me know how it goes.

- Computer Science - MATLAB -
**Lee**, Wednesday, July 20, 2011 at 8:47amI tried both and both results leave me with the same result, It just flashes real quick and then turns white... I even tried a=0:pi/1000000000:8*pi, it stays for a little bit longer but then turns white....

I think it's an issue with something else... what I'm not exactly sure as it's strange that something does appear but then quickly disappears...

- Computer Science - MATLAB -
**MathMate**, Wednesday, July 20, 2011 at 9:11amA couple of things you could try:

1. put

refreshdata

before "drawnow".

Hopefully this will update every frame of the image.

2. put a finer grid, such as

x=-2*pi:pi/500:2*pi;

instead of 50.

Sorry that I cannot be more definite because I don't have access to Matlab, especially the plotting part.

- Computer Science - MATLAB -
**Lee**, Wednesday, July 20, 2011 at 9:20amSame thing. I wounder if I'm suppose to be using the surfz function and not some other 3 dimensional plotting function?

- Computer Science - MATLAB -
**Lee**, Wednesday, July 20, 2011 at 9:43amgot it

<_< forgot the dot and got rid of the axis tight

disp('Problem 13.11')

x=-2*pi:pi/50:2*pi;

y=sin(x);

[X,Y]=meshgrid(x,y);

z=sin(X)*cos(Y);

h=surf(z);

set(gca,'nextplot','replacechildren');

shading interp

colormap(jet)

for a=0:pi/100:8.25*pi

z=sin(X-a).*cos(Y-a);

set(h,'zdata',z);

drawnow

end

- Computer Science - MATLAB -
**MathMate**, Wednesday, July 20, 2011 at 11:01amGreat! I missed that too (the dot).

**Related Questions**

Computer Science - MATLAB - In a problem I had to create a animation of the ...

math - Eliminate the parameter (What does that mean?) and write a rectangular ...

math - Use the exact values of the sin, cos and tan of pi/3 and pi/6, and the ...

Math(Please help) - 2) Use the sum and difference identites sin[x + pi/4] + sin[...

Math(Please help) - 1)tan Q = -3/4 Find cosQ -3^2 + 4^2 = x^2 9+16 = sqrt 25 = 5...

math - find all solutions in the interval [0,2 pi) sin(x+(3.14/3) + sin(x- 3.14/...

Pre-Cal - Find the 5 roots of x^5+1=0 in polar and Cartesian form. (x^5 means x ...

trig - Give exact answers Sin(11pi/8) so this is sin(pi/4+pi/3) sin(pi/4)*cos(pi...

math - Use the exact values of the sin, cos and tan of pi/3 and pi/6, and the ...

d/dx - d/dx( ln |sin(pi/x)| ) = ? Thanks. If those are absolute value signs, the...