Revision: 4038
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4038&view=rev
Author:   jdh2358
Date:     2007-10-28 08:00:36 -0700 (Sun, 28 Oct 2007)

Log Message:
-----------
added lotka example

Modified Paths:
--------------
    trunk/py4science/examples/qsort.py

Added Paths:
-----------
    trunk/py4science/examples/lotka_volterra.py
    trunk/py4science/examples/skel/lotka_volterra_skel.py

Added: trunk/py4science/examples/lotka_volterra.py
===================================================================
--- trunk/py4science/examples/lotka_volterra.py                         (rev 0)
+++ trunk/py4science/examples/lotka_volterra.py 2007-10-28 15:00:36 UTC (rev 
4038)
@@ -0,0 +1,78 @@
+import numpy as n
+import pylab as p
+import scipy.integrate as integrate
+
+def dr(r, f):
+    return alpha*r - beta*r*f    
+    
+def df(r, f):
+    return gamma*r*f - delta*f
+
+def derivs(state, t):
+    """
+    Map the state variable [rabbits, foxes] to the derivitives
+    [deltar, deltaf] at time t
+    """
+    #print t, state
+    r, f = state  # rabbits and foxes
+    deltar = dr(r, f)  # change in rabbits
+    deltaf = df(r, f) # change in foxes
+    return deltar, deltaf
+
+alpha, delta = 1, .25
+beta, gamma = .2, .05
+
+# the initial population of rabbits and foxes
+r0 = 20
+f0 = 10
+
+t = n.arange(0.0, 100, 0.1)
+
+y0 = [r0, f0]  # the initial [rabbits, foxes] state vector
+y = integrate.odeint(derivs, y0, t)
+r = y[:,0]  # extract the rabbits vector
+f = y[:,1]  # extract the foxes vector
+
+p.figure()
+p.plot(t, r, label='rabbits')
+p.plot(t, f, label='foxes')
+p.xlabel('time (years)')
+p.ylabel('population')
+p.title('population trajectories')
+p.grid()
+p.legend()
+p.savefig('lotka_volterra.png', dpi=150)
+p.savefig('lotka_volterra.eps')
+
+
+p.figure()
+p.plot(r, f)
+p.xlabel('rabbits')
+p.ylabel('foxes')
+p.title('phase plane')
+
+
+# make a direction field plot with quiver
+rmax = 1.1 * r.max()
+fmax = 1.1 * f.max()
+R, F = n.meshgrid(n.arange(-1, rmax), n.arange(-1, fmax))
+dR = dr(R, F)
+dF = df(R, F)
+p.quiver(R, F, dR, dF)
+
+
+R, F = n.meshgrid(n.arange(-1, rmax, .1), n.arange(-1, fmax, .1))
+dR = dr(R, F)
+dF = df(R, F)
+
+p.contour(R, F, dR, levels=[0], linewidths=3, colors='black')
+p.contour(R, F, dF, levels=[0], linewidths=3, colors='black')
+p.ylabel('foxes')
+p.title('trajectory, direction field and null clines')
+
+p.savefig('lotka_volterra_pplane.png', dpi=150)
+p.savefig('lotka_volterra_pplane.eps')
+
+
+p.show()
+

Modified: trunk/py4science/examples/qsort.py
===================================================================
--- trunk/py4science/examples/qsort.py  2007-10-27 12:36:39 UTC (rev 4037)
+++ trunk/py4science/examples/qsort.py  2007-10-28 15:00:36 UTC (rev 4038)
@@ -33,5 +33,7 @@
             rseq = range(10)
             random.shuffle(rseq)
             sseq = qsort(rseq)
+            print tseq
+            print sseq
             self.assertEqual(tseq,sseq)
     main()

Added: trunk/py4science/examples/skel/lotka_volterra_skel.py
===================================================================
--- trunk/py4science/examples/skel/lotka_volterra_skel.py                       
        (rev 0)
+++ trunk/py4science/examples/skel/lotka_volterra_skel.py       2007-10-28 
15:00:36 UTC (rev 4038)
@@ -0,0 +1,56 @@
+import numpy as n
+import pylab as p
+import scipy.integrate as integrate
+
+def dr(r, f):
+    'return delta r'
+    XXX
+    
+def df(r, f):
+    'return delta f'
+    XXX
+def derivs(state, t):
+    """
+    Map the state variable [rabbits, foxes] to the derivitives
+    [deltar, deltaf] at time t
+    """
+    XXX
+    
+alpha, delta = 1, .25
+beta, gamma = .2, .05
+
+# the initial population of rabbits and foxes
+r0 = 20
+f0 = 10
+
+t = XXX       # pick a time vector (think about the time scales!)
+y0 = [r0, f0] # the initial [rabbits, foxes] state vector
+y = XXX       # integrate derives over t starting at y0
+r = XXX       # extract the rabbits vector
+f = XXX       # extract the foxes vector
+
+
+# FIGURE 1: rabbits vs time and foxes vs time on the same plot with
+# legend and xlabel, ylabel and title
+
+# FIGURE 2: the phase plane
+
+# plot r vs f and label the x and y axes
+XXX
+
+# FIGURE 2 continued....
+
+# use meshgrid to make a grid over R and F
+# with a coarse 1 year sampling.  evaluate dR and dF over the 2 s
+# grids and make a quiver plot.  See pylab.quiver and matplotlib
+# examples/quiver_demo.py
+XXX
+
+# FIGURE 2 continued...  use contour to compute the null clines over
+# dR (the rabbits null cline) and dF (the foxes null cline).  You will
+# need to do a finer meshgrid for accurate null clins and pass
+# levels=[0] to contour
+XXX
+
+p.show()
+


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to