Skip to main content

CO905 Stochastic models of complex systems

Online Course Materials

Lecturer: Stefan Grosskinsky

Lectures: Thu 9-11 in D1.07

Classes: Fri 11-12 in D1.07

Tutorials: Fri 12-13 in D1.07

VIVAS: Friday 10-12 and 13-15:40 in D1.07 (schedule)
checklist of topics for the viva: content_12.pdf


  • NEW: preliminary final version of the notes: notes_co905_12.pdf
    regularly updated and corrected, please let me know if you find errors
  • Last year's course notes: notes_co905_11.pdf
    See here for all of last year's online materials.
  • For students with a good knowledge in probability the notes of the course MA4H3 have useful background material for later parts of the course.

Changes/Related Events

  • First lecture on Thu 12.01.2012
  • Friday 27.01. there are no classes and no computer tutorial
  • Last lecture Thursday 15.3. at 9 (revision)
    Vivas are Friday 16.3.

Problem Sheets

  • sheet3: Scaling limits, Moran model, simulation of the contact process
    sample code for programming see below
  • sheet2: Birth-death processes, contact process, exclusion process
    sample code for programming see below
  • sheet1: Generators/eigenvalues, branching processes, random walks


  • handout6: Proof of Thm 3.5 (non-examinable)
  • handout5: Connection between stochastic particle systems and PDEs (done for TASEP and Burgers equation)
  • handout4: Characteristic function, Gaussians, LLN, CLT
  • handout3: Poisson process, random sequential update, exponentials
  • handout2: Some background on linear algebra (note stupid mistake! first two points hold only for square matrices)
  • handout1: Generating functions, branching processes

Matlab and C stuff

  • Simple C programs for the contact process: contact.c (for Q3.3(a)) and contact2.c (for Q3.3(b))
    (as before, you might have to adapt the random number generator)
    Example plot for Q3.3(a) only to get an idea, please use increments of 0.01 for lambda as described in the question and plot more values.
  • NEWBasic C code traffic_q23.c for Q2.3. Visualize output e.g. with Matlab using imagesc.
    I hope it works, please report bugs.
  • Basic C code traffic.c and Matlab file traffic.m for the TASEP (Q2.4), to be adapted.
    Should compile with gcc traffic.c on a CSC machine, try gcc -O5 traffic.c to speed it up in case it runs too slow.
    If you want to compile on your own machine, you might have to adapt the random number generator, e.g. replace lrand48() by rand() and srand48(seed) by srand(seed). But note that rand() is typically 'too bad', so to get good results you should run the code with 48 on a CSC machine. If interested, try the Mersenne Twister (see link below).
  • You can find a list with CSC machines here, where you can run QUICK programmes ONLY, without submitting to the COW.
  • Wikibooks on Matlab and C_Programming
  • If you ever need a really good random number generator (not necessary for the module):

Suggested Books

  • Gardiner: Handbook of Stochastic Methods (Springer).
  • Grimmett, Stirzaker: Probability and Random Processes (Oxford).
  • Grimmett: Probability on Graphs (CUP). (available online here)
  • Mendez, Fedotov, Horsthemke: Reaction-Transport Systems, Springer 2010.

Additional Literature