Elliptope
Manifolds.Elliptope
β TypeElliptope{N,K} <: AbstractDecoratorManifold{β}
The Elliptope manifold, also known as the set of correlation matrices, consists of all symmetric positive semidefinite matrices of rank $k$ with unit diagonal, i.e.,
\[\begin{aligned} \mathcal E(n,k) = \bigl\{p β β^{n Γ n}\ \big|\ &a^\mathrm{T}pa \geq 0 \text{ for all } a β β^{n},\\ &p_{ii} = 1 \text{ for all } i=1,\ldots,n,\\ &\text{and } p = qq^{\mathrm{T}} \text{ for } q \in β^{n Γ k} \text{ with } \operatorname{rank}(p) = \operatorname{rank}(q) = k \bigr\}. \end{aligned}\]
And 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 diagonal translates to unit norm columns 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
\[T_p\mathcal E(n,k) = \bigl\{ X β β^{n Γ n}\,|\,X = qY^{\mathrm{T}} + Yq^{\mathrm{T}} \text{Β with } X_{ii} = 0 \text{ for } i=1,\ldots,n \bigr\}\]
endowed with the Euclidean
metric from the embedding, i.e. from the $β^{n Γ k}$
This manifold was for example investigated in[JBAS10].
Constructor
Elliptope(n,k)
generates the manifold $\mathcal E(n,k) \subset β^{n Γ n}$.
ManifoldsBase.check_point
β Methodcheck_point(M::Elliptope, q; kwargs...)
checks, whether q
is a valid reprsentation of a point $p=qq^{\mathrm{T}}$ on the Elliptope
M
, i.e. is a matrix of size (N,K)
, such that $p$ is symmetric positive semidefinite and has unit trace. 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_vector
β Methodcheck_vector(M::Elliptope, q, Y; kwargs... )
Check whether $X = qY^{\mathrm{T}} + Yq^{\mathrm{T}}$ is a tangent vector to $p=qq^{\mathrm{T}}$ on the Elliptope
M
, i.e. Y
has to be of same dimension as q
and a $X$ has to be a symmetric matrix with zero diagonal.
The tolerance for the base point check and zero diagonal can be set using the kwargs...
. Note that symmetric of $X$ holds by construction an is not explicitly checked.
ManifoldsBase.is_flat
β Methodis_flat(::Elliptope)
Return false. Elliptope
is not a flat manifold.
ManifoldsBase.manifold_dimension
β Methodmanifold_dimension(M::Elliptope)
returns the dimension of Elliptope
M
$=\mathcal E(n,k), n,k β β$, i.e.
\[\dim \mathcal E(n,k) = n(k-1) - \frac{k(k-1)}{2}.\]
ManifoldsBase.project
β Methodproject(M::Elliptope, q)
project q
onto the manifold Elliptope
M
, by normalizing the rows of q
.
ManifoldsBase.project
β Methodproject(M::Elliptope, q, Y)
Project Y
onto the tangent space at q
, i.e. row-wise onto the oblique manifold.
ManifoldsBase.representation_size
β Methodrepresentation_size(M::Elliptope)
Return the size of an array representing an element on the Elliptope
manifold M
, i.e. $n Γ k$, the size of such factor of $p=qq^{\mathrm{T}}$ on $\mathcal M = \mathcal E(n,k)$.
ManifoldsBase.retract
β Methodretract(M::Elliptope, q, Y, ::ProjectionRetraction)
compute a projection based retraction by projecting $q+Y$ back onto the manifold.
ManifoldsBase.vector_transport_to
β Methodvector_transport_to(M::Elliptope, p, X, q)
transport the tangent vector X
at p
to q
by projecting it onto the tangent space at q
.
ManifoldsBase.zero_vector
β Methodzero_vector(M::Elliptope,p)
returns the zero tangent vector in the tangent space of the symmetric positive definite matrix p
on the Elliptope
manifold M
.