MATH G6071: Numerical Methods in Finance
Spring, 1999
Mondays and Wednesdays, 6:10pm7:25pm, 417 Mathematics
Dave Bayer (x42643, 426 Mathematics)
Department page 
Bulletin page
http://www.math.columbia.edu/~bayer/S99/finance.html
Take Home Final: The following take home final is posted in Acrobat .pdf format. Your browser
can be trained to automatically open it with Acrobat Reader, a free program which you can
download from http://www.adobe.com/acrobat/.
This take home final is due by the end of the scheduled
Final Examination, Monday, May 10, 7:10pm10:00pm (Master
University Examination Schedule), in our regular
classroom. You are free to work the exam there, but I've
never seen anyone choose this option. You may also hand it in in advance, rather than making an
appearance at the scheduled final.
Office Hours: My office hours are Mondays and Wednesdays,
4:00pm5:00pm and 7:30pm8:00pm. I will often be around at other
times in the afternoon; stop by, or check by email or phone.
Mathematica Notebooks used in class
 heatequ.nb studies numerical methods
for solving the heat equation (Feb 15, annotated).
 heat1.nb studies instability of the explicit
algorithm for the heat equation (Feb 17).
Prerequisites: Basic principles of numerical analysis, the ability
to write computer programs in some programming language, and the ability to read computer programs
written in C.
Familiarity with the basic principles
of partial differential equations, probability and stochastic
processes at the level of Stat W6501 (Stochastic Processes) and of
finance at the level of Math G4071 (Introduction to the Mathematics of
Finance).
Recommended corequisite: Stat W6505 (Stochastic Methods in
Finance).
Syllabus:
This course will strike a balance between a general survey of significant
numerical methods any practitioner should know, and a detailed study of certain
numerical methods specific to finance. The general material will include numerical methods for random
number generation, interpolation, linear algebra,
statistics, integral and differential equations, and linear and integer programming. The financial
material will include the numerical valuation of a variety of option types, via
stochastic differential equations and free boundary problems.
Course requirements:
 Programming assignments
in any appropriate programming language. Please submit physical printouts. Please do not
submit assignments by email.
The course will be taught using the C programming language, and all coding examples posted here
will be written in C.
 Final Examination, Monday, May 10, 7:10pm10:00pm.
Master University Examination Schedule
Our final will test for an understanding of numerical methods that is
most easily obtained by completing the programming assignments. I will
be flexible in weighting the final, to accommodate students for which
the programming requirement is a particular challenge. All students
are urged, nevertheless, to learn to write simple programs, and to
learn the course material as well as if they had completed all
programming assignments.
Required Texts:

Option Pricing: Mathematical Models and Computation,
Paul Wilmott, Jeff Dewynne, and Sam Howison,
Oxford Financial Press, 1993,
ISBN 0 952208202.
This text is available at the Columbia University Bookstore.
It can also be ordered directly from the publisher
(phone/fax +44 1249 659697) for £85 ($140),
including delivery by first class/air mail.
Publisher order forms: zipped Word document,
pdf format.
(Amazon.com)

William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery,
Numerical Recipes in C : The Art of Scientific Computing (2nd Edition),
Cambridge University Press,
1993,
ISBN 0521431085.
(Amazon.com)
This book is justly famous. Reading its contents is no substitute for having spent one's career
researching numerical methods, as many a researcher (whose buttons
were undoubtedly pushed by this book) has observed to me. However, one
should begin the study of any covered numerical method by reading
every word on the subject in this concise yet vast tome. The code
itself is invaluable for practical use; it is designed with a balance between efficiency,
concision, and clarity in mind, in contrast to commercial libraries intended to be used
as black boxes.
This book and the accompanying C code is also available online as
Numerical Recipes in C, via the
Numerical Recipes Home Page.
One can download all of the C code for a reasonable fee, or cutandpaste C fragments as
needed from the online book (until you're hooked and you want to buy the
book and the code outright).
Other texts of interest:
 William T. Shaw,
Modelling Financial Derivatives with Mathematica,
Cambridge University Press,
ISBN 052159233X.
(Amazon.com)
This is an outstanding book, that will undoubtedly replace Option Pricing as
a required text for this course next year.
 Peter E. Kloeden, Eckhard Platen,
Numerical Solution of Stochastic Differential Equations
(Applications of Mathematics, Vol 23),
SpringerVerlag,
Corr. 2nd printing 1995, ISBN 0387540628.
(Amazon.com)
Note that parts of this text study
stochastic techniques relevant to engineering problems, but irrelevant
to finance; they violate the "place your bet, then see if
you're going to win" paradigm of finance.

Darrell Duffie,
Security Markets : Stochastic Models
(Economic Theory, Econometrics, and Mathematical Economics),
Academic Press,
1988,
ISBN 012223345X.
(Amazon.com)
All advanced treatments of stochastic integration require an
understanding of "the usual assumptions" involving measure theory and
probability spaces. The mathematical sections of this book constitute
the most concise, inspired review of this material that I know of,
with financial interpretations fleshing out what could otherwise be
painfully dry going. Highly recommended for anyone trying to
jumpstart a deeper understanding of stochastic methods in financial
mathematics, in preparation for reading various advanced texts.

Donald Knuth,
The Art of Computer Programming : Seminumerical Algorithms (Vol 2, 3rd Ed),
AddisonWesley,
1997,
ISBN 0201896842.
(Amazon.com)
This series of books is legendary, and essential on a computer science
bookshelf. The first three volumes contain more
mathematics and algorithms relevant to computer science than most
practitioners ever learn. Knuth should be best known as the brilliant author of
this series, but he is perhaps actually best known as the author of the
TeX typesetting language for mathematics and science, in which
nearly all modern texts are composed. In an inspired example of
mathematical recursion, he stopped writing this series to develop
TeX, and then stopped developing TeX to develop the
Metafont language for describing the fonts used by TeX.
Anyhow, he managed to pop stack, and a fourth volume of this series is due soon.
The first portion of Volume 2, Seminumerical Algorithms, is a
definitive treatment of random number generators. The statistics
material alone (chisquare tests, etc.) is refreshingly approachable, and sure
beats trying to extract this material in a nutshell from most statistics texts.

Brian W. Kernighan, Dennis M. Ritchie,
The C Programming Language : ANSI C Version,
Prentice Hall,
1988,
ISBN 0131103628.
(Amazon.com)
This is the current revision of the original book on C, written by the
original authors of the C programming language. I learned to program
in C by reading this book, as have countless others. It reads with the
crisp elegance of great literature. In contrast, the C programming
book selection in most bookstores is an immense yet pitiful array of
garishly colored books by authors wellknown to be paid by the page,
all promising to hold your hand in the least painful fashion. It is
often remarked that great mathematicians read original sources.
Certainly, the great programmers that I have met taught themselves by
reading original sources. This text is heartily recommended as the
first book to read for anyone learning C.

Samuel P. Harbison, Guy L. Steele,
C : A Reference Manual,
Prentice Hall,
1994,
ISBN 0133262243.
(Amazon.com)
This is the single definitive book that working C programmers keep handy, unless they are
using online help. It is useful for reviewing forgotten constructs, and for looking up how
to use C library functions. It plays the role of a dictionary if one is learning C by studying actual
programs. It can be read covertocover, but that would take a certain mindset. I traditionally
color the edges of the page on C operator precedence in each new edition (p.181 in this edition),
in remembrance of the days when I was constantly turning to this page.