Coronavirus (Covid-19): Latest updates and information
Skip to main content Skip to navigation

CO905 Stochastic models of complex systems

Online Course Materials (2013)


Lecturer: Stefan Grosskinsky

Lectures: Thu 10-11 and Fri 10-12 in D1.07

Classes: Thu 16-17 in D1.07

VIVAS on Firday 15.3. in D1.07, viva schedule, viva topics


  • NEWpreliminary complete version of the notes: notes_co905_13.pdf
  • Last year's course notes: notes_co905_12.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 on stochastic particle systems.

Changes/Related Events

  • 15.3. Vivas 9-4pm, see schedule above
  • On Thursday 14.3.: Revision lecture 10-11, no class in the afternoon
  • Class at 4pm on Thursday 21.2. is cancelled due to the miniproject fair in Complexity
  • First lecture on Thu 10.01.2013
  • Last lecture Thursday 14.3. at 10 (revision)
    Vivas are Friday 15.3.

Problem Sheets

  • NEW part in Q3.3.c)sheet3: Moran model, Kingman's coalescent, exclusion process
  • sheet2: Birth-death processes, contact process
  • sheet1: Generators/eigenvalues, branching processes, random walks


  • handout5: Connection between stochastic particle systems and PDEs (done for TASEP and Burgers equation)
  • handout4: Proof of Thm 3.6 (non-examinable)
  • handout3: Characteristic function, Gaussians, LLN, CLT
  • handout2: Poisson process, random sequential update, exponentials
  • handout1: Generating functions, branching processes

Matlab and C stuff

  • NEWBasic C code traffic.c and Matlab file traffic.m for the TASEP (Q3.3), to be adapted.
    This compiles 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, or copy the Mersenne Twister from the code for the contact process.
  • Basic C code traffic_q23.c for Q3.3.c) Visualize output e.g. with Matlab using imagesc. Note that this code uses OPEN boundary conditions.

  • Simple C program for the contact process using the Mersenne Twister:
    You should have all files in the same directory. If initializing with system time does not work use your own favourite integer.
  • You can find a list with CSC machines here, where you can run QUICK programmes ONLY, without submitting to the COW.
    to compile on command line: gcc -lm -O9 contact_mt.c
  • Wikibooks on Matlab and C_Programming
  • Some links to Mersenne Twister:

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