Erstellt am: 31.03.2008 | Editiert am: 31.03.2008
Populationsdynamisches Modell
- Kommentar
- Funktion raeuber_beute()
- Funktion daten()
- Funktion rechenknecht( t, x )
- Links und Quellen
- Kommentar schreiben
Kommentar
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ausarbeitung zum Thema Populationsdynamisches Modell
% Räuber Beute Modell von Lotka und Volterra in Matlab 7.1
%
% Vorlesung: Simulationstechnik
% Copyright 2007 Thomas Ludwig, Slawa Braun
% This file is distributed under the terms of the GNU General Public License,
% see http://www.gnu.org/copyleft/gpl.txt
%
% Beschreibung:
% Vorraussetzungen:
% - Die Nahrungsvorräte der Beute sind unbegrenzt
% - Die Räuber ernähren sich nur ausschließlich von der Beute
% - Gibt es keine Beute, dann sterben die Räuber mit der Zeit aus
% - Trifft ein Räuber eine Beute, dann wird letzterer gefressen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ausarbeitung zum Thema Populationsdynamisches Modell
% Räuber Beute Modell von Lotka und Volterra in Matlab 7.1
%
% Vorlesung: Simulationstechnik
% Copyright 2007 Thomas Ludwig, Slawa Braun
% This file is distributed under the terms of the GNU General Public License,
% see http://www.gnu.org/copyleft/gpl.txt
%
% Beschreibung:
% Vorraussetzungen:
% - Die Nahrungsvorräte der Beute sind unbegrenzt
% - Die Räuber ernähren sich nur ausschließlich von der Beute
% - Gibt es keine Beute, dann sterben die Räuber mit der Zeit aus
% - Trifft ein Räuber eine Beute, dann wird letzterer gefressen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Funktion raeuber_beute()
function raeuber_beute();
% Allgemeine Optionen
close all;
clear all;
clc
help raeuber_beute
% Daten laden
obj= daten();
% Berechnung starten
[t,x]= ode45(@rechenknecht, obj.tspan, obj.xo, obj.options);
% Plotten der Ergebnisse
figure('Name','Räuber Beute Modell','NumberTitle','off');
subplot(2,2,1:2);
plot( t,x(:,1), '-g','LineWidth',2), hold on; % Beute
plot( t,x(:,2), '-r','LineWidth',2); % Räuber
legend('Population der Beute','Population der Räuber');
title('Populationsdynamisches Modell nach Lotka und Volterra');
xlabel('t'), ylabel('x1 und x2'), grid on, hold off;
subplot(2,2,3:4);
plot(x(:,1),x(:,2),'b'), grid on, hold off;
title('Gleichgewicht');
xlabel('x1 - Beutetiere'), ylabel('x2 - Raubtiere');
end
% Allgemeine Optionen
close all;
clear all;
clc
help raeuber_beute
% Daten laden
obj= daten();
% Berechnung starten
[t,x]= ode45(@rechenknecht, obj.tspan, obj.xo, obj.options);
% Plotten der Ergebnisse
figure('Name','Räuber Beute Modell','NumberTitle','off');
subplot(2,2,1:2);
plot( t,x(:,1), '-g','LineWidth',2), hold on; % Beute
plot( t,x(:,2), '-r','LineWidth',2); % Räuber
legend('Population der Beute','Population der Räuber');
title('Populationsdynamisches Modell nach Lotka und Volterra');
xlabel('t'), ylabel('x1 und x2'), grid on, hold off;
subplot(2,2,3:4);
plot(x(:,1),x(:,2),'b'), grid on, hold off;
title('Gleichgewicht');
xlabel('x1 - Beutetiere'), ylabel('x2 - Raubtiere');
end
Funktion daten()
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function obj= daten();
% x(1) - Beutetiere
% x(2) - Raubtiere
% Anfangpopulationen
obj.xo(1)= 10; % xo(1) - Beutetiere
obj.xo(2)= 1; % xo(2) - Raubtiere
% Parameter:
obj.a= 2; % a - kann als natürliches Wachstum der Population von Beutetieren angesehen werden
obj.b= 2; % b - parametrisiert wie stark die Population der Beutetiere durch die Population der Raubtiere dezimiert wird
obj.c= 1; % c - drückt aus, mit welcher Rate die Raubtierpopulation wachsen kann
obj.d= 1; % d - drückt aus, mit welcher Rate die Raubtierpopulation in Abwesenheit von Beutetieren ausstirbt.
obj.m= 0; % m - (mueh) parametrisiert die soziale Reibung zwischen den Raubtieren.
obj.l= 0; % l - (lambda) parametrisiert die soziale Reibung unter den Beutetieren.
obj.tspan= [0 100]; % t
obj.options= odeset('Stats','on'); % Optionen für Solver
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function obj= daten();
% x(1) - Beutetiere
% x(2) - Raubtiere
% Anfangpopulationen
obj.xo(1)= 10; % xo(1) - Beutetiere
obj.xo(2)= 1; % xo(2) - Raubtiere
% Parameter:
obj.a= 2; % a - kann als natürliches Wachstum der Population von Beutetieren angesehen werden
obj.b= 2; % b - parametrisiert wie stark die Population der Beutetiere durch die Population der Raubtiere dezimiert wird
obj.c= 1; % c - drückt aus, mit welcher Rate die Raubtierpopulation wachsen kann
obj.d= 1; % d - drückt aus, mit welcher Rate die Raubtierpopulation in Abwesenheit von Beutetieren ausstirbt.
obj.m= 0; % m - (mueh) parametrisiert die soziale Reibung zwischen den Raubtieren.
obj.l= 0; % l - (lambda) parametrisiert die soziale Reibung unter den Beutetieren.
obj.tspan= [0 100]; % t
obj.options= odeset('Stats','on'); % Optionen für Solver
end
Funktion rechenknecht( t, x )
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function x_punkt= rechenknecht( t, x );
% Daten laden
obj= daten();
% Berechnung
x_punkt(1)= obj.a*x(1) - obj.b*x(1)*x(2) - obj.l*x(1).^2; % Beutetiere
x_punkt(2)= obj.c*x(1)*x(2) - obj.d*x(2) - obj.m*x(2).^2; % Raubtiere
% Berechnung und übergeben
x_punkt= x_punkt';
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function x_punkt= rechenknecht( t, x );
% Daten laden
obj= daten();
% Berechnung
x_punkt(1)= obj.a*x(1) - obj.b*x(1)*x(2) - obj.l*x(1).^2; % Beutetiere
x_punkt(2)= obj.c*x(1)*x(2) - obj.d*x(2) - obj.m*x(2).^2; % Raubtiere
% Berechnung und übergeben
x_punkt= x_punkt';
end
Links und Quellen
Kommentar schreiben
- Benötigte Felder sind mit einem Stern (*) markiert.





