%%  Wolf-Hase: Räuber-Beute-Modell
% System zweier gekoppelter ODES.
% Siehe auch die <https://de.wikipedia.org/wiki/Lotka-Volterra-Gleichungen Lotka-Volterra-Gleichungen>.

clear; clc; close all
%%  Parameter der Evolutionsgleichungen festlegen
alpha = 8.5;    % Todesrate der Woelfe
beta  = 10;     % Vermehrungsrate der Hasen
gamma = 0.01;   % Nachwuchsrate der Woelfe (dank Beute=Hasen)
delta = 0.07;   % Todesrate der Hasen (durch die Jaeger=Woelfe)

tau  = 1/1000;  % Schrittweite in der Zeit
tend = 2;       % Endzeit
%% Anfangspopulationen
wolf(1) = 100;
hase(1) = 1000;

%% Zeititeration
% Anzahl der Zeitschritte
nt = tend/tau;
wolf(nt) = 0;         % Stellt Speicher fuer alle benoetigten Vektorelemente bereit.
hase(nt) = 0;

for m = 2:nt
    wolf(m) = wolf(m-1) -tau*alpha*wolf(m-1) + tau*gamma*wolf(m-1)*hase(m-1);
    hase(m) = hase(m-1) +tau*beta *hase(m-1) - tau*delta*wolf(m-1)*hase(m-1);
end

%% Ergebnisse anzeigen

[AX,H1,H2] = plotyy(1:nt,wolf,1:nt,hase);
title('Räuber-Beute-Modell');
xlabel('Zeit');
set(H1,'LineStyle','--')
set(H2,'Color','r')
set(get(AX(1),'Ylabel'),'String','Wölfe') 
set(get(AX(2),'Ylabel'),'String','Hasen') 
set(get(AX(2),'Ylabel'),'Color','r') 
% set(get(AX(2),'Yaxis'),'YColor','r') 
% ylabel('Hasen','Color',[1 0 0]);

saveas(gcf,'wolf_hase.jpg');    % Speicher die aktuelle Grafik als jpg-File
