%
% function SenkrFall( x0, v0, tm, d )
%    Senkrechter Fall mit Reibung
%       x0 : Anfangsort
%       v0 : Anfangsgeschwindigkeit
%       tm : Länge des Zeitintervalls in Sekunden
%       d  : Reibungskoeffizient
%
%       Beispiel-Aufrufe: 
%          SenkrFall( 0,  0, 3, 0 ) - ungebremster Fall
%          SenkrFall( 0, 10, 3, 0 ) - Wurf nach oben, ungebremst
%          SenkrFall( 0,  0, 3, 1 ) - Fall mit Reibung, v -> const
%          SenkrFall( 0,-10, 3, 1 ) - abgebremster Wurf nach unten
%
%    zugehörige DGL-Funktion: SenkrFall_Fun.m
%
function  SenkrFall( x0, v0, tm, d )
   % Variable für die DGL-Funktion
   delta = 2 * d;
   
   % Anfangswerte
   y0 = [ x0, v0 ];
   % Zeit-Intervall
   tspan = [0,tm];
   
   % Lösung des Anfangswert-Problems
   [t,y] = ode45( @SenkrFall_Fun, tspan, y0, [], delta );
   % daraus den Funktionswert - 1. Komponente
   z = y( :, 1 );
   v = y( :, 2 );
    
   % alles plotten
   plot( t, z, t, v );
   xlabel( 't / s' );
   ylabel( 'x/m  |  v/(m/s)' );
   legend( 'Ort', 'Geschwindigkeit' );
   grid on; 
end