Installation. First you will need to install Python 2.5 or later, if it is not available on your system. For Windows, binary installers for SciPy and NumPy are available at the SciPy download page. On a Mac, the recommended way to install SciPy is using fink. In addtion to SciPy, please install matplotlib.
More detailed installation instructions. If you have any trouble with installation, please contact the teaching assistant immediately!
Assignment 1, due Thursday, February 7. PDF If you typeset your assignment, you can send it to the instructor by email. If parts of it are handwritten, please submit the whole assignment on paper.
Assignment 2, due Thursday, February 28. PDF
Assignment 3, due Thursday, April 3. PDF
Assignment 4, due Thursday, May 1. PDF
January 22  Overview 
January 24  Introduction to Python. I recommend reading sections 35 and 9 of Python Tutorial by Guido van Rossum. A somewhat more concise introduction covering most of what we need is Steven Thurlow's "A Beginner's Python Tutorial" You can find links to a large number of tutorials and resources at www.python.org. 
January 29  IEEE 754 floating point arithmetics. A brief overview of the standard by Steve Hollasch. Minifloats are useful for understanding the details of f.p. operations. Lecture notes by. W. Kahan, the architect of IEEE 754. Python code for conversion of floats to binary strings. 
January 31  Types of errors: modeling, discretization, roundoff, convergence.
Absolute and relative error. Textbook, Chapter 1 and (optionally) Chapter 2. example 1.1 from Ch. 1 in Python. 
February 5  Linear equations and matrices, review. Textbook, chapter 4. 
February 7  Example: optimal curves. Optimization problem,
differential equation, discretization. Notes 
February 12  Example: optimal curves, implementation using scipy and matplotlib. Source files: direct_linear.py (matrix construction and solve), curve.py (GUI), myarray.py (array helper functions). 
February 14  Gaussian elimination, LU factorization, pivoting. Source file: lu.py (LU factorization with partial pivoting, back and forward substitution. 
February 19  LU factorization continued, conditioning, condition number,
solution errors. 
February 21  (Yotam Gingold) Surface editing example, matrix conditioning in one and two dimensional case, bandedness.
Code: lecture_feb_19.py; Surface optimization: direct_linear_2d.py, surface.py. 
February 26  Least squares, normal equations.
Code:
Textbook, Section 7.4.

February 28  Least squares continued, implict curve fitting.
QR factorization. Textbook, Section 7.4. Additional reading (password required) Code: least_squares.py 
March 4  QR factorization continued.
Polynomial and piecewise polynomial
interpolation, introduction.
Code: bezier.py, bspline.py,
spline_gui.py,
illustrator_gui.py

March 6 
Polynomial and piecewise polynomial
interpolation: Lagrange polynomials, Bezier curves, Bsplines.
Textbook: Sections 10.1 and 10.2, 11.111.4
Notes: Bezier curves and Bsplines
(you do no have to read the part about blossoming)

March 11 
Review.

March 13 
Midterm

March 18 
Spring break.

March 20 
Spring break.

March 25 
Solving nonlinear equations: bisection, onedimensional
Newton's method (Chapter 3).

March 27 
Massspring system in equilibrium: formulation.
derivation notes.

April 1 
Highdimensional Newton method.
Spring system in equilibrium: energy point of view. Chapter 9 (not on the web page above, new revision of text!), linked here. Code: springs.py, springs_gui.py 
April 3 
Ordinary differential equations: review of linear equations
and systems of linear equations: reduction of highorder to
first order, reduction of a system to the diagonal form.

April 8 
Euler's method for integration of ODEs, forward and backward Euler,
stability.
Chapter 17, sections 17.1 and 17.5, (not on the web page above, new revision of text!),
linked
here.

April 10 
Forward and backward Euler's method for a spring, osciallations.
Increasing the order of accuracy; midpoint method.
Chapter 17, sections 17.2, (not on the web page above, new revision of text!),
linked
here.

April 15 
Dynamic massspring system: forward and backward Euler.
springs_dynamic.py,
springs_dynamic_gui.py

April 18 
Leapfrog(Verlet) integration. Review of integration techniques for ODEs.
a brief explanation of the leapfrog method.

April 22 
Computing eigenvalues and eigenvectors. Power method. Inverse power method.
Sections 7.17.2. 
April 24 
Iterative methods for linear systems. Stationary iteration: Jacobi and
GaussSeidel. The idea of Krylov subspace methods.
Chapter 7 from new version of the book, linked here 
April 28 
Fourier series. Discerete Fourier Series, Fast Fourier transform.
Application to sound analysis.
Chapter 14, linked
here

April 30  Review. 