Getting started

Manopt’s purpose and design

With Manopt, you can solve optimization problems on manifolds and on linear spaces (e.g., matrix spaces) using state-of-the-art algorithms, with minimal effort. The toolbox targets great flexibility in the problem description and comes with advanced features, such as caching and automatic differentiation.

The toolbox architecture is based on a separation of the manifolds, the solvers and the problem descriptions. For basic use, one only needs to pick a manifold from the library, describe the cost function (and possible derivatives) and pass it on to a solver. Accompanying tools help the user in common tasks such as numerically checking the derivatives, plotting the cost function, computing eigenvalues of the Hessian etc.

This is a prototyping toolbox, built on the premise that the costly part of solving an optimization problem is querying the cost function, and not the inner machinery of the solver. It is also work in progress: feedback and contributions are welcome!

Mailing list Consider registering as a user to hear about updates.

Download

There are two ways to get Manopt:

Download Download the latest packaged version (v8.0, July 5, 2024).

GitHub Clone the GitHub repository to use the latest updates as they roll out.

Install

  1. Either git-clone or unzip the whole manopt directory you just downloaded in a location of your choice, say, in /my/directory/.
  2. Go to /my/directory/manopt/ at the Matlab prompt and execute importmanopt.
  3. You will be asked whether you want to save this path for your next Matlab sessions. If you reply Y (yes) and you have the rights to run savepath, then you won’t need to go through these steps next time you open Matlab.

Check

Go to /my/directory/manopt/ and run the script checkinstall.m. If there are no errors, you are done! Otherwise, feel free to report issues on the forum.

Move on to the first example

This tutorial provides detailed instructions from zero to the advanced features of Manopt. Check out a first example to get a feel for how things work, then continue through the detailed documentation.

Dig into more advanced examples

You may find it helpful to look through the examples that ship with Manopt.

Learn more of the math

See our pointers for helpful learning resources including video lectures and books.