{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# lab 2\n",
"\n",
"In this lab, we're going to run through the mechanics of simulating/analyzing the dynamics of a linear model. We're using the data from the model of teasel ([*Diptacus* species](https://en.wikipedia.org/wiki/Dipsacus)) in the textbook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import required libraries:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import transgraph as tg\n",
"## limit the number of decimal places printed in output of numpy objects\n",
"np.set_printoptions(precision=3) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Set up the matrix $M$ as a two-dimensional array: `((a11,a12,...),(a21,a22,...),...,(an1,an2))` (the third set of parentheses belongs to the `np.array()` function)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 3.224e+02]\n",
" [ 9.660e-01 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00]\n",
" [ 1.300e-02 1.000e-02 1.250e-01 0.000e+00 0.000e+00 3.448e+00]\n",
" [ 7.000e-03 0.000e+00 1.250e-01 2.380e-01 0.000e+00 3.017e+01]\n",
" [ 8.000e-03 0.000e+00 0.000e+00 2.450e-01 1.670e-01 8.620e-01]\n",
" [ 0.000e+00 0.000e+00 0.000e+00 2.300e-02 7.500e-01 0.000e+00]]\n"
]
}
],
"source": [
"M = np.array(((0,0,0,0,0,322.38),\n",
" (0.966,0,0,0,0,0),\n",
" (0.013,0.010,0.125,0,0,3.448),\n",
" (0.007,0,0.125,0.238,0,30.17),\n",
" (0.008,0,0,0.245,0.167,0.862),\n",
" (0,0,0,0.023,0.75,0)))\n",
"print(M)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n",
"\n"
],
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cnames = [\"ds1\",\"ds2\",\"small R\",\"med R\",\"lg R\",\"flower\"] ## compartment names\n",
"tg.transmat_to_graph(M,cnames) ## draw a transition diagram"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The life stages are (1-year dormant seeds; 2-year dormant seeds; small rosettes; medium rosettes; large rosettes; flowering). Two points to notice:\n",
"\n",
"- the first row represents fecundity/birth of new plants: only the last (largest) stage can contribute, but each individual contributes a lot (322 new plants).\n",
"- plants always revert to one of the rosette stages after flowering ($\\mathbf M(6,6)=0$) [I'm indexing from zero so my Python-brain doesn't explode]\n",
"\n",
"Let's see what happens if we start from a single dormant seed."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"start = np.array((1,0,0,0,0,0))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The simple way to solve this computationally is with a `for` loop. How big does the population get after 200 time steps?"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 9.707e+71 4.039e+71 1.856e+70 1.056e+71 1.841e+70 6.992e+69]\n"
]
}
],
"source": [
"x = start\n",
"for t in range(200):\n",
" x = M.dot(x)\n",
"print(x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can do the same thing with a matrix-power operator: first we compute $\\mathbf M^{200}$, then multiply it by $x(0)$ (we could also do it all in one step):"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 9.707e+71 4.039e+71 1.856e+70 1.056e+71 1.841e+70 6.992e+69]\n"
]
}
],
"source": [
"M200 = np.linalg.matrix_power(M,200)\n",
"x200 = M200.dot(start)\n",
"print(x200)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The results are visually the same as before (we could use `np.allclose(x,x200)` to check that all of the elements are nearly identical - we don't expect them to be exactly the same, because floating-point computations are involved).\n",
"\n",
"Calculate eigenvalues and eigenvectors:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"e1 = np.linalg.eig(M)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Print the eigenvalues (numpy returns the eigenvalues as a complex-valued array: it uses `j`, rather than `i`, to denote $\\sqrt{-1}$. This is standard notation in engineering.)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 2.322+0.j , -0.957+1.489j, -0.957-1.489j, 0.142+0.198j,\n",
" 0.142-0.198j, -0.162+0.j ])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"e1[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compute the modulus of the eigenvalues: `numpy` uses `abs` for modulus as well as absolute value"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 2.322, 1.77 , 1.77 , 0.244, 0.244, 0.162])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.abs(e1[0])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.7622542516174049"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.abs(e1[0][1]/e1[0][0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's look at the eigenvector associated with the dominant eigenvalue. This is the first (zeroth) *column* of the eigenvector matrix, which we extract using `[:,0]` (if this is unfamiliar to you, you can search for \"slicing\" in my [math 1mp notes](http://bbolker.github.io/math1mp/notes/week1.html) or search for \"Python slicing tutorial\" on the web - or ask your TA)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-0.918+0.j -0.382+0.j -0.018+0.j -0.100+0.j -0.017+0.j -0.007+0.j]\n"
]
}
],
"source": [
"e10 = e1[1][:,0]\n",
"print(e10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Because the eigenvector matrix contains some complex values, the first column is stored as complex, even though the imaginary parts are all zero. We can extract the real part:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-0.918 -0.382 -0.018 -0.1 -0.017 -0.007]\n"
]
}
],
"source": [
"e10 = np.real(e10)\n",
"print(e10)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we want this to sum to 1 (so it will represent the *stable stage distribution*), we can divide it by its total:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.637 0.265 0.012 0.069 0.012 0.005]\n"
]
}
],
"source": [
"print(e10/np.sum(e10))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pictures\n",
"\n",
"Now we're going to run the model again, but keep track of the values for all time steps:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"tvec = np.arange(50)\n",
"x = np.zeros((len(tvec),len(start))) ## set up a 2D array of zeros for the results\n",
"x[0,:] = start\n",
"for t in tvec[1:]:\n",
" x[t,:] = M.dot(x[t-1,:])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For any linear model with an unstable zero equilibrium (i.e. geometric growth) and a dominant eigenvalue that is more than slightly above 1, the numbers will get ridiculous if we run it for very long (recall the population sizes of $10^{70}$ we saw above at $t=200$). It's convenient to plot such geometric growth curves on a *semi-log* scale, i.e. with a log-y axis:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nMJ0AAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plt.semilogy(tvec,x); ## \"semi-log-y\" (i.e. y is on the log scale)\n",
"plt.xlabel(\"time\")\n",
"plt.ylabel(\"population (compartment) size\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It would be nice to know the *proportion* of the population in each category (which is supposed to equilibrate to the stable stage distribution). We can use a `for` loop to divide each row (the population sizes at a specified time) by its total (the total population size):\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"x_scaled = x ## copy array to get ready\n",
"for r in range(x.shape[0]):\n",
" x_scaled[r,:] = x[r,:]/np.sum(x[r,:])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If your brain is full now, you can skim over the next few chunks. It's more compact to compute the vector of total population sizes (i.e. the row sums) all at once, and then divide the population table by the row-sum vector. When applied to a 2D array, `np.sum()` computes the entire sum ($\\sum_{i,j} x_{ij}$) by default, but we can use the `axis=` argument to compute column sums (`axis=0`) or row sums (`axis=1`) instead."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"rowsums = np.sum(x,axis=1) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we use `np.newaxis` to tell NumPy that we want a column vector, i.e. a $n \\times 1$ array. "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(50, 1)\n"
]
}
],
"source": [
"rowtab = rowsums[:,np.newaxis] \n",
"print(rowtab.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When we ask NumPy to divide a matrix by a column vector, it knows the right thing to do (i.e., divide each row of the matrix by the corresponding element of the vector, just as we did above)."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"x_scaled = x/rowtab ## same as above"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can plot the results:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"plt.plot(tvec,x_scaled)\n",
"plt.xlabel(\"time\")\n",
"plt.ylabel(\"proportion of population\");\n",
"ncat = x_scaled.shape[1] ## number of columns\n",
"plt.legend(range(ncat));"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}