Numerical methods for computational and data sciences
- Lectures/Practicals: Tuesday 14:15, J.Liivi 2-205
- Lecturers: Amnir Hadachi (amnir.hadachi@ut.ee) and Benson Muite (benson.muite@ut.ee)
Objective
This course teaches both graduate and advanced undergraduate students from diverse departments how to use computers both efficiently and productively to solve linear algebra problems that arise in data science applications. Particular attention on parallel algorithms will be paid since all computers now have some form of parallelizm and large data problems require parallel computers. Shared memory parallelizm will be emphasized, in particular OpenMP and OpenCL, though students are free to use other APIs such as CUDA, MPI, pthreads, UPC and CAF. Students will learn methods of solving linear systems of equations, how to implement them on different computer architectures and how to use them to solve problems, related to data and computational sciences.
Topics
This class will include but not limited to the following topics:
- Introduction to numerical methods
- High level overview of linear algebra for computer scientists using Python
- Direct Methods:Dense LU decomposition, LINPACK, Sparse LU decomposition
- Eigenvalues: SVD , QR factorization
- Least squares
- Iterative Methods: Conjugate gradient method, Multigrid method
- Filtering Algorithms: Kalman Filter, Particle Filter, Monte Carlo Filter
- Data science applications