Numerical Algebra and Optimization
Prerequisite(s):
Numerical Analysis
Course Description
This course offers an introduction to the mathematical foundations and algorithmic implementation of numerical methods. Designed for students in mathematics, science, and engineering, the curriculum bridges theoretical linear algebra and optimization with scientific computing practice. The first module of the course is on numerical linear algebra, focusing on methods for solving linear systems, least squares, and eigenvalue problems via matrix factorization techniques and Krylov subspace iteration methods. The second module addresses numerical optimization, exploring techniques for unconstrained and constrained minimization problems. We will evaluate algorithms based on their accuracy, stability, and computational complexity, reinforced by practical implementations in MATLAB or Python and standard software libraries used in scientific computing.
Learning Objectives
By the end of this course, students will be able to:
Analyze the effects of floating-point arithmetic on algorithmic stability and problem conditioning.
Select and implement appropriate matrix factorizations to solve linear systems and eigenvalue problems efficiently.
Utilize Krylov subspace iterations for solving large-scale systems where direct methods are computationally prohibitive.
Formulate and solve convex optimization problems by applying optimality conditions and gradient-based methods.
Evaluate trade-offs between the rate of convergence, computational complexity, memory footprint of different algorithms.
Develop verifiable numerical algorithms using Python or MATLAB.
Course Syllabus & Detailed Topics
1. Fundamentals of numerical linear algebra, singular value decomposition
2. QR factorization and least squares
3. Conditioning and stability
4. Systems of equations
5. Eigenvalues
6. Iterative methods
7. Convex sets, convex functions, convex optimization problems, duality
8. Unconstrained minimization
9. Equality constrained minimization
10. Interior-point methods