Syllabus for 8185: Computational Economics

This course will cover topics in computation economics.

  1. Preliminaries: This will cover material from Sargent and Ljungqvist chapter 2 - Properties of markov chains,stochastic difference equations, discrete state Markov approximations of AR(1) process. We will derive the Kalman Filter and study some applications.
  2. Linear Control Theory: The main reference is Anderson, Hansen, McGrattan, and Sargent (1996)
    • Overview of linear control theory: Study the optimal regulator problem.
    • Application of linear control techniques to compute rational expectation equilibria in linear DSGE models.
    • If there is time we discuss can applications of series expansion methods (Lombardo (2010), Borovicka and Hansen (2014) ) for higher order perturbation solutions approximations of DSGE models.
  1. Numerical recipes: The main references will be Judd's “Numerical Methods in Economics” and the book by Miranda and Fackler, “Applied Computational Economics and Finance”
    1. Overview of root finding algorithms, numerical optimization algorithms, numerical differentiation and integration methods,functional approximation using interpolation. 
    2. We will discuss application of these numerical methods to do value function iteration, policy function iteration, collocation methods using some standard examples: stochastic growth models, optimal taxation models etc
  1. Algorithms to solve incomplete market models with idiosyncratic risk: Endogenous grid method of Carroll(2005), Computing equilibria in Hugget (1993), Aiyagari (1994) economies without aggregate risk, adding aggregate risk - Krusell Smith (1998)
  2. Other stuff: Towards the end, I will talk about version control (using GIT), do a demo (using Python) to show how Amazon Clusters can be used to do parallel programming using MPI. 
  • Requirements for the class
    • Replicate Business Cycle Accounting (CKM) with a new data set
    • Replicate Aiyagari Marcet Sargent Seppala (AMSS) for a simple case with i.i.d expenditure shocks that take two values 
    • Solve the two versions of a the Aiyagari model with projection and perturbation methods
      • with elastic labor, no aggregate shocks
      • with elastic labor and aggregate shocks


 You can use any programming language that you prefer. For the final grade you will have to submit the "requirements". You can work in groups of 2-3.  If you are still deciding which language to use, one option is python- its free and easy to use and flexible enough to handle scaled up problems. A good place to get started is Tom Sargent and John Stachurski's  website: