Logistic equation, population dynamics in isolation

Solving analytically (sigmoid function)

Clear[r,k]
DSolve[x'[t]== r x[t] (1-((x[t])/k)),x[t],t]

Plotting the phase portrait and the numerical solution

Clear[x,t,sols,sol]
t0=0.0;
tmax=10;

Manipulate[
php=Plot[r x (1-(x/k)),{x,0,k+3},PlotRange->All,AxesLabel->{x[t],"(∂_t)x"},PlotLabel->Style[ "Phase portrait directly from the equation",17],LabelStyle->17,ImageSize->380];
gpc=Plot[r (1-(x/k)),{x,0,k+10},PlotRange->All,AxesLabel->{x,"(((∂_t)x)/x)"},PlotLabel-> Style["Growth per capita",17],LabelStyle->17,ImageSize->380];
Row[{php,gpc},"        "],
{{r,1.1,"Growth rate, r"},0,5,Appearance->"Labeled"},
{{k,20,"Carrying capacity, K"},1,30,Appearance->"Labeled"},
TrackedSymbols:>{k,r},SaveDefinitions->True]

Manipulate[
sols=ParametricNDSolveValue[{x'[t]== r x[t] (1-((x[t])/k)),x[0]==IC},x,{t,t0,tmax},{IC}];
prologue=Plot[Evaluate[Table[sols[ic][t],{ic,0,40,3}]],{t,t0,tmax},AxesLabel->{t,x[t]},ImageSize->400,PlotRange->{0,40},LabelStyle->17,PlotStyle->{{LightGray}}];
sol=NDSolve[{x'[t]== r x[t] (1-((x[t])/k)),x[0]==x0},x,{t,t0,tmax}];
plot1=Plot[Evaluate[x[t]/.sol],{t,t0,tmax},AxesLabel->{t,x[t]},ImageSize->400,PlotRange->{0,40},LabelStyle->17,PlotLabel-> Style["Integrated solution",17],PlotStyle->{Red,Thick}];
plot2=ParametricPlot[Evaluate[{x[t],x'[t]}/.sol],{t,t0,tmax},PlotRange->{{0,25},{-10,11}},AxesLabel->{x[t],"(∂_t)x"},ImageSize->400,LabelStyle->17,PlotLabel-> Style["Phase portrait",17],PlotStyle->{Red,Thick}];
Column[{Show[prologue,plot1],plot2}],
{{x0,2,"Initial condition, x0"},0,40,Appearance->"Labeled"},
{{r,1.1,"Growth rate, r"},0,5,Appearance->"Labeled"},
{{k,20,"Carrying capacity, K"},1,30,Appearance->"Labeled"},
TrackedSymbols:>{x0,k,r},SaveDefinitions->True]

Creation of this notebook was supported by IT Academy program of Information Technology Foundation for Education (HITSA).