Räuber-Beute-Population < Differenzialrechnung < Analysis < Oberstufe < Schule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:43 Fr 22.08.2008 | Autor: | Xnyzer |
Aufgabe | Die Räuber-Beute-Beziehung wurde von Lotka und Volterra durch folgende Differentialgleichungen modellhaft beschrieben:
[mm] \bruch{dB}{dt} [/mm] = [mm] (a_{B} [/mm] - [mm] b_{B} [/mm] * R) * B
[mm] \bruch{dR}{dt} [/mm] = [mm] (a_{R} [/mm] * B - [mm] b_{R}) [/mm] * R
R = Anzahl der Räuber im Biotop
B = Anzahl der Beuteindividuen im Biotop
[mm] a_{B} [/mm] = Vermehrungskoeffizient der Beute
[mm] a_{R} [/mm] = Vermehrungskoeffizient der Räuber
[mm] b_{B} [/mm] = Sterbekoeffizient der Beute
[mm] b_{R} [/mm] = Sterbekoeffizient der Räuber
|
Hallo,
ich möchte gerne ein Programm schreiben, dass mir den zeitlichen Verlauf der Räuber- und Beuteindividuen in einem Graphen darstellt. Dazu muss ich berechnen können zu welchem Zeitpunkt t noch wie viele Räuber bzw. Beuteindividuen im Biotop sind.
Ich brauche also die Funktionen B(t) und R(t).
Zur Verfügung habe ich nur obige Differentialgleichungen.
Nun habe ich versucht sie zu lösen, aber leider ohne erfolg.
Die in den DGL B und R sind ja ebenfalls Funktionen. Wäre jetzt in der B'(t) nur B(t) und nicht auch noch R(t), dann könnte ich die DGL lösen. So jedoch nicht.
So weit bin ich gekommen:
ln(R(t)) = [mm] \integral_{}^{}{a_{R} * B(t) dt} [/mm] - [mm] b_{R} [/mm] * t
ln(B(t)) = [mm] a_{B} [/mm] * t - [mm] \integral_{}^{}{b_{B} * R(t) dt}
[/mm]
Nun weiß ich nicht weiter. Ich kann die Integrale nicht lösen.
Ich kann schlecht die Funktion B(t) einsetzen, wenn ich sie noch nicht habe, genauso bei R(t).
Das ist ja ein ewiger Teufelskreis..! :S
Ich bitte um Hilfe.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:04 Fr 22.08.2008 | Autor: | Kroni |
Hi,
das sind ja gekoppelte DGL. Das ist schon immer ein Problem. Ich würde es hier mal versuchen, eine DGL noch nach t abzuleiten, und dann die Hoffnugn haben, dass man es dann nach R umstellen kann, und dann in die zweite einstezen kann, so dass man dann eine DGl hat, die nur von einer Funktion abhängt.
Das Problem bei dir ist aber wohl, dass die Funktionen B und R multiplikativ miteinander verknüpft sind, und da fällt mir auf die Schnelle keine schöne Lösung ein, Außer vlt. das eine nach BR auflösen, dann einstzten, und dann nochmal irgendwie ableiten.
Wenn du das allerdings programmieren möchtest, brauchst du eigentlich die Funktionen B und R nicht. Du kannst dir die Zeit ja in viele kleine Zeiteinheiten zerhacken. Dann sagst du: Okay, meine momentane Änderung von B, also [mm] $\frac{dB}{dt}$ [/mm] ist so (mit dem aktuellen Stand von R). Dann rechnest du das neue B aus. Mit dem neuen B gehts du dann in die zweite Differentialgleichung, und rechnest damit [mm] $\frac{dR}{dt}$ [/mm] aus. Für hinreichend kleine t wird das dann auch hinreichend genau. Wenn du dann die Änderung hast, kannst du den neuen Bestand von R ausrechnen, und dann kannst du damit wieder in die erste DGL gehen. Das ganze also iterativ machen, und dann bis zum Zeitpunkt T weiterrechnen.
LG
Kroni
|
|
|
|
|
Meines Erachtens hast du viel zu viele Variable darin.
Um die Sache etwas zu vereinfachen, würde ich das Problem konkretisieren:
Wer sind denn die Räuber, und wer ist die Beute?
Zum Beispiel Fuchs und Hase
Dann könntest du anstatt [mm] a_{B}, a_{R}, b_{B} [/mm] und [mm] b_{R} [/mm] konkrete Zahlen einsetzen, die ja wohl für Fuchs und Hase vorliegen dürften.
Jetzt schaut es doch schon etwas übersichtlicher aus.
Und nun nimm an, du hättest zu einem bestimmten Zeitpunkt [mm] t_{1} [/mm] eine bestimmte Anzahl an Füchsen (sagen wir 10) und eine bestimmte Anzahl an Hasen (sagen wir 30).
Wie sieht es dann im Zeitpunkt [mm] t_{2}, t_{3}, t_{4} [/mm] etc. mit der Anzahl der Füchse und Hasen aus?
Wenn du das lösen kannst, dann gehe einen Schritt weiter: Was passiert, wenn sich der Sterbekoeffizient der Füchse ändert?
|
|
|
|
|
Du musst überhaupt keine DGL lösen oder integrieren,
um eine angemessene Grafik zu produzieren.
Ersetze zunächst einfach einmal die Ableitungen
durch Differenzenquotienten:
[mm]\bruch{dB}{dt}[/mm] [mm] \to[/mm] [mm]\bruch{\Delta B}{\Delta t}[/mm]
[mm]\bruch{dR}{dt}[/mm] [mm] \to[/mm] [mm]\bruch{\Delta R}{\Delta t}[/mm]
und löse sie nach [mm] \Delta{B} [/mm] bzw. [mm] \Delta{R} [/mm] auf
Das Programm kann dann etwa so aussehen:
Setze [m]\ t:=0 , B:=B_0[/m] , [m]\ R:=R_0[/m] und definiere die Parameter und [mm] t_{max}
[/mm]
Setze den Zeitschritt [mm] \Delta{t} [/mm] fest
Wiederhole:
Markiere in der Grafik die Punkte (t/B(t)) und (t/R(t))
Erhöhe t um [mm] \Delta{t}
[/mm]
Berechne [mm] \Delta{B} [/mm] und [mm] \Delta{R} [/mm] aus den aktuellen Werten von B und R
Erhöhe B um [mm] \Delta{B} [/mm] und R um [mm] \Delta{R}
[/mm]
bis [mm] t_{max} [/mm] erreicht ist
Und keine Scheu, dass das Ganze irgendwie "ungenauer" sei
als eine "exakte" Lösung des Differentialgleichungssystems
von Lotka und Volterra: denn nichts daran ist exakt !
Füchse und Hasen vermehren sich und sterben stets in
ganzzahligen Einheiten und nicht nach einer präzise zu
beschreibenden mathematischen Funktion.
|
|
|
|