Quit[];

Két fajból álló ökoszisztémák: 
1. Logisztikus zsákmánynövekedés

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

A modell

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

f[Ν_,P_]:=Ν(ε(1-(Ν/K))-α 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)

K>0 a környezet fenntartóképessé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 logisztikus 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[[3]]

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

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

(E^2):=((γ/β),(((K β-γ) ε)/(K α β)))∈((((SuperPlus[ℝ])))^2), ha 1>(γ/(β K))

Elemzése

Join[eq,ini]

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

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

Needs["PlotLegends`"]

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

Grafikonok

Nullavonalak, egyensúlyi helyzetek

cp1=ContourPlot[(Ν(ε(1-(Ν/K))-α P)/.param1)==0,{Ν,0,1.5},{P,0,1.5},PlotLabel->"1>\!\(\*FractionBox[\(γ\), \(β\\ K\)]\)",ContourStyle->{Green,Thickness[0.01]},AxesOrigin->{0,0},Frame->False,PlotPoints->100];

cp2=ContourPlot[(P(β Ν-γ)/.param1)==0,{Ν,0,1.5},{P,0,1.5},PlotLabel->"1>\!\(\*FractionBox[\(γ\), \(β\\ K\)]\)",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],Point[{K,0}],PointSize[0.02],Point[{(γ/β),(((K β-γ) ε)/(K α β))}]}/.param1)];

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

Show[s,sp]

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

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->"Rainbow",PlotLabel->TraditionalForm[L[Ν,P]//.param1],AxesLabel->{Ν,P,L},PlotPoints->66]

Rendszer szerinti derivált

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

dl/.param1

Reduce[(dl/.param1)<0]

Solve[(dl/.param1)==0]//Union

Csak az iránymezős ábrán szereplő pirossal jelölt egyenes mentén tűnik el a rendszer szerinti derivált, amelyet a megoldások átmetszenek, ezért alkalmazható a Barbasin-Kraszovszkij-tétel (másképpen a LaSalle-elv) ld. pl. Rouchet és mtsai. (1984).

ContourPlot[Ν==1/2,{Ν,0,2},{P,0,2},PlotPoints->160,FrameLabel->{Ν,P},PlotLabel->"Hol tűnik el a rendszer szerinti derivált?"]

Mathematica problémák

Időnként a PlotLegend alkalmazásánál egy fölösleges vonal is megjelenik.

ParametricPlot3D nem veszi észre a direktívákat.

Így nem működik:

ContourPlot[Evaluate[(dl/.param1)==0],{Ν,0,2},{P,0,2},PlotPoints->160,FrameLabel->{Ν,P},PlotLabel->"Hol tűnik el a rendszer szerinti derivált?"]

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

Miért kék mindegyik görbe?

Hivatkozások

Rouchet, N.; Habets, P.; Laloy, M.: Stabilitáselmélet. A Ljapunov-féle direkt módszer, Műszaki Könyvkiadó, Budapest, 1984.

LaSalle, J. P.: Some extensions of Liapunov's second method, IRE Transactions on Circuit Theory CT-7 (1960), 520-527.

Barbasin, E. A.: Bevezetés a stabilitás elméletébe, Nauka, Moszkva, 1967 (oroszul).