Monte Carlo Methods

Topics in Numerical Analysis

Department of Mathematics
Courant Institute of Mathematical Sciences
New York University

MATH-UA.394.001, Spring, 2017
Monday, 5:10 to 7
Room 317, Warren Weaver Hall

Instructor
Jonathan Goodman
goodman@cims.nyu.edu
212-998-3326
Office 529 Warren Weaver Hall
Office hours: 4 to 6 pm Thursdays, or by appointment

Course description

First half: An introduction to practical Monte Carlo methods, with some of the basic theory, with applications to statistical physics and chemistry, and to Bayesian statistics. Pseudo random number generators. Direct sampling methods, including mappings and rejection. Markov chain Monte Carlo (MCMC), Metropolis Hastings, detailed balance, partial resampling/heat bath. Basic MCMC theory, including Perron Frobenius and the ergodic theorem, the Markov chain central limit theorem, and the Kubo formula for auto-correlation time. Methods for estimating the auto-correlation time and estimating error bars for MCMC results.

Second half: More specialized topics depending on the interests and background of students in the class. Topics may include (a) advanced samplers: Hamiltonian samplers, affine invariant ensemble samplers, multi-level methods, adaptive samplers, (b) thermodynamic integration, (c) Bayesian model selection, (d) rare event simulation, (e) stochastic differential equations, (f) more theory: spectral gap, Poincare and Cheeger inequalities.

Assignments will include significant programming in Python as well as theoretical exercises. Assignments will emphasize elements of programming methodology relevant to Monte Carlo methods, including verification protocols and visualization methods. There will be a long term project done individually or in small groups.

Prerequisites

Students must have a good upper level undergraduate math background including linear algebra, probability, and multi-variate calculus. Course work in numerical computation is desirable. Students should be able to do numerical programming in Python, C/C++, Java, Fortran, R, or Matlab. Students without experience in Python will have to put in some extra effort in the first few weeks.