function [ t, P ] = beispiel0104 ( dt );
% Beispiel0104
%
% Dieses m-file ist Teil der Arbeitsmaterialien des 
%   Schuelerseminars "Bewegungssimulation mit dem Computer"
% am Fachbereich Mathematik und Informatik der
% Martin-Luther-Universitaet Halle-Wittenberg, Deutschland
%
% Author :      Prof. Dr. M. Arnold, martin.arnold@mathematik.uni-halle.de
% Version of :  Sep 30, 2005
%
% Freier Fall
%
% Parameter:
%   dt     (input)  : Zeitschritt
%   t      (output) : Vektor der Zeitpunkte
%   P      (output) : Vektor der Ergebnisse
%
% Beispiel:
%   [ t, P ] = beispiel0104 ( 24*60*60 );   plot ( t, P, '-b' );
%   hold on
%   [ t, P ] = beispiel0104 ( 60*60 );      plot ( t, P, '-r' );
%   [ t, P ] = beispiel0104 ( 60 );         plot ( t, P, '-g' );
%   hold off
%   xlabel ( 't  [s]' );   ylabel ( 'P' );
%   title ( 'Wachstum einer Bakterienpopulation' );
%   legend ( 'dt ... 1 Tag', 'dt ... 1 Stunde', 'dt ... 1 Minute' );
%   print -dpng ../png/beispiel0104.png

% -> Modellparameter
t0 = 0.0;               % Anfangszeit
P0 = 1.0e+6;            % Anfangspopulation
al = 5.0e-6;            % Wachstumsrate
Pmax = 2.0e+6;

% -> Initialisierung der Ergebnisdaten
t = [ t0 ];   P = [ P0 ];

% -> Berechnung der Ergebnisse
tn = t0;   Pn = P0;
while tn+dt<=2*(24*60*60), 
                        % Abbruch nach ca. 3 Tagen
    tn = tn + dt;       % neuer Zeitpunkt
%     Pn = Pn + dt*al*Pn*(Pmax-Pn); % neue Population
    Pn = Pn + dt*al*Pn; % neue Population
    t = [ t; tn ];   P = [ P; Pn ];
end;