% micek odrazejici se od stolu
clear;
clc;
# vymazeme nastaveni vykreslovani
__gnuplot_raw__ "reset;";
# nastavuje opet vykresleni plnou carou
__gnuplot_set__ data style lines;
# obnoveni rozsahu os
__gnuplot_set__ xrange [:]
__gnuplot_set__ yrange [:]
printf("Odraz micku od podlahy\n");
% definice poèáteèních podmínek (v zakladních jednotkách SI)
t0=0;
x0=0;
y0=5; 		% pocatecni vyska         
vx0=5;	        % x-slozka pocatecni rychlosti
vy0=0;		% y-slozka pocatecni rychlosti
g=9.81;
R=0.1;		% polomer micku
m=0.3;		% hmotnost micku
S=4*pi*R^2;	% prurez micku
rho=1.2;	% hustota vzduchu
C=0.5;		% soucinitel odporu
k=C*rho/2*S;
rk=.95;		% koeficient pri odrazu
dt=0.01;	% integracni krok
mez=7.95;		% mez casu
% -----------------------------------------------
% vlastní numerická integrace - klasická Eulerova metoda
% -----------------------------------------------
cas_spusteni = clock();
t(1)=t0;
x(1)=x0;
y(1)=y0;
vx(1)=vx0;
vy(1)=vy0;
i=1;
 while (t(i)<=mez) 
   i=i+1;
   v=sqrt(vx(i-1)^2+vy(i-1)^2);	
   ax=-k*v*vx(i-1)/m;
   vx(i)=vx(i-1)+ax*dt;
   if (y(i-1)<R)
   ay=0.1*(R-y(i-1))/m;
   else
   ay=-g-k*v*vy(i-1)/m;
   endif
   if ((y(i-1)<R) & (vy(i-1)<0))
   vy(i)=-rk*vy(i-1);
   else
   vy(i)=vy(i-1)+ay*dt;
   endif
   x(i)=x(i-1)+vx(i-1)*dt;
   y(i)=y(i-1)+vy(i-1)*dt;
   t(i)=t(i-1)+dt;
 endwhile  
% -----------------------------------------------
celkovy_cas = etime(clock(), cas_spusteni);
disp(['Program bezel ',num2str(celkovy_cas),' sekund.']);
% -----------------------------------------------
% vykreslení zavislosti
% nastaveni obrazku
__gnuplot_set__ grid
__gnuplot_set__ xzeroaxis lt -1
__gnuplot_set__ nokey
__gnuplot_set__ xlabel "x(m)"
__gnuplot_set__ ylabel "y(m)"
plot(x,y);
printf("Vykreslime zavislost x na case\n");
printf("Stisknete libovolnou klavesu...\n");
pause
__gnuplot_set__ xlabel "t(s)"
__gnuplot_set__ ylabel "x(m)"
plot(t,x);
printf("Vykreslime zavislost vy na case\n");
printf("Stisknete libovolnou klavesu...\n");
pause
__gnuplot_set__ xlabel "t(s)"
__gnuplot_set__ ylabel "v_y(m/s)"
plot(t,vy);
printf("Vykreslime zavislost vy na x\n");
printf("Stisknete libovolnou klavesu...\n");
pause
__gnuplot_set__ xlabel "x(m)"
__gnuplot_set__ ylabel "v_y(m/s)"
plot(x,vy);
