Page 130 predprey:=[diff(x(t),t)=r*x(t)-a*x(t)*y(t), diff(y(t),t)=-m*y(t)+b*x(t)*y(t)]; r:=1; a:=1; m:=1; b:=1; sol:=dsolve({ predprey,x(0)=3/2,y(0)=1/2}, { x(t),y(t)},type=numeric, output=listprocedure); xsol:=subs(sol,x(t)); ysol:=subs(sol,y(t)); plot([xsol,ysol],0..10,-1..3); Page 131 with(plots): with(DEtools): inits:$=${[0,3/2,1/2],[0,4/5,3/2]}; phaseportrait(predprey,[x,y],t=0..10,inits,stepsize=.1); dsolve(diff(y(x),x)=(-y(x)+x*y(x))/(x-x*y(x)),y(x),implicit); Page 134 restart: with(LinearAlgebra):with(VectorCalculus): V:=vector([r*x-a*x*y,-m*y+b*x*y]); solve({V[1]=0,V[2]=0}, {x,y}); jacobian(V,[x,y]); subs({ x=0,y=0} ,%); subs({ x=m/b,y=r/a},%%); Eigenvalues(%%); Eigenvalues(%%); Exercises/Experiments 2. restart: rsx:=-x(t)+x(t)*y(t); rsy:=-y(t)+2*y(t)*z(t)-x(t)*y(t); rsz:= 2*z(t)-z(t)^2-y(t)*z(t); For Grass sol:=dsolve({ diff(x(t),t)=rsx, diff(y(t),t)=rsy,diff(z(t),t)=rsz, x(0)=0,y(0)=0,z(0)=1.5}, { x(t),y(t),z(t)}, type=numeric, output=listprocedure); zsol:=subs(sol,z(t)); zsol(1); plot(zsol,0..20,color=green); For Grass and Sheep sol:=dsolve({ diff(x(t),t)=rsx, diff(y(t),t)=rsy, diff(z(t),t)=rsz, x(0)=0,y(0)=.5,z(0)=1.5},{x(t),y(t),z(t)}, type=numeric, output=listprocedure); ysol:=subs(sol,y(t));zsol:=subs(sol,z(t)); plot([ysol,zsol],0..20,color=[green,black]); For Grass, Sheep, and Wolves sol:=dsolve({ diff(x(t),t)=rsx, diff(y(t),t)=rsy, diff(z(t),t)=rsz, x(0)=.2,y(0)=.5,z(0)=1.5},{x(t),y(t),z(t)}, type=numeric, output=listprocedure); xsol:=subs(sol,x(t)); ysol:=subs(sol,y(t)); zsol:=subs(sol,z(t)); plot([xsol,ysol,zsol],0..20,color=[green,black,red]); 5b. r:=1; a:=1; sol:=dsolve({ diff(SU(t),t)=-r*SU(t)*IN(t), diff(IN(t),t)=r*SU(t)*IN(t)-a*IN(t), diff(R(t),t)=a*IN(t), SU(0)=2.8, IN(0)=0.2, R(0)=0},{ SU(t),IN(t),R(t)}, type=numeric, output=listprocedure): f:=subs(sol,SU(t)): g:=subs(sol,IN(t)): h:=subs(sol,R(t)); plot({ f,g,h}, 0..20,color=[green,red,black]); 5c. restart:with(plots): N:=5; f[0]:=t-> 2.8; g[0]:=t-> 0.2*exp(-t^2); h[0]:=t-> 0; P[0]:=plot([[t,f[0](t),t=-1..0],[t,g[0](t),t=-1..0], [t,h[0](t),t=-1..0]],color=[green,red,black]): for n from 1 to N do sol:=dsolve({ diff(SU(t),t)=-SU(t)*IN(t)+h[n-1](t-1), diff(IN(t),t)=SU(t)*IN(t)-IN(t), diff(R(t),t)=IN(t)-h[n-1](t-1), SU(n-1)=f[n-1](n-1), IN(n-1)=g[n-1](n-1), R(n-1)=h[n-1](n-1)},{ SU(t),IN(t),R(t)}, numeric, output=listprocedure,known=h[n-1]): f[n]:=subs(sol,SU(t)); g[n]:=subs(sol,IN(t)); h[n]:=subs(sol,R(t)): P[n]:=plot([[t,f[n](t),t=n-1..n],[t,g[n](t),t=n-1..n], [t,h[n](t),t=n-1..n]], color=[green,red,black]): od: n:='n'; J:=plot([t,1,t=0..N],color=blue): display([J,seq(P[n],n=0..N)]); for n from 1 to N do Q[n]:=spacecurve([f[n](t),g[n](t),h[n](t)], t=n-1..n,axes=normal,color=black): od: PP:=pointplot3d([1,1,1],axes=normal, symbol=diamond, color=green): display([PP,seq(Q[n],n=1..N)]);