The MATLAB code maxvoldual.m allows one to solve the simplex-structured matrix factorization (SSMF) problem: Given a data matrix
This code solves SSMF via a dual approach, by solving the dual problem
where
-
$Y = U^T (X-v e^T)$ with$U$ containing the first$r$ singular vectors of$X-v e^T$ , -
$v$ is a translation vector contained in the interior of the convex hull of the columns of$X$ (e.g.,$v = Xe/n$ ), -
$e$ is the vector of all ones, and -
$\lambda$ is a penalty parameter balancing volume and noise.
The matix
See the paper "Dual Simplex Volume Maximization for Simplex-Structured Matrix Factorization", M. Abdolali, G. Barbarino, and N. Gillis, SIAM J. on Imaging Sciences 17 (4), pp. 2362-2391, 2024. See https://epubs.siam.org/doi/10.1137/24M1650600 and https://arxiv.org/abs/2410.06310