**Instructor:**

Rahul Narain

narain@cse.iitd.ac.in

**Class times:**

Slot J (Mon, Thu 5–6:30pm)

Bharti IIA-201

**Office hours:**

Mon, Thu 12–1pm (tentative)

Bharti IIA-517

**Content (tentative):** Conditioning and stability, floating-point arithmetic. *Numerical linear algebra*: Vector and matrix norms, singular value decomposition, QR factorization, LU and Cholesky factorizations, conjugate gradient method, eigenvalue algorithms. *Beyond linear algebra:* root finding, interpolation, numerical integration and differentiation, unconstrained and constrained optimization.

**Relevant textbooks:**

- Heath,
*Scientific Computing: An Introductory Survey* - Trefethen and Bau,
*Numerical Linear Algebra* - Boyd and Vandenberghe,
*Convex Optimization*(tentative)

**Prerequisites:** Introductory courses in linear algebra, calculus, and programming.

- Homework assignments: 25% (5 × 5%)
- Homework 1 (updated 12 Jan): due Thursday, 17 Jan

- Minor I: 20%
- Minor II: 20%
- Major: 35%

Students are expected to use Python 3 with Numpy and Scipy for the programming component of the homework. If you are not familiar with these, please go through one of the following tutorials:

- Getting started with Python for science from the Scipy Lecture Notes
- Python Numpy Tutorial from the Stanford CS231n notes

**Late policy:** Homework assignments are due at midnight on the due date. A 20% penalty will be applied to homework submitted up to 24 hours late, a 40% penalty between 24 and 48 hours late, and zero points after more than 48 hours.

**Collaboration policy:** All work you submit for the homework assignments must be your own. You are welcome to discuss the assignment problems in general with others, but you must work out and write your own solutions: any in-person or online discussion should stop before you start discussing or designing a specific solution. Note this means means not only writing the final answer or program, but also key preliminary and intermediate steps such as solution design, debugging, etc. Copying others’ solutions or letting another person copy your solutions is a serious violation, and can result in failing the course and additional disciplinary action. If you have any questions about what is and is not allowable in this class, please contact the course instructor.

- Monday, 31 Dec: Introduction, conditioning (Heath 1.1, Trefethen & Bau 12)
- Practice exercises: Heath review questions 1.14, 1.15, 1.18–1.20
- References: Goldberg, “What Every Computer Scientist Should Know About Floating-Point Arithmetic”

- Thursday, 3 Jan: Floating-point arithmetic, accuracy and stability (Trefethen & Bau 13, 14, 15)
- Practice exercises: Heath review questions 1.24, 1.36, 1.45, 1.47, 1.50, Trefethen & Bau exercises 13.2, 13.3, 14.2, 15.1
- Floating-point error demo

- Monday, 7 Jan: Review of linear algebra (Trefethen & Bau 1, 2)
- Practice exercises: Trefethen & Bau 1.1, 1.4, 2.1, 2.2, 2.6

- Thursday, 10 Jan: Norms (Trefethen & Bau 3)
- Practice exercises: Trefethen & Bau 3.1, 3.2 (assume all eigenvalues are real), 3.3, 3.5