Quit[];

Két fajból álló ökoszisztémák: 
2. Az eredeti Volterra-Lotka-modell

Farkas Miklós: Dynamical models in biology (Academic Press 2001), 23. old.

A modell

eq={Ν'[t]== Ν[t](ε-α P[t]),P'[t]==P[t](β Ν[t]-γ)};ini={Ν[0]==Νini,P[0]==Pini};

f[Ν_,P_]:=Ν(ε-α P);g[Ν_,P_]:=P(β Ν-γ);

eq=={Ν'[t]==f[ Ν[t],P[t]],P'[t]==g[Ν[t],P[t]]}

Jelölések

Ahol:

N(t) a zsákmánypopuláció létszáma a t időpontban

P(t) a ragadozópopuláció létszáma a t időpontban

ε>0 a belső növekedési ráta (azaz születési és a halálozási ráta különbsége)

α>0 ragadozási ráta

β>0 konverziós ráta (általában β≤α)

γ>0 a ragadozó mortalitása

Kiegészítő magyarázat

ragadozó hiányában a zsákmányfajnak Malthus-féle szaporodási rátája van

a  zsákmány szaporodási rátája a ragadozó létszámával arányos mennyiséggel csökken

Egyensúlyi helyzetek (vagy stacionárius pontok)

stac=Solve[{0==f[Ν,P],0==g[Ν,P]},{Ν,P}]//Simplify

{Ν2,P2}={Ν,P}/.stac[[2]];

(E^0):=(0,0)

(E^2):=((γ/β),(ε/α))

Megoldása

Join[eq,ini]

param1={ε->1,α->1,β->2,γ->1,Νini->1,Pini->3};

nds=NDSolve[Join[eq,ini]/.param1,{Ν,P},{t,0,20}]

Needs["PlotLegends`"]

Plot[Evaluate[{Tooltip[Ν[t],"Ν[t]"],Tooltip[P[t],"P[t]"]}/.nds],{t,0,20},PlotStyle->Directive[Thick],AxesLabel->{TraditionalForm[t],Row[TraditionalForm/@{Ν[t],P[t]}]}, PlotLegend->{"Ν[t]","P[t]"},LegendPosition->{1.,-0.4}]

Grafikonok

Nullavonalak, egyensúlyi helyzetek

cp1=ContourPlot[(Ν(ε-α P)/.param1)==0,{Ν,0,1.5},{P,0,1.5},ContourStyle->{Green,Thickness[0.01]},AxesOrigin->{0,0},Frame->False,PlotPoints->100];

cp2=ContourPlot[(P(β Ν-γ)/.param1)==0,{Ν,0,1.5},{P,0,1.5},ContourStyle->{Red,Thickness[0.01]},AxesOrigin->{0,0},Frame->False,PlotPoints->100];

s=Show[cp1,cp2,Axes->True,AxesLabel->{"N","P"},Epilog->({PointSize[0.02],Point[{0,0}],PointSize[0.02],PointSize[0.02],Point[{(γ/β),(( ε)/(α ))}]}/.param1)]

sp=StreamPlot[{ f[Ν,P],g[Ν,P]}/.param1,{Ν,0,1.5},{P,0,1.5}]

Show[s,sp]

ParametricPlot3D[Evaluate[{{t,Ν[t],0},{t,1.5,P[t]},{t,Ν[t],P[t]},{0,Ν[t],P[t]}}/.nds],{t,0,20},PlotStyle->{Directive[Red,Thick],Directive[Green,Thick],Directive[Black,Thick],Directive[Blue,Thick]},AxesLabel->(TraditionalForm/@{t,Ν[t],P[t]}),BoxRatios->{2,1,1}]

Globális stabilitás, Ljapunov-függvény

L[Ν_,P_]:=Ν-Ν2-Ν2 Log[(Ν/(Ν2))]+(α/β)(P-P2 -P2 Log[(P/P2)])

Ez pozitív definit függvény, amint azt a következő grafikonok mutatják.

ContourPlot[L[Ν,P]/.param1,{Ν,0,5},{P,0,5},ColorFunction->"Rainbow",PlotPoints->60,AxesLabel->None]

Plot3D[L[Ν,P]/.param1,{Ν,0,5},{P,0,5},ColorFunction->"BlueGreenYellow",PlotLabel->TraditionalForm[L[Ν,P]//.param1],AxesLabel->{Ν,P,L},PlotPoints->66]

Rendszer szerinti derivált

dl=D[L[Ν,P],{{Ν,P}}].{f[Ν,P],g[Ν,P]}//FullSimplify

A Ljapunov-függvény első integrál, az egyensúlyi helyzet globálisan is centrum.

Mathematica problémák

PlotLegend fölösleges vonala

PlotStyle

Hivatkozás

Volterra, V.: Leçons sur la théorie mathématique de la lutte pour la vie, Gauthier-Villars, Paris, 1931.