ECG790C - Computational
Methods in Economics and Finance Spring 2011
Nelson 2403 - MW 1:30 2:45
Prof. Paul L. Fackler
4344 Nelson, 515-4535
paul_fackler@ncsu.edu
Office Hours: by appointment via email
</span>Course web site: http://www4.ncsu.edu/~pfackler/ECG790C
Course
Description
Fundamental methods for formulating
and solving economic models will be developed. Emphasis will be on defining the
mathematical structure of problems and on practical computer methods for
obtaining model solutions. Major topics will include solution of systems of
equations, complementarity relationships and
optimization. Both finite and infinite dimensional problems will be addresses,
the latter through the use of finite dimensional approximation techniques.
Particular emphasis will be placed on solving dynamic optimization and
equilibrium problems. Applications will be drawn from finance, agricultural and
resource economics, macroeconomics and econometrics.
Prerequisites
Although there are not specific required courses, students registering for this course must have a reasonable background in mathematics, including college calculus, linear algebra and differential equations. In addition, some background in either computer programming or economic theory is necessary. Students who are not sure of their level of preparation for this course should consult the instructor.
Student Learning Outcomes
By the end of this course, students will
be able to:
.......identify and apply appropriate methods for solving
equations and optimization problems
.......compute numerical approximations to integrals and
derivatives
.......understand how to apply function approximation methods to solve
functional equations
.......model and solve basic financial derivatives models
.......model and solve discrete and continuous time dynamic
programming problems
.......design and document software to solve economic and/or
financial models
Required Textbook
Applied Computational Economics and Finance, Mario J. Miranda & Paul L. Fackler, MIT
Press, 2002.
Grading Policy
Grades will be based on a series
of homework sets (20%), 2 take-home and in-class exams that will count for 25%
of the grade each and a takehome and in-class final exam (30%). Grades will be
given on an A, B, C, D, F basis, to be interpreted as excellent, satisfactory,
unsatisfactory, unacceptable and failing. Homework and exams will be posted on
the course web site and you will have one week to complete them. Answers will
be posted one week later. Homework will be collected but not graded; you will
receive one point for satisfactory completion of a homework.
Homework & Exam Policies
You are encouraged to discuss homework problems with your classmates but should
develop your own answers. If you share computer code, you should understand and
be able to explain what the code does. I consider the homework to be an
essential part of the learning process; you cannot learn to formulate and solve
models without actively attempting to do so. If you wait until a quiz before
attempting to work problems you will be in for an unpleasant surprise.
READ CAREFULLY:
Take-home exams should not be discussed with any one
else (except me) and computer code for solving exam problems should not be
shared. Evidence of collaboration on quizzes will result in a grade of 0
for the exam, F for the course or even expulsion from the university (see
section below on academic integrity).
Multiple files should be sent as a single compressed (ZIP) file (not RAR
files please). If not already on your computer, utilities for zipping files
are available on the internet. Responses to quiz questions should include a
document with answers to homework questions and/or documentation of your code.
I prefer that this be typed and emailed along with any relevant code - MS Word
DOC, DVI or PDF formats are ok. If not typed, please strive to make your
answers legible and scan them to include with your zip file.
All computer code submitted should run without encountering error messages. If
you are having trouble debugging your code you should get help (from me) before
it is due. My answers will be posted to the web after the due date. Plan
accordingly; computer code generally takes at least twice as long to write as
you expect, even after you know what you want the code to do. If you wait until
the night before a homework is due, you will almost
certainly not complete it in time.
A document describing how homework and quizzes
should be prepared is available. An associated zip file
is also available. You should read this document carefully.
Important Dates
Feb. 14 first take-home posted
Feb. 21 first take home due at 1:00 PM
Feb. 21 first in-class exam
March 8 last day to drop without a grade
March 23 second take-home posted
March 30 second take home due at 1:00 PM
March 30 second in-class exam
April 29 Take-home final posted
May 6 Take-home final due at noon
May 6 In-class final exam (1-4 PM)
Academic Integrity
You should be aware of University policy on academic integrity: see Code
of Student Conduct.
The university has also adopted the following Honor Pledge:
I have neither given nor received
unauthorized aid on this test or assignment.
It is assumed that students understand and agree with this pledge when
submitting exams.
Students with
Disabilities
Reasonable accommodations will be made for students with verifiable
disabilities.
In order to take advantage of available accommodations, students must register
with
Disability Services for Students at
1900
For more information on NC State's policy on working with students with
disabilities, please see http://www.ncsu.edu/provost/hat/current/appendix/appen_k.html
Online Course Evaluation
Online class
evaluations will be available for students to complete during the last 2 weeks
of spring term:
12 p.m. April 14 through 8 a.m. May 6
Students will receive an email message directing them to a website where they
can login using their Unity ID and complete evaluations. All evaluations
are confidential; instructors will not know how any one student responded to
any question, and students will not know the ratings for any instructors.
Evaluation website: https://classeval.ncsu.edu/
Student help desk: classeval@ncsu.edu
More information about ClassEval:
http://www.ncsu.edu/UPA/classeval/
Computer programming
The basic computing language
used in the course is MATLAB, which provides a high-level interactive
programming and graphics environment. MATLAB is installed on machines in Economics
graduate student computing labs and on the UNITY system. Student versions of
MATLAB are also available for purchase. The booklet "Getting Started with
MATLAB" provides an introduction to the language. It is available in PDF
form on the MATLAB CD. You should work through this booklet and explore
MATLAB's demos as soon as possible. I have also written a MATLAB
Primer that can be downloaded. There is a ZIP file with the code files
discussed in the primer (Download
Primer Code Files). I will discuss the basics you will need in class. You
should also be aware that there are lots of resources for MATLAB user, the two
most important of which are the MathWorks
Web Site and the MATLAB discussion group (comp.soft-sys.matlab),
where people post questions and comments and hope for useful replies. The FAQ
(Frequently Asked Questions) page for the group is http://www.mit.edu/~pwb/cssm/. An
excellent reference is available at:
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matlab_prog.pdf
Also see: http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.html
CompEcon
Toolbox
You should install the CompEcon Toolbox as soon as possible (follow the
instructions in the README file) and make sure that the demonstration files run
correctly.
References
William F. Ames. Numerical Method for Partial Differential
Equations, 3rd ed.
K.E. Atkinson. An Introduction to
Numerical Analysis, 2nd ed.
A.T. Bharucha-Reid. Elements of the Theory of Markov Processes and Their
Applications.
Eric Briys, et al. Options, futures, and exotic derivatives :
theory, application and practice.
D.R. Cox and H.D. Miller. The Theory of Stochastic Processes.
J.E. Dennis, Jr. and R.B. Schnabel. Numerical Methods for Unconstrained Optimization and Nonlinear
Equations.
Avinash K. Dixit and Robert S. Pindyck. Investment Under
Uncertainty.
Darrell Duffie. Dynamic Asset Pricing Theory, 2nd ed.
R. Fletcher. Practical
Methods of Optimization, 2nd ed. P.E. Gill, W. Murray, and M.H. Wright. Practical Optimization.
Gene H. Golub, and James M. Ortega.
Scientific Computing and Differential Equations: An Introduction to Numerical
Methods.
G.H. Golub and C.F.
van Loan. Matrix Calculations, 2nd ed.
John C. Hull. Options,
Futures and Other Derivative Securities.
D. R. Jones,
C. D. Perttunen, and B. E. Stuckman.
Lipschitzian optimization without
the Lipschitz constant. Journal of Optimization Theory and Applications, 79(1):157-181,
October 1993.
Kenneth L. Judd. Numerical Methods in Economics.
M.I. Kamien and
N.L. Schwartz. Dynamic Optimization: The Calculus of
Variations and Optimal Control in Economics and Management, 2nd ed.
Samuel Karlin and
Howard M. Taylor. A Second Course in Stochastic Processes,
2nd ed.
William J. Kennedy and James E. Gentle. Statistical Computing.
David R. Kincaid and E. Ward Cheney.
Numerical Analysis: Mathematics of Scientific Computing.
Cleve Moler. Numerical Computing with MATLAB.
(http://www.mathworks.com/moler/chapters.html)
Salih N. Neftci. An Introduction to the Mathematics of
Financial Derivatives.
William H. Press, Saul A. Teukolsky,
William T. Vetterling and Brian P. Flannery. Numerical
Recipes, 2nd ed.
Domingo Tavella. Quantitative Methods in Derivatives Pricing: An Introduction to
Computational Finance.
Domingo Tavella and
Curt Randall. Pricing Financial
Instruments: The Finite Difference Method.
Paul Wilmott. Derivatives: The Theory and Practice of Financial Engineering.
Course Schedule (this is an approximation and may change
during the semester)
10-Jan |
Class 1 |
Introduction to Numerical
Computing |
C1, AB, Article |
|
12-Jan |
Class 2 |
Computer Arithmetic |
A2, Article |
|
17-Jan |
Holiday |
||
|
19-Jan |
Class 3 |
Linear Equations |
C2, Notes |
|
24-Jan |
Class 4 |
Non-Linear Equations |
C3.1-3.6 |
|
26-Jan |
Class 5 |
Sparse Systems of Equations and Complementarity
Problems |
S3.6-3.8 |
|
31-Jan |
Class 6 |
Unconstrained Optimization |
S4.1-4.4 |
|
2-Feb |
Class 7 |
Statistical Computing |
S4.5 & Notes |
|
7-Feb |
Class 8 |
Constrained Optimization |
S4.6 |
|
9-Feb |
Class 9 |
Global Optimization |
Jones, et al. & Notes |
|
14-Feb |
Class 10 |
Numerical Integration |
S5.1, 5.2, 5.5 |
|
16-Feb |
Class 11 |
Numerical Differentiation |
5.6 |
|
21-Feb |
Class 12 |
First In-Class
Exam |
|
|
23-Feb |
Class 13 |
Evolutionary Methods for
Differential Equations |
S5.7, ODESuite, Using
|
|
28-Feb |
Class 14 |
Function Approximation |
S6.1-6.7 |
|
2-Mar |
Class 15 |
Function Approximation (cont.) |
|
|
7-Mar |
Spring Break |
||
|
9-Mar |
Spring Break |
||
|
14-Mar |
Class 16 |
Functional Equations |
S6.8-6.9 |
|
16-Mar |
Class 17 |
PDEs |
|
|
21-Mar |
Class 18 |
Derivatives Pricing |
S10.1 |
|
23-Mar |
Class 19 |
PDE Methods for Derivative Pricing |
S11.1 |
|
28-Mar |
Class 20 |
PDE Methods for Derivative Pricing (cont.) |
|
|
30-Mar |
Class 21 |
Second In-class
Exam |
|
|
4-Apr |
Class 22 |
Dynamic Programming & Real Options Theory |
S8.1-8.4, 10.4 |
|
6-Apr |
Class 23 |
DP in Continuous Time - Discrete Controls |
S10.4, S11.4 & Article |
|
11-Apr |
Class 24 |
DP in Continuous Time - Discrete Controls (cont.) |
|
|
13-Apr |
Class 25 |
DP in Continuous Time (Infinite Controls) |
S10.5 & S11.5 |
|
18-Apr |
Class 26 |
DP in Continuous Time (Continuous Controls) |
S10.2-10.3, S11.2-11.3 |
|
20-Apr |
Class 27 |
DP in Discrete Time (Solution Techniques) |
S9.1-9.7 |
|
25-Apr |
Class 28 |
Rational Expectations Models |
S8.6, S9.9 & RESolve |
|
27-Apr |
Class 29 |
Wrap up and review |
|
|
|
|||
|
6-May |
Final Exam |
1-4PM (Friday) |
|