disp('Este script crea un video que compara el movimiento de los polos'); disp('en el dominio de Laplace con la función en el dominio del tiempo.'); ejes=[-5 5 -5 5]; close(gcf); axis(ejes); grid on; xlabel('Eje Real'); ylabel('Eje Imaginario'); title('Ubicación de los POLOS.\newline Clic izquierdo para ir ubicando los polos.\newline Clic derecho para el último polo.'); hold on; xy = []; n = 0; but = 1; while but == 1 [xi,yi,but] = ginput(1); plot(xi,yi,'rx','MarkerSize',10); plot(xi,-yi,'bx','MarkerSize',10); n = n+1; xy(:,n) = [xi;yi]; end t = 1:n; ts = 1: 0.1: n; xys = spline(t,xy,ts); plot(xys(1,:),xys(2,:),'r-'); plot(xys(1,:),-xys(2,:),'b-'); pause(1); hold off; ancho=1.5*560; alto=1.5*420; clear F; syms s; syms x; ilap=ilaplace(1./((s-xys(1,:)-xys(2,:).*1i).*(s-xys(1,:)+xys(2,:).*1i)),x); clear F; x=-4*pi:0.1:4*pi; tiempo=eval(ilap.'); ejes2=[-4*pi 4*pi -3 3]; [file,path] = uiputfile('PolosTiempo.avi','Guardar Video'); aviobj = avifile(sprintf('%s%s',path,file)); close(gcf); subplot(2,1,1); subplot(2,1,2); set(gcf,'Position',[100 100 ancho alto]); for n=1:1:size(xys(1,:),2) subplot(2,1,1); axis(ejes); grid on; hold on; plot(xys(1,:),xys(2,:),'r-'); plot(xys(1,:),-xys(2,:),'b-'); plot(xys(1,n),xys(2,n),'rx','MarkerSize',10); plot(xys(1,n),-xys(2,n),'bx','MarkerSize',10); subplot(2,1,2); axis(ejes2); grid on; hold on; plot(x,tiempo(n,:),'r-'); F(n) = getframe(gcf); aviobj=addframe(aviobj,F(n)); hold off; clf; end close(gcf); for n=1:1:size(xys(1,:),2) aviobj=addframe(aviobj,F(size(xys(1,:),2)-n+1)); end aviobj = close(aviobj);