ECG790C - Computational Methods in Economics and Finance –Spring 2011
Nelson 2403 - MW 1
:30 – 2:45
Prof. Paul L. Fackler
4344 Nelson, 515-4535
Office Hours: by appointment via email

</span>Course web site:

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.


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 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 take–home 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 Student Health Center, Campus Box 7509, 515-7653.
For more information on NC State's policy on working with students with disabilities, please see


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:
Student help desk:
More information about 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 An excellent reference is available at:

Also see:

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.


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. (

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)
Readings refer to chapters (C), sections (S) and appendices (A) of the main text


Class 1

Introduction to Numerical Computing

C1, AB, Article


Class 2

Computer Arithmetic

A2, Article




Class 3

Linear Equations

C2, Notes


Class 4

Non-Linear Equations



Class 5

Sparse Systems of Equations and Complementarity Problems



Class 6

Unconstrained Optimization



Class 7

Statistical Computing

S4.5 & Notes


Class 8

Constrained Optimization



Class 9

Global Optimization

Jones, et al. & Notes


Class 10

Numerical Integration

S5.1, 5.2, 5.5


Class 11

Numerical Differentiation



Class 12

First In-Class Exam


Class 13

Evolutionary Methods for  Differential Equations

S5.7, ODESuite, Using Matlab, Ch. 14


Class 14

Function Approximation



Class 15

Function Approximation (cont.)


Spring Break


Spring Break


Class 16

Functional Equations



Class 17




Class 18

Derivatives Pricing



Class 19

PDE Methods for Derivative Pricing



Class 20

PDE Methods for Derivative Pricing (cont.)


Class 21

Second In-class Exam



Class 22

Dynamic Programming & Real Options Theory

S8.1-8.4, 10.4


Class 23

DP in Continuous Time - Discrete Controls

S10.4, S11.4 & Article


Class 24

DP in Continuous Time - Discrete Controls (cont.)


Class 25

DP in Continuous Time (Infinite Controls)

S10.5 & S11.5


Class 26

DP in Continuous Time (Continuous Controls)

S10.2-10.3, S11.2-11.3


Class 27

DP in Discrete Time (Solution Techniques)



Class 28

Rational Expectations Models

S8.6, S9.9 & RESolve


Class 29

Wrap up and review



Final Exam

1-4PM (Friday)