WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Lotka-Volterra - Vektorfeld

 

nostalgie
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 15:13     Titel: Lotka-Volterra - Vektorfeld
  Antworten mit Zitat      
Hallo Leute,

zur Zeit erstelle ich ein Räuber-Beute-Modell mit Hilfe der Lotka-Volterra Gleichungen. Bis jetzt habe ich die Lösung der Differentialgleichungen für die Wachstumsrate mit dem MATLAB-Solver bestimmt.
Der Code besteht aus zwei Files.

#1 : Eine Funktion

Code:
function [ f ] = lotka_volterra( t,x )
% Funktion für die rechte Seite des
% Lotka-Volterra-Systems

% GLEICHUNGEN
% B = alpha*B - beta*B*R
% R = -gamma * R + delta*B*R

global alpha beta gamma delta;
% Parameterzuweisung bitte in solveLgs

% Definiere Vektor mit Funktion für
% f(1): Wachstumsrate d. Beute
% f(2): Wachstumsrate d. Räuber
f = [ alpha*x(1) - beta*x(1)*x(2);
     -gamma*x(2) + delta*x(1)*x(2)];
 
end
 


#2 : Ein M-File

Code:
clc
close all
clear all

%-------------------------------------------------
global alpha beta gamma delta;
    % PARAMETERZUWEISUNG
    alpha = 5;
    beta = 0.1;
    gamma = 3;
    delta = 0.05;
%-------------------------------------------------

% Startwerte
x = [10; 100];

% Festlegung d. Zeit und Lösung der Differentialgleichung
time = [0 5];
[t,y] = ode45(@lotka_volterra, time, x);

% Plot
figure, plot( t,y(:,1), t,y(:,2),'--' );
title('Raeuber-Beute Model nach Lotka-Volterra', 'fontsize', 16, 'fontweight', 'b');
xlabel({'Zeit'; 't [Jahre]'},'fontsize',14,'fontweight','l','color','black');
ylabel({'Population'; 'Räuber / Beute'},'fontsize',14,'fontweight','l','color','black');
legend('Beute', 'Räuber');

% AUSTEHENDE AUFGABE:
% - Simulation mit versch. Modellparameter
 


Nun versuchte ich das Vektorfeld zu zeichnen....
Leider ohne Erfolg :

# 3 : Vektorfeld

Code:
% -> Mesh data generieren
nu = 20;    nv = 50;
umin = -10;   umax = 10;    
vmin = -10;   vmax = 10;

u = linspace( umin,umax,nu);
v = linspace( vmin,vmax,nv);

[ U,V ] = meshgrid( u,v );

% -> Derivative Daten erzeugen

UP = alpha.*U + beta.*U.*V;
VP = -gamma.*V + delta.*U.*V;


% -> Plot
quiver ( U, V, UP, VP, 3 );
axis ( [ umin umax vmin vmax ] );
title ( 'Lotka-Volterra \alpha = 0.01, \beta = 0.02, \gamma = 0.1 \delta = 0.002' );
xlabel ( 'u' );   ylabel ( 'v' );
set ( gca, 'DataAspectRatio', [ 1 1 1 ] );
 


Beschäftige mich seit mehreren Tagen mit dem quiver Befehl, der mir dato noch neu war. Ich denke aber, dass der Fehler irgendwo anders liegt. Was mache ich falsch? Leider fand ich auch über die allen bekannte Suchmaschine nichts (deutsch wie english).

Ich würde mich total freuen, wenn mir jemand weiterhelfen kann.

Beste Grüße und vielen Dank im voraus!

Smile

solveLgs.m
 Beschreibung:
Funktion 2

Download
 Dateiname:  solveLgs.m
 Dateigröße:  785 Bytes
 Heruntergeladen:  922 mal
lotkaVektorfeld.m
 Beschreibung:
Funktion 3

Download
 Dateiname:  lotkaVektorfeld.m
 Dateigröße:  516 Bytes
 Heruntergeladen:  841 mal
lotka_volterra.m
 Beschreibung:
Funktion 1

Download
 Dateiname:  lotka_volterra.m
 Dateigröße:  420 Bytes
 Heruntergeladen:  878 mal
plot_vektorfeld_failed.jpg
 Beschreibung:
Vektorfeld failed

Download
 Dateiname:  plot_vektorfeld_failed.jpg
 Dateigröße:  74.13 KB
 Heruntergeladen:  1609 mal
plot_lotka_wachstumsrate.jpg
 Beschreibung:
Plot: Wachstumsrate

Download
 Dateiname:  plot_lotka_wachstumsrate.jpg
 Dateigröße:  26.84 KB
 Heruntergeladen:  1560 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.12.2012, 23:24     Titel: Re: Lotka-Volterra - Vektorfeld
  Antworten mit Zitat      
Hallo nostalgie,

Herzlich willkommen im Forum!

Bitte erkläre noch, was genau "Leider ohne Erfolg" heißt. Ein Problem ist viel effizienter zu lösen, wenn man nicht zuerst erraten muss, was das Problem überhaupt ist. ;-)

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
nostalgie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2012, 00:42     Titel: Re: Lotka-Volterra - Vektorfeld
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:

Bitte erkläre noch, was genau "Leider ohne Erfolg" heißt.


Hallo Jan S,
es geht darum, dass ich in meinem M-File einen Lösungsvektor [t y] für die Differentialgleichung bekomme.
Nun möchte ich das Vektorfeld der Differentialgleichung plotten, was ich versuchte, aber leider nicht richtig ist (Die Lösung müsste ein Kreis sein, da der Vorgang periodisch ist... siehe dazu den Plot von [t y]).

Hoffe ich konnte nun etwas "Butter bei die Fische" tun.
Besten Dank für den Hinweis!

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.12.2012, 10:08     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist, dass plot_vektorfeld_failed.jpg in einem schlechten Bereich geplottet ist. Negative Populationen machen ja nun wenig Sinn.

Wenn ich richtig rechne, ist in deinem Fall das Gleichgewicht bei x1=50, x2=60. Dieser Punkt sollte also auf jeden Fall im Plot enthalten sein, d.h. ich würde x1 = 1:100 und x2 = 1:120 wählen und den Plot dort auswerten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
nostalgie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2012, 15:45     Titel:
  Antworten mit Zitat      
Da hast du recht.
Habe mal etwas weiter geschaut und mich auch noch einmal mit den Parametern beschäftigt.

Der Plot für's Vektorfeld muss irgendwo einen Fehler enthalten,..
Über die Google Bildersuche fand ich ein Bild..
"Vector field associated with the flow represented by the small blue arrows."
Betrachte oben rechts - Trajektorie und Richtung des Vektorfeld identisch.
(So wie es sein muss)

(Anhang 1)

Mein Ergebnis für die Trajektorie sieht in etwa auch so aus. Einziges Problem ist das Vektorfeld Sad


(Anhang 2)

Habe den momentanen Stand mal archiviert und als ZIP in den Anhang gepackt.

Danke an alle für die bisherige Hilfe Smile

Archiv.zip
 Beschreibung:
Archiv (aktueller Stand)

Download
 Dateiname:  Archiv.zip
 Dateigröße:  2.83 KB
 Heruntergeladen:  789 mal
400px-Lotka-Volterra_model.gif
 Beschreibung:
Anhang 1

Download
 Dateiname:  400px-Lotka-Volterra_model.gif
 Dateigröße:  36.17 KB
 Heruntergeladen:  1569 mal
vecPhase.jpg
 Beschreibung:
Anhang 2

Download
 Dateiname:  vecPhase.jpg
 Dateigröße:  72.06 KB
 Heruntergeladen:  1488 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.12.2012, 22:45     Titel:
  Antworten mit Zitat      
Hallo,

hier ist ein Vorzeichenfehler bzw. eine Vorzeichenabweichung zur implementierten DGL:
Code:
UP = alpha.*U + beta.*U.*V; % oben ist es - statt +


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
nostalgie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 21.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2012, 23:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

bin alles noch einmal von vorne angegangen und habe das Problem gelöst. Das Archiv dazu befindet sich im Anhang.

Bedanke mich bei allen, die mir etwas weiterhelfen konnten.

Grüße

LotkaVolterra.zip
 Beschreibung:

Download
 Dateiname:  LotkaVolterra.zip
 Dateigröße:  2.31 KB
 Heruntergeladen:  1028 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.