Erstellt am: 31.03.2008 | Editiert am: 31.03.2008

Populationsdynamisches Modell

  1. Kommentar
  2. Funktion raeuber_beute()
  3. Funktion daten()
  4. Funktion rechenknecht( t, x )
  5. Links und Quellen
  6. 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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

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

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

Räuber Beute Modell

Kommentar schreiben

  • Benötigte Felder sind mit einem Stern (*) markiert.
Sollte der Sicherheitscode unleserlich sein, kann durch einen Klick auf das Bild ein neuer Sicherheitscode erzeugt werden.

Sicherheitscode:
 


Database: 0.0168 s, 17 Anfragen, PHP: 0.3327 s, total: 0.3495 s