COL 726: Numerical Algorithms

General Information

Instructor:
Rahul Narain
narain@cse.iitd.ac.in

Class times:
Slot M (Mon, Thu 5–6:30pm)
Bharti IIA-201

Office hours:
Wed, Thu 10:30–11:30am
Bharti IIA-517

Links:
Moodle
Piazza
Gradescope

Course Description

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:

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

Evaluation

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:

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 used external resources such as Wikipedia for help in any of your homework solutions, you must cite them explicitly in your report, and write the solution completely in your own words (not copied from the external resource) to demonstrate that you understand it yourself. The same applies for any programming component: the code should also be written from scratch.

If you have any questions about what is and is not allowable in this class, please contact the course instructor.

Lectures