FindMaxima
| FindMaxima[f,{tmin,tmax}] |
| FindMaxima[f] |
| FindMaxima[rulelist] |
(3)
Basic Examples
(3)
An unforced, continuous-time model — the Rosenzweig-MacArthur predator-prey model:
In[1]:=
Needs["EcoEvo`"];
In[2]:=
SetModel[{Pop[n]{Equationn(1-n/k)-anpn/(n+h),ColorGreen},Pop[p]{Equationp(apn/(n+h)-m),ColorRed},Parameters{an≥0,ap≥0,h≥0,m>0,k>0}}];
In[3]:=
an=1;ap=2;h=1;m=1;k=4;sol=EcoSim[{nk,p0.1},100]
Out[3]=
n
InterpolatingFunction
,pInterpolatingFunction
In[4]:=
PlotDynamics[sol]
Out[4]=
Look across entire domain:
In[5]:=
FindMaxima[n/.sol]
Out[5]=
{{16.8988,3.20897},{30.1197,3.15271},{43.2239,3.14226},{56.3072,3.1402},{69.3863,3.13979},{82.4646,3.13971},{95.5427,3.1397}}
Focus on a certain range:
In[6]:=
FindMaxima[n/.sol,{50,100}]
Out[6]=
{{56.3072,3.1402},{69.3863,3.13979},{82.4646,3.13971},{95.5427,3.13969}}
Thread across the rulelist sol:
In[7]:=
FindMaxima[sol]
Out[7]=
{n{{16.8988,3.20897},{30.1197,3.15271},{43.2239,3.14226},{56.3072,3.1402},{69.3863,3.13979},{82.4646,3.13971},{95.5427,3.1397}},p{{7.18359,3.61523},{20.5307,3.5074},{33.6571,3.48826},{46.7447,3.48451},{59.8247,3.48377},{72.9031,3.48362},{85.9813,3.48359},{99.0594,3.48358}}}
———
An unforced discrete-time model — the Ricker equation:
In[1]:=
Needs["EcoEvo`"];
In[2]:=
SetModel[{ModelType"DiscreteTime",Pop[n]{EquationnE^(r(1-n))},Parameters{r}}]
In[3]:=
r=2.1;sol=EcoSim[{n0.01},10]
Out[3]=
nTimeSeries
In[4]:=
PlotDynamics[sol]
Out[4]=
In[5]:=
FindMaxima[n/.sol]
Out[5]=
{{3,1.41422},{5,1.39419},{7,1.38408},{9,1.37852}}
In[6]:=
FindMaxima[sol]
Out[6]=
{n{{3,1.41422},{5,1.39419},{7,1.38408},{9,1.37852}}}
———
A List:
In[1]:=
Needs["EcoEvo`"];
In[2]:=
list={{1,1.1},{2,2},{3,1},{4,2.1}};
In[3]:=
FindMaxima[list]
Out[3]=
{{2,2},{4,2.1}}
In[4]:=
FindMaxima[list,{2,3}]
Out[4]=
{{2,2}}
▪