We use cookies to ensure that we give you the best experience on our website. You can change your cookie settings at any time. Otherwise, we'll assume you're OK to continue.

Durham University

Department of Mathematical Sciences

MATH2667 Monte Carlo Simulation II

Monte Carlo is the popular name for stochastic simulation: simulating the behaviour of random systems using randomly generated numbers. The name refers to a famous casino and it arose because of the need for a code name to refer to the method as part of the secret development of the atomic bomb at Los Alamos during the second world war.

The theory of probability tells us in principle how to calculate the behaviour of random systems or the consequences of uncertainty. However, in practice, it is often easier to approximate such calculations by Monte Carlo. Monte Carlo is a core tool for exploring the random behaviour of a wide variety of systems in science, social science and business. It can also be used to explore the consequences of uncertainty about parameters in otherwise deterministic models. Applications include ecological modelling, risk assessment, supermarket and other queueing systems, traffic networks, and many problems arising in finance.

The course will begin with basic principles, including the paradoxical concept of pseudo-random number generation. It will then develop methods for generating random numbers from distributions, consider how to build stochastic models of more complex systems from simple pieces and will finish with a selection of more advanced topics. The theory will be illustrated throughout with case studies from a diverse range of applications.

Monte Carlo is fundamentally about computation. In the lectures, programs written in Python will be used to show how the theory may be translated to practice. Alongside the usual lectures and tutorials, there will be a practical class each week in which you will explore further the computational aspects.

The module will be assessed formally by a combination of a 90 minute standard examination in May/June (75%) and a 2 hour computer-based practical examination in the first week of Easter term (25%). There will also be the usual problems set for you to work on to develop your understanding.

Outline of Course

Aim: To develop an understanding of the Monte Carlo method (stochastic simulation) and how it can be applied to modelling of random phenomena and to model uncertainty.

  • Foundations: Approximating expectations of random variables by Monte Carlo. Accuracy of approximation. Sources of randomness. Principles and requirements for pseudo-random number generation.
  • Generating random variables: Inverse transform and rejection methods for continuous random variables. Special methods for some standard distributions. Efficient schemes for discrete random variables.
  • Stochastic modelling: Markov chains. Discrete event simulation. Network models.
  • Advanced topics, to be chosen from: Adaptive rejection sampling. Gibbs sampling. Metropolis methods. Variance reduction. Non-homogeneous Poisson processes.
  • Case studies: The theory will be illustrated using case studies which might include queueing systems, inventory models, exercising a stock option, portfolio valuation, traffic flow, risk assessment.


For details of prerequisites, corequisites, excluded combinations, teaching methods, and assessment details, please see the Faculty Handbook.

Reading List

Please see the Library Catalogue for the MATH2667 reading list.

Examination Information

For information about use of calculators and dictionaries in exams please see the Examination Information page in the Degree Programme Handbook.