Single-Course English 5 ECTS

Convex optimization

Overall Course Objectives

The aim of the course is to provide students with a general overview of convex optimization theory, its applications, and computational methods for large-scale optimization. The students will learn how to recognize convex optimization problems and how to solve these numerically using either an existing software library or by deriving/implementing a suitable method that exploits problem structure. As part of the course, the students will work on a project which aims to provide students with the opportunity to put theory to work in a practical and application-oriented context.

Learning Objectives

  • recognize and characterize convex functions and sets
  • explain/characterize the subdifferential of a convex function
  • describe basic concepts of convex analysis
  • derive the Lagrange dual of a convex optimization problem
  • recognize and formulate conic constraints
  • derive a convex relaxation of nonconvex quadratic problems
  • implement a first-order method for a large-scale optimization problem with structure
  • construct and implement a splitting method for a convex–concave saddle-point problem
  • evaluate the computational performance of an optimization algorithm

Course Content

Convex analysis (convex sets and functions, convex conjugate, duality, dual norms, composition rules, subgradient calculus), conic optimization (linear optimization, second-order cone optimization, semidefinite optimization), first-order methods for smooth and nonsmooth optimization (proximal gradient methods, acceleration), splitting methods (Douglas–Rachford splitting, ADMM, Chambolle–Pock algorithm), stochastic methods, incremental methods and coordinate descent methods.

Recommended prerequisites

01005/01020/02601/02610, Coursework in linear algebra (e.g. 01005/01020) and numerical algorithms (e.g., 02601), introductory-level coursework in optimization (e.g., 02610), a certain degree of mathematical maturity, and proficiency in a high-level programming language such as MATLAB, Python, or Julia.

Teaching Method

Lectures and exercises, followed by a final project.


Limited number of seats

Minimum: 10, Maximum: 30.

Please be aware that this course has a minimum requirement for the number of participants needed, in order for it to be held. If these requirements are not met, then the course will not be held. Furthermore, there is a limited number of seats available. If there are too many applicants, a pool will be created for the remainder of the qualified applicants, and they will be selected at random. You will be informed 8 days before the start of the course, whether you have been allocated a spot.

See course in the course database.





3 weeks




DTU Lyngby Campus

Course code 02953
Course type PhD
Semester start Week 23
Semester end Week 26
Days Mon-fri 8:00-17:00

10.600,00 DKK

Please note that this course has participants limitation. Read more