This course provides an overview of modern methods for efficiently solving large systems of linear equations, which have become widely used in the context of scientific computing and computational engineering. These systems arise from the discretization of the Partial Differential Equations that describe a specific model or from numerical methods for solving large scale optimization problems.
The course will cover the theoretical aspects of the main numerical methods for solving these problems. But also algorithmic and implementation aspects will be discussed and constitute an important part of the course.
The course is divided into lectures and exercises (hands-on sessions).