#ProjX.txt: Maple package for Project 2 of Math 336 (Rutgers Niv., Fall 2025 taught by Dr. Z. (aka Professor Doron Zeilberger))

read `DMB.txt`:

print(`This is ProjX.txt, a Maple package accompanying Project X of Dr. Z.'s Math 336 (Dynamical Models in Biology), Fall 2025`):
print(` Project Leader: Brian Koo `):
print(``):
print(`Other members : Brian Jin , Praneeth Vedantham`):
print(``):
print(`For a list of the procedures done by this team type: HelpX(); For Help with a specific procedure, type: HelpX(ProcedureName);`):

HelpX:=proc()
if nargs=0 then
print(`The available procedures are: AllenSIR, AllenSIRg, SIRS`):

elif nargs=1 and args[1]=AllenSIR then
print(`AllenSIR(a,b,c,x,y): The Linda Allen discrete SIR model given in https://sites.math.rutgers.edu/~zeilberg/Bio25/AllenSIR.pdf`):
print(`with parameters a,b,c. satisfying 0<a,b,c and 0<b+c<=1 , with initial conditions x0,y0>0 and 0<x0+y0<=1 .Try:`):
print(`AllenSIR(0.2,0.3,0.4,x,y);`):

AllenSIR:=proc(a,b,c,x,y) [x*(1-b-c)+y*(1-exp(-a*x)),(1-y)*b+y*exp(-a*x)]: end:

elif nargs=1 and args[1]=AllenSIR then
print(``) print(`AllenSIRg(a,b,c,alpha,beta,x,y): The GENERALIZED Linda Allen discrete SIR model given in https://sites.math.rutgers.edu/~zeilberg/Bio25/AllenSIR.pdf`):
print(`with parameters a,b,c. Try:`):
print(`where the expnents of x_n and y_n are alpha and beta.  Note that`):
print(`AllenSIRg(a,b,c,1,1,x,y) is the same as AllenSIR(a,b,c,x,y): Try:`):
print(`AllenSIRg(1,1/3,1/3,1.2,1.2,x,y);`):

AllenSIRg:=proc(a,b,c,alpha,beta,x,y) [x^alpha*(1-b-c)+y^beta*(1-exp(-a*x)),(1-y^beta)*b+y^beta*exp(-a*x)]: end:

elif nargs=1 and args[1]=SIRS then
print(`SIRS(s,i,beta,gamma,nu,N): The SIRS dynamical model with parameters beta,gamma, nu,N (see  section 6.6 of Edelstein-Keshet), s is the number of`):
print(`Susceptibles, i is the number of infected, (the number of removed is given by N-s-i). N is the total population. Try:`):
print(`SIRS(s,i,beta,gamma,nu,N);`):

SIRS:=proc(s,i,beta,gamma,nu,N):[-beta*s*i+gamma*(N-s-i),beta*s*i-nu*i]:end:

else
print(`There is no Help for`, args):
fi:

end: