%%% Simulacion de osciladores amortiguados y forzados, calculos de
%%% espectros y resonancias. Simulacion de aspectos relevantes del
%%% comportamiento oscilatorio.


%%% 1 El oscilador forzado y amortiguado.

%%% Constantes fisicas
function oscilador2(m,gama,k,w,F,Tmax,ptype)

%% Plantear la misma solucion (en numeros complemjos) para todos los casos
t=[0:0.01:Tmax];
Z=sqrt(gama*gama+power((w*m-k/w),2));
fi=atan((w*m-k./w)/gama);
x=F*sin(w*t-fi)/(Z*w);
fo=F*cos(w*t);
v=w*F*cos(w*t-fi)/(Z*w);
switch lower(ptype)    
    case{'posicion'}
    plot(t,x,t,fo);box off;
    case{'velocidad'}
    inds=find((v > 0 & fo > 0) | (v < 0 & fo < 0) ); %
    cla;hold on;
    plot(t(inds),v(inds),'.','Color','b','LineWidth',2);
    plot(t(inds),fo(inds),'.','Color','b','LineWidth',1);
    inds=find((v > 0 & fo < 0) | (v < 0 & fo > 0));
    plot(t(inds),v(inds),'.','Color','r');
    plot(t(inds),fo(inds),'.','Color','r');

end