Spectrahedron
Manifolds.Spectrahedron
— TypeSpectrahedron{N,K} <: AbstractEmbeddedManifold{ℝ,DefaultIsometricEmbeddingType}
The Spectrahedron manifold, also known as the set of correlation matrices (symmetric positive semidefinite matrices) of rank $k$ with unit trace.
This manifold is working solely on the matrices $q$. Note that this $q$ is not unique, indeed for any orthogonal matrix $A$ we have $(qA)(qA)^{\mathrm{T}} = qq^{\mathrm{T}} = p$, so the manifold implemented here is the quotient manifold. The unit trace translates to unit frobenius norm of $q$.
The tangent space at $p$, denoted $T_p\mathcal E(n,k)$, is also represented by matrices $Y\in ℝ^{n × k}$ and reads as
endowed with the Euclidean
metric from the embedding, i.e. from the $ℝ^{n × k}$
This manifold was for example investigated in[JourneeBachAbsilSepulchre2010].
Constructor
Spectrahedron(n,k)
generates the manifold $\mathcal S(n,k) \subset ℝ^{n × n}$.
ManifoldsBase.check_manifold_point
— Methodcheck_manifold_point(M::Spectrahedron, q; kwargs...)
checks, whether q
is a valid reprsentation of a point $p=qq^{\mathrm{T}}$ on the Spectrahedron
M
, i.e. is a matrix of size (N,K)
, such that $p$ is symmetric positive semidefinite and has unit trace, i.e. $q$ has to have unit frobenius norm. Since by construction $p$ is symmetric, this is not explicitly checked. Since $p$ is by construction positive semidefinite, this is not checked. The tolerances for positive semidefiniteness and unit trace can be set using the kwargs...
.
ManifoldsBase.check_tangent_vector
— Methodcheck_tangent_vector(M::Spectrahedron, q, Y; check_base_point = true, kwargs...)
Check whether $X = qY^{\mathrm{T}} + Yq^{\mathrm{T}}$ is a tangent vector to $p=qq^{\mathrm{T}}$ on the Spectrahedron
M
, i.e. atfer check_manifold_point
of q
, Y
has to be of same dimension as q
and a $X$ has to be a symmetric matrix with trace. The optional parameter check_base_point
indicates, whether to call check_manifold_point
for q
. The tolerance for the base point check and zero diagonal can be set using the kwargs...
. Note that symmetry of $X$ holds by construction and is not explicitly checked.
ManifoldsBase.manifold_dimension
— Methodmanifold_dimension(M::Spectrahedron)
returns the dimension of Spectrahedron
M
$=\mathcal S(n,k), n,k ∈ ℕ$, i.e.
ManifoldsBase.project
— Methodproject(M::Spectrahedron, q)
project q
onto the manifold Spectrahedron
M
, by normalizing w.r.t. the Frobenius norm
ManifoldsBase.project
— Methodproject(M::Spectrahedron, q, Y)
Project Y
onto the tangent space at q
, i.e. row-wise onto the oblique manifold.
ManifoldsBase.representation_size
— Methodrepresentation_size(M::Spectrahedron)
Return the size of an array representing an element on the Spectrahedron
manifold M
, i.e. $n × k$, the size of such factor of $p=qq^{\mathrm{T}}$ on $\mathcal M = \mathcal S(n,k)$.
ManifoldsBase.retract
— Methodretract(M::Spectrahedron, q, Y, ::ProjectionRetraction)
compute a projection based retraction by projecting $q+Y$ back onto the manifold.
ManifoldsBase.vector_transport_to
— Methodvector_transport_to(M::Spectrahedron, p, X, q)
transport the tangent vector X
at p
to q
by projecting it onto the tangent space at q
.
ManifoldsBase.zero_tangent_vector
— Methodzero_tangent_vector(M::Spectrahedron,p)
returns the zero tangent vector in the tangent space of the symmetric positive definite matrix p
on the Spectrahedron
manifold M
.
Literature
- JourneeBachAbsilSepulchre2010
Journée, M., Bach, F., Absil, P.-A., and Sepulchre, R.: “Low-Rank Optimization on the Cone of Positive Semidefinite Matrices”, SIAM Journal on Optimization (20)5, pp. 2327–2351, 2010. doi: 10.1137/080731359, arXiv: 0807.4423.