Модель Лотка-Вольтерра описывает систему хищник - жертва с помощью уравнений  :  (Piecewise[{{x'=k x-a x y ,}, {y'=-l y+b x y ,}}])      
 при условиях : x ≥ 0, y ≥ 0, k > 0, l > 0, a > 0, b > 0, где x - количество жертв, а y - хищников.
       Изобразить на плоскости xy соответствующее векторное поле (динамически зависящее от параметров), а также решение этой системы, динамически зависящее от начального условия (заданного локатором). Исследовать на устойчивость по Ляпунову положительное стационарное решение.

so=NDSolve[{y'[t]==y[t](x[t]-1),x'[t]==x[t](2-y[t]),x[0]==2,y[0]==2.7},{x,y},{t,0,10}];
Ex11:=ParametricPlot[
Evaluate[{x[t],y[t]}/.First[so]],{t,0,10},
AspectRatio->Automatic,AxesLabel->{ "X , Жертвы","Y , Хищники"},PlotRange->{0,7},ColorFunction->"DarkRainbow",PlotStyle->Thick,AxesStyle->Arrowheads[Small],
PlotLabel->Style["Численное решение при b=1,l=1,a=-1,k=2, x[0]=2, y[0]=2.7",Black,13],ImageSize->Large
];
Ex12:=StreamPlot[
{x(2-y),y*(x-1)},
{x,0,7},{y,0,7},
Axes->True,Frame->False,AxesStyle->Arrowheads[Small],AxesOrigin->{0,0},AxesLabel->{ "X , Жертвы","Y , Хищники"},StreamColorFunction->Hue,StreamPoints->Fine,
PlotLabel->Style["Веторное поле при b=1,l=1,a=-1,k=2, x[0]=2, y[0]=2.7",Black,13],ImageSize->Large
];
Ex21:=Manipulate[
Show[
StreamPlot[
{x(k-a*y),y*(b*x-l)},
{x,-3,10},{y,-3,10},
Axes->True,Frame->False,AxesStyle->Arrowheads[Small],AxesOrigin->{0,0},AxesLabel->{ "X , Жертвы","Y , Хищники"},StreamPoints->{{{pt,{Thick,Magenta}},100}},StreamStyle->{Thick, Orange},PlotLabel->Style["Векторное поле в зависимости от праметров (с локатором)",Purple,14],
VectorScale->0.001,
RegionFunction->Function[{x,y,vx,vy,n},(x >0)&&(y>0)]
],
Graphics[{
PointSize[Large],
Blue,
If [(b>0)&&(a>0),
{
Point[{l/b,k/a}],
Text[Style["((l/b),(k/a))",12],{l/b-0.5,k/a}]
}
],
Magenta,
If [(b>0)||(a>0)||(k>0)||(l>0),
{
Point[pt],
Arrow[{{4,-0.5},pt}],
Text[Style["Решение, проходящее через точку, задаваемую pt",11],{4,-0.6}]
}
]
}
],ImageSize->Large
],
{{pt,{0,0}},{0,0},{10,10},Locator},
{{k,3},0,10},
{{l,3},0,10},
{{a,1},0.00001,10},
{{b,1},0.00001,10}
];
Ex31:=Text[Style["Точка 𝒳 (в данном случае являющаяся равновесным 
решением системы ОДУ) устойчива по Ляпунову, 
если  для ∀ ε>0 ∃ δ>0 такое, что любое раешение,
 начавшееся в δ-окрестности 𝒳 никогда не покинет 
ε-окрестности этой точки",Black,24]];
Ex32:=Manipulate[
Show[
StreamPlot[
{x(k-a*y),y*(b*x-l)},
{x,-3,20},{y,-3,20},
Axes->True,Frame->False,AxesStyle->Arrowheads[Small],AxesOrigin->{0,0},AxesLabel->{ "X , Жертвы","Y , Хищники"},StreamPoints->{{{{l/b,k/a+δ+0.1},{Thick,Green}},1}},PlotLabel->Style["График, демонстрирующий устойчивость точки равновесия",Purple,14]
],
Graphics[{
PointSize[Large],
Blue,
If [(b>0)&&(a>0),
{
Point[{l/b,k/a}]
}
],
Cyan,
Circle[{l/b,k/a},ε],
Red,
Circle[{l/b,k/a},δ],
Green,
Text[Style["Зеленое- решение, начинающееся на границе δ-окрестности",11],{7.2,20}],
Cyan,
Text[Style["Бирюзовое- ε-окрестность точки равновесия",11],{7,19}],
Red,
Text[Style["Красное- δ-окрестность точки равновесия",11],{7,18}]
}
],ImageSize->Large
],
{{k,3},0,10},
{{l,3},0,10},
{{a,1},1,10},
{{b,1},1,10},
{{ε,2},0,10},
{{δ,1},0,10}
];
Ex33:=Manipulate[
Show[
Module[
{sol=NDSolve[{y'[t]==y[t](b*x[t]-l),x'[t]==x[t](k-a*y[t]),x[0]==pt[[1]],y[0]==pt[[2]]},{x,y},{t,0,15}]},
ParametricPlot[
Evaluate[{x[t],y[t]}/.First[sol]],{t,0,15},
AspectRatio->Automatic,AxesLabel->{ "X , Жертвы","Y , Хищники"},PlotRange->{0,11},ColorFunction->"DarkRainbow",PlotStyle->Thick,AxesStyle->Arrowheads[Small],
PlotLabel->Style["Численное решение в зависимости от праметров",Purple,14]
]
],
Graphics[{
PointSize[Large],
Blue,
If [(b>0)&&(a>0),
{
Point[{l/b,k/a}],
Text[Style["((l/b),(k/a))",12],{l/b-0.5,k/a}]
}
],
Cyan,
Circle[{l/b,k/a},ε],
Red,
Circle[{l/b,k/a},δ],
Purple,
Text[Style[pt,13], pt+{1,0.2}],
Text[Style["Решение",13], pt+{1,-0.1}],
Point[{pt[[1]],pt[[2]]}],
Cyan,
Text[Style["Бирюзовое- ε-окрестность точки равновесия",11],{5,10.7}],
Red,
Text[Style["Красное- δ-окрестность точки равновесия",11],{5,10.3}]
}
],ImageSize->Large
],
{{k,3},0,10},
{{l,3},0,10},
{{a,1},1,10},
{{b,1},1,10},
{{pt,{0,0}},{0,0},{10,10},Locator},
{{ε,1.5},0,10},
{{δ,1},0,10}
];

Manipulate[g,{{g, Ex11, " "},
{Ex11->"1.1 Фазовая кривая решения",
Ex12->"1.2 Векторное поле",
Delimiter,
Ex21->"2.1 Векторное поле в зависимости от параметров",
Delimiter,
Ex31->"3.1 Определение устойчивости по Ляпунову",
Ex32->"3.2 Проверка устойчивости с помощью одного пототока StreamPlot",
Ex33->"3.3 Проверка устойчивости с локатором"},
ControlType->PopupMenu},
  FrameLabel->{"","",Style["Иллюстрации",Bold,20]},ControlPlacement->Top]