%
%  DGL-Funktion für movie_Ball:
%   Parameter: fk = "Federkonstante" für den Ball bei Stauchung
%              verlust = Parameter für geschwindigkeitsabh. Dämpfung
%  
function  dw_dt = Ball_Fun( ~, w, fk, verlust )
   g = 9.81;        % Erdbeschleunigung

   dw_dt(1,1) = w(2);  % Ableitung von x = w(1) ist vx = w(2) 
   dw_dt(2,1) = 0;     % DGL: keine Kraft/Beschl. in x-Richtung
   
   dw_dt(3,1) = w(4);  % Ableitung von y = w(3) ist vy = w(4) 
   % Beschleunigung bzw. DGL in y-Richtung:
   %   1. Erdbeschleunigung = -g
   %   2. zwei Anteile beim Aufprall, wenn y < 0 (Sprungfunktion):
   %        Rückfederung = w(3) * fk;     mit: w(3) = y
   %        Verlust      = verlust*w(4),  mit: w(4) = v_y
   %
   %   Sprungfunktion zum Einschalten von Rückfederung und Verlust:
   %     theta(-y) = 0.5*(1-sign(y)),  wird 1, wenn y < 0
   %
   use_theta = 1;  % verwende Sprungfunktion
   if( use_theta )
   dw_dt(4,1) = - g - 0.5*(1-sign(w(3)))* ( w(3) * fk + verlust*w(4) );
   
   % alternativ über Abfrage:
   else
     if( w(3) > 0 )
       dw_dt(4,1) = - g;
     else
       dw_dt(4,1) = - g - ( w(3) * fk + verlust*w(4) );
     end
   end
end
