"Es el ejemplo 15.2"

"Curva de crecimiento de una pesquería"
r=0.5; k=200;a=0.005;p=25;w=4;ν=0.02;
f[s_]:=r*s*(1-(s/k))
graph0=Plot[f[s],{s,0,1000},PlotRange->{{0,200},{0,30}}]

"Isoclinas"
iso1=ParametricPlot[{s,(r/a)-(r/(k*a))*s},{s,0,200},PlotRange->{{0,200},{0,150}},DisplayFunction->Identity]
iso2=ParametricPlot[{(w/(p*a)),e},{e,0,120},PlotRange->{{0,200},{0,150}},DisplayFunction->Identity]
isoclinas=Show[{iso1,iso2},PlotRange->{{0,200},{0,150}},DisplayFunction->$DisplayFunction]

"Punto fijo y matriz de la aproximación lineal en el punto fijo"
"punto fijo"
ss=(w/(p*a))
ee=(r/a)-(r/(k*a))*s/.s->ss
"Matriz de la aproximación lineal"
a11=D[r*s*(1-(s/k))-a*e*s,s]/.s->ss/.e->ee
a12=D[r*s*(1-(s/k))-a*e*s,e]/.s->ss/.e->ee
a21=D[ν*(p*a*s-w)*e,s]/.s->ss/.e->ee
a22=D[ν*(p*a*s-w)*e,e]/.s->ss/.e->ee
A={{a11,a12},{a21,a22}}
"Valores propios"
ValProp=Eigenvalues[A];
ValProp[[1]]
ValProp[[2]]
"Vectores propios"
VectProp=Eigenvectors[A];
MatrixForm[VectProp[[1]]]
MatrixForm[VectProp[[2]]]
"luego es punto silla"


"Campo vectorial"
Needs["Graphics`PlotField`"]
field=PlotVectorField[{r*s*(1-(s/k))-a*e*s,ν*(p*a*s-w)*e},{s,2,200},{e,2,150},Axes->True,AspectRatio->1/GoldenRatio,HeadLength->0.02`,PlotPoints->15,ScaleFactor->10,DisplayFunction->Identity]

"Evolución dinámica"
eq1:={s'[t]==r*s[t]*(1-((s[t])/k))-a*e[t]*s[t],e'[t]==ν*(p*a*s[t]-w)*e[t],s[0]==150,e[0]==40}
eq2:={s'[t]==r*s[t]*(1-((s[t])/k))-a*e[t]*s[t],e'[t]==ν*(p*a*s[t]-w)*e[t],s[0]==20,e[0]==40}
var:={s[t],e[t]}
trango:={t,0,120}
sol1=NDSolve[eq1,var,trango]
sol2=NDSolve[eq2,var,trango]
graph1=ParametricPlot[Evaluate[{sol1[[1,1,2]],sol1[[1,2,2]]}],{t,0,100},PlotRange->{{0,200},{0,150}},DisplayFunction->Identity]
graph2=ParametricPlot[Evaluate[{sol2[[1,1,2]],sol2[[1,2,2]]}],{t,0,100},PlotRange->{{0,200},{0,150}},DisplayFunction->Identity]
Show[{isoclinas,field,graph1,graph2},PlotRange->{{0,200},{0,150}},DisplayFunction->$DisplayFunction]