Credits: 4 (3 lectures and 1 tutorial weekly)
Prerequisites:
Overview: This is a joint offering with Department of Economics. The objective of the course is to introduce graduate students to computational approaches for solving mathematical problems and economic models. The first half of the course will be devoted in learning (i) the core of the Python programming language, including the main scientific libraries, (ii) a number of mathematical topics central to economic modeling, such as finite and continuous Markov chains, filtering and state space models, Fourier transforms and spectral analysis and (iii) related numerical analysis methods like function approximation, numerical optimization, simulation based techniques and Monte Carlo, recursion. The second half of the course will be devoted in applying these techniques to solve economic problems like growth models, optimal savings problem, and optimal taxation problems. We will pay particular attention to methods for solving dynamic optimization problems.
Detailed Syllabus:
(a) Programming .Basics of Python: Input and output statements, formatting output, copy and assignment, arithmetic operations, string operations, lists and tuples, control statements, user defined functions, call by reference, variable number of arguments, one dimensional arrays, two dimensional arrays, random number generation. The NUMPY and SCIPY packages: Numpy numerical types, data type objects, character codes, dtype constructors. Mathematical libraries, plotting 2D and 3D functions, ODE integrators, charts and histograms, image processing functions, solving models involving difference equations, differential equations, finding limit at a point, approximation using Taylor series, interpolation, definite integrals.
(b) Numerical analysis. Solution of equations in one variable and two variables - Bisection, Newton-Raphson, General iterative scheme, Solution of systems of linear equations – Gauss-Jordan, LU decomposition, QR factorization, Lagrange and Hermite interpolation, Orthogonal polynomials, Gaussian quadrature.
(c) Deterministic dynamic programming. Understanding the fundamentals of dynamic programming and applying to solve the models for equipment replacement, Shortest path, and resource allocation.
(d) Growth Models. As an application we will study the neoclassical growth model.
(e) Other Applications. Other applications that we may study include the optimal savings problem, heterogeneous agents problem, etc.
References:
[1] John Stachurski and Thomas J. Sargent, Quantitative Economics, http://quant-econ.net.
[2] John Stachurski, Economic Dynamics: Theory and Computation, MIT Press, 2009.
[3] M. Miranda and P. Fackler, Applied Computational Economics and Finance, MIT Press, 2002.
[4] K. Judd, Numerical Methods in Economics, MIT Press.
[5] N. L. Stokey and R. E. Lucas with E. C. Prescott, Recursive Methods in Economic Dynamics, Harvard University Press, 1989.
[6] J. Adda and R. Cooper, Dynamic Economics: Quantitative Methods and Applications, MIT Press, 2003.
[7] S. E. Dreyfus, and A. M. Law, The Art and Theory of Dynamic Programming, Academic Press, 1977.
[8] John Zelle, Python Programming: An Introduction to Computer Science, Franklin, Beedle & Associates Inc., 2010.
[9] Ivan Idris, Numpy 1.5 Beginner’s Guide, Packt Publishing, 2011.
[10] Hans Petter Langtangen, A Primer on Scientific Programming on Python, Springer, 2011.
[11] E. Sulli, and D. Mayers, Introduction to Numerical Analysis, Cambridge University Press, 2003.