MATH 465/665 (Fall 2016)

Instructor's contact information

Michael Robinson
226 Gray Hall
michaelr at american {dot} edu
Office hours:
My research website
Feel free to contact me with any and all questions (course-related or not)

Quick Links

Course description
Homework assignments
Course schedule
Concerning programming in this course
Information about exams
Course policies

Course description

This course covers basic numerical analysis, including solving nonlinear equations, interpolation, numerical differentiation, and integration. It is a project-based class, in which students will be introduced to the topics by way of theoretical and programming practical exercises. Minimal programming experience is necessary, though familiarity with the concepts of computer programming is required.

Prerequisite(s): ability to program a computer (see below), or permission of instructor.

The course textbook is optional, but I'll be using
Burden and Faires, Numerical Analysis, any edition.

In this course, students will

  1. Examine the kinds of effects that arise from the discretization of functions and operators on them,
  2. Reveal the centrality of interpolation by deriving several kinds of approximations to derivatives, integrals, and solutions to equations,
  3. Calculate precise bounds on the error performance of these approximations, and
  4. Gain practical experience in the implementation of these approximations.


Homework assignments consist of two parts: problems from the book and programming projects. A majority of each exam will be taken from these assignments (with slight modifications). You're therefore encouraged to ask me about them!

The programming projects will consist of some preliminary and background theory questions along with a set of guided programming exercises. Instructions for all assignments will be elecronic via the course BlackBoard page! Check there often for updates. Submission of projects will be electronic via BlackBoard also!

Homework 1 due September 16: Sections 1.2-1.4, 2.1-2.2; Instructions on BlackBoard
Homework 2 due September 30: Sections 2.3-2.4, 3.1, Taylor's theorem; Instructions on BlackBoard
Homework 3 due October 11: Sections 3.2-3.3; Instructions on BlackBoard
Homework 4 due October 28: Sections 4.1-4.3; Instructions on BlackBoard
Homework 5 due November 8: Sections 4.4-4.5; Instructions on BlackBoard
Homework 6 due November 22: Sections 5.1-5.3; Instructions on BlackBoard
Homework 7 due December 9: Sections 5.4, 5.9-5.11; Instructions on BlackBoard

Project 1: Ray tracing, due September 23
Project 2: Image alignment, due October 18
Project 3: GPS tracks, due November 11
Project 4: The Lorenz attractor, due December 9

Course schedule

Unit 1: Solving equations numerically

After this unit, you should be able to
  1. Outline two kinds of methods that can be used to solve systems of equations on a computer
  2. Discuss the performance of these methods in terms of discretization error
  3. Implement one of these algorithms in Python to solve equations that arise in a physical application
Project 1: Ray tracing, due September 23

August 30: Section 1.2: Floating point representation and roundoff
September 2: Project 1 discussion
September 6: Section 1.3-1.4: Vectors, matrices, and Python
September 9: Section 2.1-2.2: The bisection method and fixed point methods
September 13: Section 2.3: Newton's method
September 16: Section 2.4: Error analysis

Unit 2: Interpolating and extrapolating

After this unit, you should be able to
  1. Explain what interpolation means for sets of data
  2. Describe the difference between interpolation and curve fitting
  3. Compute interpolation polynomials for small sets of data (by hand) and larger ones (by implementing a computer program)
Project 2: Image alignment, due October 18

Note: No office hours September 19, 20, 21
September 20: Project 2 discussion
September 23: Taylor's theorem
September 27: Section 3.1: Lagrange polynomials
September 30: Section 3.1: Lagrange polynomials
October 4: Sections 3.2: Divided differences
October 7: Section 3.3: Hermite polynomials

Unit 3: Numerical differentiation and integration

After this unit, you should be able to
  1. Discuss the benefits and costs of high-degree polynomials for interpolation in terms of functional variation
  2. Explain how the precise definition of interpolation methods leads to approximations of derivatives
  3. Discuss roundoff error and its implications for interpolation
Project 3: GPS tracks, due November 11

October 11: Project 3 discussion
Note: No office hours October 13
October 18: Section 4.1 : Numerical differentiation
October 21: Section 4.2 : Richardson's extrapolation
October 25: Section 4.3 : Elementary numerical integration
October 28: Section 4.4 : Composite numerical integration
November 1: Section 4.5 : Romberg integration
November 4: Review for the midterm
November 8: Midterm Exam

Unit 4: Solving differential equations

After this unit, you should be able to
  1. Discuss how interpolation methods can be used to derive approximations for definite integrals
  2. Define Euler's method for solving first order differential systems
  3. Explain how difference method solvers are constructed, and how they propagate errors
Project 4: The Lorenz attractor, due December 9

November 11: Project 4 discussion
November 15: Sections 5.1-5.2 : Euler's method
November 18: Section 5.3 : Higher-order Taylor methods
November 22: Section 5.4 : Runge-Kutta methods
November 29: Section 5.9 : Systems of differential equations
December 2: Section 5.10 : Stability
December 6: Section 5.11 : Stiffness
December 9: Review for final exam

Final exam: December 13, 5:30-8:00pm

General comments on software and programming in the course

Generally speaking, knowledge of the general techniques of programming is expected, but I don't expect you to know the specifics of any particular language at the beginning of the course. There will be extensive programming required on the projects using Python 2.7 and the numeric Python library. You will be expected to learn Python as the course progresses. Work on the projects well in advance of the due dates to give yourself ample time to learn!

Course policies


For each exam, you will be permitted to bring one 3"x5" index card with handwritten notes on it. Electronic calculators will not be permitted. However, mechanical calculators (see are fine. Don't worry; I won't ask you about syntax on the exams! (You will be asked to provide precise algorithm descriptions in English, though.)


You are generally expected to attend the lectures. Please contact me in advance if you cannot attend, especially in the case of an exam. Late projects are not accepted, since they will be automatically collected through BlackBoard.

The difference between MATH 465 and MATH 665

Giving cogent technical talks is an important skill for all scholars. The sooner and more often you present and defend technical ideas in front of an audience, the better. As part of your training, if you're taking MATH 665 (the graduate version of the class), you must give one of the class lectures. If you're taking MATH 465 instead, you have the option to present one of the lectures but are not required. Here are the parameters for your presentation:
  1. Your presentation will be graded solely on whether you have done it or not.
  2. You must work with me to select which lecture you'll give (see the schedule above), since I have several lectures that I would like to give myself.
  3. You may present the material from your own notes or the book. It's your choice. (A word of advice: the proofs and derivations are important, but enlightening examples are much more important! Spend time gathering or creating examples. Fully understand them in advance.)
  4. Since the class is highly interactive -- even energetic -- you'll have to be ready defend whatever you present. I'll help you if you get stuck -- so you should not feel apprehensive -- but expect to get questions from the audience.
  5. You should expect to present for about 20 minutes; I will stop you if you run past 30 minutes. After you've introduced the material, I'll follow up with my own examples and additional detail.


The course grade will be determined as follows:
25% Projects
25% Homework assignments
25% Midterm Exam
25% Final exam

No late homeworks nor late projects will not be accepted, unless there is an official (University-approved) reason for doing so.

Academic dishonesty

Academic dishonesty is a serious offense. Read our University policies. You may work together on homeworks and projects, but the work you submit must be your own.

There is to be no collaboration with other people using any means during an exam. Doing so risks starting academic dishonesty proceedings. However, you may ask me questions during an exam, which I may answer at my discretion.

You may collaborate with other students in this class on homeworks and projects, but the work you submit must be your own. You may not collaborate with others outside of the class on homeworks or projects without my express permission.

At a minimum, honesty consists of presenting your ideas clearly and in your own words, possibly orally. On the other hand, the creation and writing of software, proofs, examples, or counterexamples is a creative process. Here are a few typical cases that are relevant for homework:

  1. If you happen to create an example, counterexample, or proof for your work on your own, you need not notate it as such. (It is expected that you will rediscover standard examples, and these will not cause any concern.)
  2. If a colleague shows you an example, counterexample, or proof that you like, please credit that person by name in your write-up. You should expect that I may challenge you to explain your writing in your own words, possibly orally.
  3. If you write an example, counterexample, or proof as part of a group, please credit all members of your group by name in your write-up. You should expect that I may challenge you to explain your writing in your own words, possibly orally.

The mathematics community has a unique perspective on academic honesty and priority. The mathematics community has strict social guidelines for assigning credit, which I expect you'll adhere to. Due to the canonicity of certain mathematical results and constructions, sometimes well-intentioned people end up in priority disputes when they independently discover something. If you have any questions on this matter, you are expected to consult me directly for advice.

In so far as computer programs are concerned, you may not simply copy another student's program and put your name on it! I may use various technical countermeasures (for instance, MOSS to detect instances of copied computer software. I am obligated to investigate suspected violations of academic integrity, and may ask you to explain or clarify sections of your program if I am unable to follow it.