# Mat375 Models

These models and simulations have been tagged “Mat375”. Spring, 2020: in the midst of on-line courses, due to the pandemic of Covid-19.

With the onset of the Covid-19 coronavirus crisis, we focus on SIRD models, which might realistically model the course of the disease.

We start with an SIR model, such as that featured in the MAA model featured in

Without mortality, with time measured in days, with infection rate 1/2, recovery rate 1/3, and initial infectious population I_0=1.27x10-4, we reproduce their figure

With a death rate of .005 (one two-hundredth of the infected per day), an infectivity rate of 0.5, and a recovery rate of .145 or so (takes about a week to recover), we get some pretty significant losses -- about 3.2% of the total population.

Resources: This (simplest!) model demonstrates logistic growth.The original differential equation looks like

y'(t) = b y(t) (1 - y(t)/K)

where K is the carrying capacity of the quantity y.

But if we divide each side of the equation by K, we obtain

d(y/K)/dt = b (y/K) (1-y/K)

Defining a new variable w, the population relative to its carrying capacity, we obtain

dw/dt = b w (1 - w)

Finally we divide both sides by b, to write

dw/d(bt) = w (1 - w)

So if we work in dimensionless time units of bt, we have

w' = w (1 - w)

where the derivative is with respect to the variable bt=τ. .
τ=τ
This
This equation, as simple as possible, contains all the dynamics (all the ways the population can behave), while masking the "trivialities"; but it kind of hides the physical aspects of the problem. So it's easy to study, but harder to interpret: alas, you can't have it all!:)

τ=1 when t=1b: so if b=.5/year, then τ=1 when t=2.

So the larger b (the greater the birthrate), the shorter the real time t to give τ=1.
τ=τ=

τ= This is an introductory example from Olinick's book An Introduction to Mathematical Models in the Social and Life Sciences. ​

"A recent study focused on the relationship between the birth weights of English women and the birth weights of their daughters. The weights were split into three categories: low (below 6 pounds), average (between 6 and 8 pounds), and high (above 8 pounds). Among women whose own birth weights were low, 50 percent of the daughters had low birth weights, 45 percent had average weights, and 5 percent had high weights. Women with average birth weights had daughters with average weights half of the time, while the half was split evenly between low and high categories. Women with high birth weights had female babies with high weights 40 percent of the time, with low and average weights each occuring 30 percent of the time." p. 274-275.

For the Markov chain, you should make sure that you're taking time steps of length 1 in the settings, and Euler. RK-4 effectively looks beyond a single previous step, so it has a sort of memory!

Thanks Mike! Interesting examples, as always....
Andy Long

Next up: an SIR. This is an example of an SIR (Susceptible, Infected, Recovered) model that has been re-parameterized down to the bare minimum, to illustrated the dynamics possible with the fewest number of parameters.

We're rescaled this SIR model, so that time is given in infection rate-appropriate time units, "rates" are now ratios of rates (with infectivity rate in the denominator), and populations are considered proportions (unfortunately InsightMaker doesn't function properly if I give them all values from 0 to 1, which sum to 1 -- so, at the moment, I give them values that sum to 100, and consider the results percentages).

The new display includes the asymptotics: the three sub-populations will tend to fixed values as time goes to infinity; the infected population goes to zero if the recovery rate is greater than the infectivity rate -- i.e., the disease dies out.

Note the use of a "ghost" stock (for Total Population), which I think is a pretty cool idea. It cuts down on the number of arcs in the model graph.

A comparable model in Mathematica is available at
http://www.nku.edu/~longa/classes/2018spring/mat375/mathematica/SIRModel-rescaled.nb This is an introductory example from Olinick's book An Introduction to Mathematical Models in the Social and Life Sciences. ​

"A recent study focused on the relationship between the birth weights of English women and the birth weights of their daughters. The weights were split into three categories: low (below 6 pounds), average (between 6 and 8 pounds), and high (above 8 pounds). Among women whose own birth weights were low, 50 percent of the daughters had low birth weights, 45 percent had average weights, and 5 percent had high weights. Women with average birth weights had daughters with average weights half of the time, while the half was split evenly between low and high categories. Women with high birth weights had female babies with high weights 40 percent of the time, with low and average weights each occuring 30 percent of the time." p. 274-275.

For the Markov chain, you should make sure that you're taking time steps of length 1 in the settings, and Euler. RK-4 effectively looks beyond a single previous step, so it has a sort of memory!

Thanks Mike! Interesting examples, as always....
Andy Long

Next up: an SIR. This model illustrates predator prey interactions using real-life data of wolf and moose populations on the Isle Royale. It was "cloned" from a model that InsightMaker provides to its users, at
https://insightmaker.com/insight/2068/Isle-Royale-Predator-Prey-Interactions
Thanks Scott Fortmann-Roe.

I've created a Mathematica file that replicates the model, at
http://www.nku.edu/~longa/classes/2018spring/mat375/mathematica/Moose-n-Wolf-InsightMaker.nb

It allows one to experiment with adjusting the initial number of moose and wolves on the island.

I used steepest descent in Mathematica to optimize the parameters, with my objective data being the ratio of wolves to moose. You can try my (admittedly) kludgy code, at
http://www.nku.edu/~longa/classes/2018spring/mat375/mathematica/Moose-n-Wolf-InsightMaker-BestFit.nb

{WolfBirthRateFactorStart,
WolfDeathRateStart,
MooseBirthRateStart,
MooseDeathRateFactorStart,
moStart,
woStart} =
{0.000267409,
0.239821,
0.269755,
0.0113679,
591,
23.}; This is an example of an SIR (Susceptible, Infected, Recovered) model that has been re-parameterized down to the bare minimum, to illustrated the dynamics possible with the fewest number of parameters.

We're rescaled this SIR model, so that time is given in infection rate-appropriate time units, "rates" are now ratios of rates (with infectivity rate in the denominator), and populations are considered proportions (unfortunately InsightMaker doesn't function properly if I give them all values from 0 to 1, which sum to 1 -- so, at the moment, I give them values that sum to 100, and consider the results percentages).

The new display includes the asymptotics: the three sub-populations will tend to fixed values as time goes to infinity; the infected population goes to zero if the recovery rate is greater than the infectivity rate -- i.e., the disease dies out.

Note the use of a "ghost" stock (for Total Population), which I think is a pretty cool idea. It cuts down on the number of arcs in the model graph.

A comparable model in Mathematica is available at
http://www.nku.edu/~longa/classes/2018spring/mat375/mathematica/SIRModel-rescaled.nb This is an introductory example from Olinick's book An Introduction to Mathematical Models in the Social and Life Sciences. ​

"A recent study focused on the relationship between the birth weights of English women and the birth weights of their daughters. The weights were split into three categories: low (below 6 pounds), average (between 6 and 8 pounds), and high (above 8 pounds). Among women whose own birth weights were low, 50 percent of the daughters had low birth weights, 45 percent had average weights, and 5 percent had high weights. Women with average birth weights had daughters with average weights half of the time, while the half was split evenly between low and high categories. Women with high birth weights had female babies with high weights 40 percent of the time, with low and average weights each occuring 30 percent of the time." p. 274-275.

For the Markov chain, you should make sure that you're taking time steps of length 1 in the settings, and Euler. RK-4 effectively looks beyond a single previous step, so it has a sort of memory!

Thanks Mike! Interesting examples, as always....
Andy Long

Next up: an SIR. This is an introductory example from Olinick's book An Introduction to Mathematical Models in the Social and Life Sciences. ​

"A recent study focused on the relationship between the birth weights of English women and the birth weights of their daughters. The weights were split into three categories: low (below 6 pounds), average (between 6 and 8 pounds), and high (above 8 pounds). Among women whose own birth weights were low, 50 percent of the daughters had low birth weights, 45 percent had average weights, and 5 percent had high weights. Women with average birth weights had daughters with average weights half of the time, while the half was split evenly between low and high categories. Women with high birth weights had female babies with high weights 40 percent of the time, with low and average weights each occuring 30 percent of the time." p. 274-275.

For the Markov chain, you should make sure that you're taking time steps of length 1 in the settings, and Euler. RK-4 effectively looks beyond a single previous step, so it has a sort of memory!

Thanks Mike! Interesting examples, as always....
Andy Long

Next up: an SIR. This is an introductory example from Olinick's book An Introduction to Mathematical Models in the Social and Life Sciences. ​

"A recent study focused on the relationship between the birth weights of English women and the birth weights of their daughters. The weights were split into three categories: low (below 6 pounds), average (between 6 and 8 pounds), and high (above 8 pounds). Among women whose own birth weights were low, 50 percent of the daughters had low birth weights, 45 percent had average weights, and 5 percent had high weights. Women with average birth weights had daughters with average weights half of the time, while the half was split evenly between low and high categories. Women with high birth weights had female babies with high weights 40 percent of the time, with low and average weights each occuring 30 percent of the time." p. 274-275.

For the Markov chain, you should make sure that you're taking time steps of length 1 in the settings, and Euler. RK-4 effectively looks beyond a single previous step, so it has a sort of memory!

Thanks Mike! Interesting examples, as always....
Andy Long

Next up: an SIR. The basic model of Modelling the Canada lynx and snowshoe hare population cycle: The role of specialist predators (Tyson, et al.) demonstrates logistic growth in prey, and in predator (with prey dependence for carrying capacity). But interestingly, one possibility is limit cycles, which mimic the cycling of the populations in nature.

The differential equations for the population of hare (x) is

x'(t) = rx(1-x/K)
- gamma x^2/(x^2+eta^2)
- alpha y x/(x+mu)

where K is the logistic carrying capacity of the prey (hare), in the absence of predation; the second term is a "generalist predation" term;  and the third term is the "specialist predation" (in the limit as the prey gets big, this becomes simply proportional to y (the lynx population)).

The differential equations for the population of lynx (y) is

y'(t) = sy(1- qy/x) = sy - sqy^2/x

for the predator (lynx), which is essentially logistic growth. Its growth term suggests exponential growth, but there is a loss term of the form sqy^2/x -- loss is proportional to population (crowding), and inversely proportional to prey density. As the hare population goes to zero, so shall the lynx....

As one can see, the prey density won't change if y=x/q. If the prey density were not changing at the same time, the system would be at equilibrium.

In this InsightMaker model, I scaled the second equation by multiplying by q, then replace y by w=qy throughout both equations. This requires a slight change in the prey equation -- alpha replaced by the ratio of alpha/q.  (I used my favorite mathematical trick, of multiplying by the appropriate form of 1!)

So what we're really looking at here is the system

x'(t) = rx(1-x/K)
- gamma x^2/(x^2+eta^2)
- alpha/q w x/(x+mu)
w'(t) = sw(1- w/x)

where w(t)=qy(t).

Tyson, et al. took q to be about 212 for hare and lynx -- so that it requires about 212 hare to allow for one lynx to survive at "equilibrium".

However, when alpha -- the hares/lynx/year -- gets sufficiently large (e.g. 1867 -- and that does seem like a lot of hares per lynx per year...:), limit cycles develop (rather than a stable equilibrium). This means that the populations oscillate about the equilibrium values, rather than stabilize at those values.

Author: Andy Long, Northern Kentucky University (2020)

Reference: Tyson, Rebecca, Sheena Haines,  Karen Hodges. Modelling the Canada lynx and snowshoe hare population cycle: The role of specialist predators. Theoretical Ecology. 3, 97–111 (2010). https://doi.org/10.1007/s12080-009-0057-1

Resource: A comparable Mathematica model can be found at  http://ceadserv1.nku.edu/longa//classes/mat375/days/Mathematica/BasicModel.nb,
which allows one to experiment a little more easily than one can with this InsightMaker model. Spring, 2020:

With the onset of the Covid-19 coronavirus crisis, we focus on SIRD models, which might realistically model the course of the disease.

We start with an SIR model, such as that featured in the MAA model featured in

Without mortality, with time measured in days, with infection rate 1/2, recovery rate 1/3, and initial infectious population I_0=1.27x10-6, we recover their figure

With a death rate of .005 (one two-hundredth of the infected per day), an infectivity rate of 0.5, and a recovery rate of .145 or so (takes about a week to recover), we get some pretty significant losses -- about 3.2% of the total population.

Resources: This model illustrates predator prey interactions using real-life data of wolf and moose populations on the Isle Royale. It was "cloned" from a model that InsightMaker provides to its users, at
https://insightmaker.com/insight/2068/Isle-Royale-Predator-Prey-Interactions
Thanks Scott Fortmann-Roe.

I've created a Mathematica file that replicates the model, at
http://www.nku.edu/~longa/classes/2018spring/mat375/mathematica/Moose-n-Wolf-InsightMaker.nb

It allows one to experiment with adjusting the initial number of moose and wolves on the island.

I used steepest descent in Mathematica to optimize the parameters, with my objective data being the ratio of wolves to moose. You can try my (admittedly) kludgy code, at
http://www.nku.edu/~longa/classes/2018spring/mat375/mathematica/Moose-n-Wolf-InsightMaker-BestFit.nb

{WolfBirthRateFactorStart,
WolfDeathRateStart,
MooseBirthRateStart,
MooseDeathRateFactorStart,
moStart,
woStart} =
{0.000267409,
0.239821,
0.269755,
0.0113679,
591,
23.}; This is an example of an SIR (Susceptible, Infected, Recovered) model that has been re-parameterized down to the bare minimum, to illustrated the dynamics possible with the fewest number of parameters.

We're rescaled this SIR model, so that time is given in infection rate-appropriate time units, "rates" are now ratios of rates (with infectivity rate in the denominator), and populations are considered proportions (unfortunately InsightMaker doesn't function properly if I give them all values from 0 to 1, which sum to 1 -- so, at the moment, I give them values that sum to 100, and consider the results percentages).

The new display includes the asymptotics: the three sub-populations will tend to fixed values as time goes to infinity; the infected population goes to zero if the recovery rate is greater than the infectivity rate -- i.e., the disease dies out.

Note the use of a "ghost" stock (for Total Population), which I think is a pretty cool idea. It cuts down on the number of arcs in the model graph.

A comparable model in Mathematica is available at
http://www.nku.edu/~longa/classes/2018spring/mat375/mathematica/SIRModel-rescaled.nb This model illustrates predator prey interactions using real-life data of wolf and moose populations on the Isle Royale.

We incorporate logistic growth into the moose dynamics, and we replace the death flow of the moose with a kill rate modeled from the kill rate data found on the Isle Royale website.

Thanks to Jacob Englert for the model if-then-else structure.