連続時間のモデル
Models in continuous time

指数モデル Exponential model

deq={n'[t]==r n[t],n[0]==n0}

sol=DSolve[deq,n[t],t][[1]]

para1={r->-0.5,n0->1}
para2={r->-0.7,n0->1}
para3={r->-1.0,n0->1}

Plot[{Evaluate[n[t]/.sol]/.para1,Evaluate[n[t]/.sol]/.para2,Evaluate[n[t]/.sol]/.para3},{t,0,5},AxesLabel->{"t","n[t]"},PlotStyle->Thick]

LogPlot[{Evaluate[n[t]/.sol]/.para1,Evaluate[n[t]/.sol]/.para2,Evaluate[n[t]/.sol]/.para3},{t,0,5},AxesLabel->{"t","n[t]"},PlotStyle->Thick]

ロジスティックモデル Logistic model in continuous time

deq = {n'[t]==r(1 - n[t]/k)n[t],n[0]==n0}

sol = DSolve[deq,n[t],t]

para = {n0->0.1, k->10};

Plot[{n[t]/.sol/.para/.r->1,n[t]/.sol/.para/.r->2,n[t]/.sol/.para/.r->4},{t,0,10},AxesLabel->{"t","n[t]"},PlotStyle->Thick]

LogPlot[{n[t]/.sol/.para/.r->1,n[t]/.sol/.para/.r->2,n[t]/.sol/.para/.r->4},{t,0,10},AxesLabel->{"t","n[t]"},PlotStyle->Thick]

LogPlot[{n[t]/.sol/.para/.n0->0.1,n[t]/.sol/.para/.n0->1,n[t]/.sol/.para/.n0->5,n[t]/.sol/.para/.n0->12,10},{t,0,10},AxesLabel->{"t","n[t]"},PlotStyle->Thick,PlotRange->All]

fn=r(1-n)n

Plot[fn/.r->1,{n,-0.1,1.2},PlotRange->{-0.2,0.5},PlotStyle->Thick,AxesLabel->{"n","f(n)"},Ticks->None]

ロジスティック成長資源を一定率で収穫

fn=r(1-n/k)n -h

fnN=fn/.{r->1,k->100}

Plot[{fnN/.h->0, fnN/.h->10,fnN/.h->25},{n,0,120},PlotRange->{-20,40},Ticks->None,AxesLabel->{"n","dn/dt"},PlotStyle->Thick]

ロジスティック成長資源を一定の努力係数で収穫

fn=r(1-n/k)n -a n

fnN=fn/.{r->1,k->100}

Plot[{fnN/.a->0, fnN/.a->0.1,fnN/.a->0.2},{n,0,120},PlotRange->{-20,40},Ticks->None,AxesLabel->{"n","dn/dt"},PlotStyle->Thick]

Another model 1

deq = {n'[t]==r(1 - n[t]/k)n[t]n[t],n[0]==n0}

para = {r->1, k->10};

deqN = deq/.para/.n0->0.1

sol = NDSolve[deqN,n[t],{t,0,20}]

Plot[ Evaluate[ n[t]/.sol],{t,0,20},PlotRange->All,AxesLabel->{"t","n[t]"}]

Another model 2

deq = {n'[t]==r(1 - n[t]/k)n[t]-b n[t]^2/(a^2+n[t]^2),n[0]==n0}

para = {r->1, k->1,a->1,b->1};

deqN = deq/.para/.n0->0.01

sol = NDSolve[deqN,n[t],{t,0,20}]

Plot[ Evaluate[ n[t]/.sol],{t,0,20},PlotRange->All,AxesLabel->{"t","n[t]"}]

時間遅れを伴うロジスティックモデル Logistic model with time delay

deq= {n'[t] == r(1 - n[t-delay]/k)n[t],n[t/;t<0]==n0}

Delay T = 1

para = {r->1, k->1, delay->1,n0->0.01};

deqN = deq/.para

sol = NDSolve[deqN,n[t],{t,0,100}];

Plot[Evaluate[ n[t]/.sol],{t,0,100},PlotRange->All,AxesLabel->{"t","n[t]"}]

Delay T = 1.5

para = {r->1, k->1, delay->1.5,n0->0.01};

deqN = deq/.para

sol = NDSolve[deqN,n[t],{t,0,100}];

Plot[Evaluate[ n[t]/.sol],{t,0,100},PlotRange->All,AxesLabel->{"t","n[t]"}]

Delay T = 1.6

para = {r->1, k->1, delay->1.6,n0->0.01};

deqN = deq/.para

sol = NDSolve[deqN,n[t],{t,0,100}];

Plot[Evaluate[ n[t]/.sol],{t,0,100},PlotRange->All,AxesLabel->{"t","n[t]"}]

Delay T = 1.7

para = {r->1, k->1, delay->1.7,n0->0.01};

deqN = deq/.para

sol = NDSolve[deqN,n[t],{t,0,100}];

Plot[Evaluate[ n[t]/.sol],{t,0,100},PlotRange->All,AxesLabel->{"t","n[t]"}]