Preconditioned Low-Rank Riemannian Optimization for Symmetric Positive Definite Linear Matrix Equations
Code accompanying the paper "Preconditioned Low-Rank Riemannian Optimization for Symmetric Positive Definite Linear Matrix Equations".
The code is written in MATLAB, R2024a. Ensure you have the appropriate MATLAB version installed.
Clone the repository, including the Manopt submodule, using the following commands:
git clone https://github.com/IvanBioli/riemannian-spdmatrixeq.git
cd riemannian-spdmatrixeq
git submodule update --init
To replicate all experiments detailed in the Paper, follow these steps:
-
Run the MATLAB script
src\PAPER_run_experiments.m
. -
Allow the script to execute fully. Ignore temporary plots generated and deleted during execution; relevant plots will be generated at the end. Results are saved in
.mat
files in the foldersrc\results
. All plots are saved in the folderreport\figures
and can be produced after one complete execution by running the last section ofsrc\PAPER_run_experiments.m.
A detailed documentation can be found in each file. The repository is structured as follows.
report
configs
figures
: figure folder
src
: code folderPAPER_run_experiments.m
: main script reproducing experiments and figures in the paperbaseline_solvers
: non-Riemannian solvers for SPD linear matrix equationsexamples
: code and data for the numerical tests in the paperpdes_FD
: finite difference discretization of 2D PDEs on square domainrail_problem
: modified Bilinear Rail problemstoch_diff
: stochastic Galerkin matrix equations
init.m
: adds necessary folders to MATLAB's pathmanifold_optimization
: code for Riemannian solvers (including manifolds and preconditioners)manopt
: fork of Manopt's repositorypaper_experiments
: code for setting up the numerical experimens in the paperresults
: folder where results are saved in.mat
formatutils
: code utilities
- Ivan Bioli (Università di Pavia)
- Daniel Kressner (EPFL)
- Leonardo Robol (Università di Pisa)