226 Gray Hall

michaelr at american {dot} edu

Office hours:

- Tuesdays: 4pm-5:30pm,
- Wednesdays: 10am-noon,
- Thursdays: 10am-noon, 1pm-2pm,
- Fridays: 4pm-5:30pm or
- by appointment (please contact me 24 hours in advance to make arrangements). Also, I'm usually around most days 10am-2pm. If the door is open, consider yourself invited!

Feel free to contact me with

Homework assignments

Course schedule

Concerning programming in this course

Information about exams

Course policies

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

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

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

- Outline two kinds of methods that can be used to solve systems of equations on a computer
- Discuss the performance of these methods in terms of discretization error
- Implement one of these algorithms in Python to solve equations that arise in a physical application

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

- Explain what interpolation means for sets of data
- Describe the difference between interpolation and curve fitting
- Compute interpolation polynomials for small sets of data (by hand) and larger ones (by implementing a computer program)

**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

- Discuss the benefits and costs of high-degree polynomials for interpolation in terms of functional variation
- Explain how the precise definition of interpolation methods leads to approximations of derivatives
- Discuss roundoff error and its implications for interpolation

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

- Discuss how interpolation methods can be used to derive approximations for definite integrals
- Define Euler's method for solving first order differential systems
- Explain how difference method solvers are constructed, and how they propagate errors

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 **

- Your presentation will be graded solely on whether you have done it or not.
- 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.
- 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.)
- 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.
- 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.

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.

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:

- 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.)
- 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.
- 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 http://theory.stanford.edu/~aiken/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.