Animación

Modos de vibración de una cuerda

Examinamos los modos de vibración de una cuerda de longitud L=1 con periodo P=2π, o bien con ω=1

y=sin( nπ L x )cos( ωt )n=1,2,3...

En este script cada imagen generada (frame) se guarda en el vector F.

L=1;
n=3; %modo normal de vibración de la cuerda
x=0:0.005:1;
j=0;
for t=0:pi/20:2*pi
    y=sin(n*pi*x/L)*cos(t);
    plot(x,y,'r')
    axis([0 1 -1 1])
    j=j+1;
    F(j)=getframe;
end

Mediante el comando movie reproducimos la animación dos veces en la ventana de comandos

>> movie(F,2)

Otro modo de producir la animación es la siguiente

N=1000;
x=linspace(0,5*pi,N);
y=cos(x);
for i=1:N
    clf
    hold on
    plot(x,y)
    plot(x(i), y(i),'ro', 'markersize',4,'markeredgecolor',
'r','markerfacecolor','r');
    grid on
    axis tight
    xlabel('x');
    ylabel('cos(x)')
    set(gca,'XTick',0:pi:5*pi)
    set(gca,'XTickLabel',{'0','\pi','2\pi','3\pi','4\pi', '5\pi'})

    drawnow
    hold off
end

Animación de una pelota

La clave para producir una animación es dibujar una figura en la posición inicial x1, borrar la figura de dicha posición y dibujarla en la nueva posición x2, borrar la figura de la posición x2 y dibujarla en la nueva posición x3 y así, sucesivamente.

%genera los datos
t=0:pi/500:2*pi;   % tiempos
x=cos(t); % posiciones de la pelota

% Dibuja la figura inicial
figure('DoubleBuffer','on')
 %pelota en la posición inicial
hg=plot(x(1),0,'o','MarkerSize',25,'MarkerFaceColor','r');
set(hg,'EraseMode','normal'); 
xlim([-1.1,1.1]);

% Animación
for i=1:length(x)
    set(hg,'XData',x(i),'YData',0);
    drawnow;
end

Las propiedades de EraseMode son: normal, xor y none. Probar el efecto

Ejemplos en el curso de Física

Modos de vibración de una membrana rectangular

Modos de vibración de una membrana circular

Ondas térmicas