Syllabus for E550: Monetary Theory and Organization
1
Basic Information
Instructor: Grey Gordon,[email protected] Class: Tuesdays and Thursdays 1-2:15pm, Wylie 329
Office Hours: Tuesdays 2:15-3:15pm and by appointment, Wylie 207. You can also just drop by and see if I am there (Tuesdays, Thursdays, and Fridays are best).
2
Course Summary and Objectives
E550 is going to be very different this year relative to previous years. In particular, there will be very little if any monetary aspects of macroeconomics discussed, and it will be much closer to the Computational Macroeconomics course of prior years (E724). E550 and E551 will be complementary. To get a feel for what will be covered, https:
//sites.google.com/site/greygordon/teaching/ has the old assignments from last year posted.
Topics covered are expected to include optimization of both smooth and non-smooth functions, nonlinear equations, approximation methods (including splines and interpola-tion methods), projecinterpola-tion methods, numerical integrainterpola-tion and differentiainterpola-tion, lineariza-tion, higher order perturbations, and techniques for handling high dimensional problems. This class presents an excellent opportunity early in your career to learn a program-ming language, preferably a serious computational language like Fortran, well. I will discuss programming and spend roughly the first three weeks teaching programming in Fortran. The homeworks will provide opportunity for learning-by-doing.
If you complete all the assignments in the class well, you will be have all the tools necessary to be a top researcher in the field and your entire career will benefit as a result.
3
Prerequisites
The biggest prerequisite is a desire to learn by working hard. There is no final in the class, but the assignments require a large amount of time to complete (often in the range of 40-60 hours). Last year there were three assignments and you can expect a roughly equivalent amount of work this year. However, I hope this year by teaching Fortran to reduce the time needed for the homeworks.
Since I am teaching Fortran, the first assignment will be required to be done in Fortran. I have not yet decided whether other languages can be used for later assignments (and may be on a language-by-language basis with C or C++ allowed and Matlab forbidden). This is for your benefit! As you will see, even naive Fortran code can be ten times faster than Matlab code so there can be a huge gain from working with a serious language.
4
Course Materials
You will need access to a computer (of course) with the language of your choice. There are free versions of Fortran (gfortran, g95), C/C++ (gcc), and a Matlab clone (Octave). Matlab has a student version that costs about $100.
The paid Intel Fortran (ifort) is better than the free Fortran software. However, if you start using the Intel version, it will be hard to go back. It may be better to begin with gfortran or g95. If you are using Linux, the Intel compiler (for Fortran or C/C++) is free for non-commercial software development.
5
Grading Policy
Your grades will be determined on the basis of approximately three homework assign-ments. You can expect each assignment to take a large amount of time (40-60 hours is common).
6
Academic Misconduct
Academic Integrity: As a student at IU, you are expected to adhere to the standards and policies detailed in the Code of Student Rights, Responsibilities, and Conduct (Code). When you submit your assignments, you are signifying that the work contained therein is all yours, unless otherwise cited or referenced. Any ideas or materials taken from another source must be fully acknowledged. If you are unsure about the expectations for com-pleting an assignment (or taking a test or exam), be sure to seek clarification beforehand. All suspected violations of the Code will be handled according to University policies. Sanctions for academic misconduct may include a failing grade on the assignment, reduc-tion in your final grade, a failing grade in the course, among other possibilities, andmust
include a report to the Dean of Students.
if you modify the code without acknowledging the original source, that is plagiarism.
7
Course Outline
1. Copyrights and Wrongs
(a) Proper use of others code
(b) Protecting and/or sharing your own code
2. Programming in Fortran
3. Techniques for solving the Bellman Equation: Vt(s) = maxu(c) +βEVt+1(s0).
(a) Discretization
i. Converting an AR(1) process to a Markov chain
ii. Discretizing the choice space
iii. Brute force grid search
iv. Acceleration methods
A. Exploiting monotonicity (when applicable)
B. Exploiting concavity (when applicable)
• Basic algorithm
• Advanced algorithm: binary search
C. Comparison of brute force, monotonicity, and concavity
D. Policy function iteration
E. Cash at hand formulations
F. Multigrid
v. Endogenous grid method (Carroll 2006)
(b) Assessing the quality of the approximation
ii. Den Haan-Marcet Statistic
iii. Informal Methods
(c) Approximation methods (representing Vt+1 continuously)
i. Linear interpolation in one dimension
ii. Cubic splines in one dimension
iii. Linear interpolation in n dimensions
iv. Cubic splines inn dimensions
(d) Optimization methods (finding the max)
i. One dimensional problems
A. Newton’s method
B. Bracketing method and Golden Section Search
ii. Multi-dimensional problems
A. Simplex/Nelder-Mead/Amoeba/Polytope method
B. Newton’s method
C. Line Search methods
D. Quasi-Newton methods
iii. Techniques for smooth vs non-smooth objectives
iv. Constrained and unconstrained problems
(e) Numerical differentiation
i. First/partial derivatives
ii. Second derivatives
iii. Cross derivatives
4. Techniques for solving general nonlinear equations/fixed points: f(x) = 0, g(x) = x
for finite-dimensional problems,x∈Rn
(b) Converting to a minimization problem
(c) Special methods for one-dimensional problems
i. Bisection
ii. Brent
iii. Newton and Secant
(d) n-dimensional problems
i. Gauss-Seidel and Gauss-Jacobi
ii. Newton and Secant
iii. Hybrid methods
(e) Homotopy methods
(f) Fixed point iteration and relaxation
5. Numerical integration methods (computing EVt+1)
(a) Quadrature rules
i. One dimensional integrands
A. Newton-Coates formulas: Midpoint, Trapezoid, Simpson
B. Change of variables
C. Gaussian formulas: Chebyshev, Legendre, Hermite, Laguerre
D. Adaptive quadrature
ii. Multi-dimensional integrands
A. Product rules
B. Monomial rules
C. Sparse grid/Smolyak quadrature
(b) Monte Carlo integration
(d) Parameterized Expectations
6. Techniques for solving general nonlinear equations/fixed points: f(x) = 0, g(x) = x
for “infinite dimensional” problems: x is a function.
(a) Projection methods
i. Global approximations
A. Orthogonal polynomials
B. Tensor product
C. Complete polynomials
D. Smolyak collocation method
ii. Local approximations
A. Finite element analysis
B. Linearization as local approximation
(b) Linearization and Higher-order Perturbation
i. Mathematic foundation
ii. Linearization around a steady state
iii. Higher order perturbations