Symmetric Positive Semidefinite Matrices of Fixed Rank
Manifolds.SymmetricPositiveSemidefiniteFixedRank โ Type
SymmetricPositiveSemidefiniteFixedRank{T,๐ฝ} <: AbstractDecoratorManifold{๐ฝ}The AbstractManifold $\operatorname{SPS}_k(n)$ consisting of the real- or complex-valued symmetric positive semidefinite matrices of size $nรn$ and rank $k$, i.e. the set
\[\operatorname{SPS}_k(n) = \bigl\{ p โ ๐ฝ^{nรn}\ \big|\ p^{\mathrm{H}} = p, apa^{\mathrm{H}} \geq 0 \text{ for all } a โ ๐ฝ \text{ and } \operatorname{rank}(p) = k\bigr\},\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transpose, and the field $๐ฝ โ \{ โ, โ\}$. We sometimes $\operatorname{SPS}_{k,๐ฝ}(n)$, when distinguishing the real- and complex-valued manifold is important.
An element is represented by $q โ ๐ฝ^{nรk}$ from the factorization $p = qq^{\mathrm{H}}$. Note that since for any unitary (orthogonal) $A โ ๐ฝ^{nรn}$ we have $(Aq)(Aq)^{\mathrm{H}} = qq^{\mathrm{H}} = p$, the representation is not unique, or in other words, the manifold is a quotient manifold of $๐ฝ^{nรk}$.
The tangent space at $p$, $T_p\operatorname{SPS}_k(n)$, is also represented by matrices $Y โ ๐ฝ^{nรk}$ and reads as
\[T_p\operatorname{SPS}_k(n) = \bigl\{ X โ ๐ฝ^{nรn}\,|\,X = qY^{\mathrm{H}} + Yq^{\mathrm{H}} \text{ i.e. } X = X^{\mathrm{H}} \bigr\}.\]
Note that the metric used yields a non-complete manifold. The metric was used in [JBAS10][MA20].
Constructor
SymmetricPositiveSemidefiniteFixedRank(n::Int, k::Int, field::AbstractNumbers=โ; parameter::Symbol=:type)Generate the manifold of $nรn$ symmetric positive semidefinite matrices of rank $k$ over the field of real numbers โ or complex numbers โ.
Base.exp โ Method
exp(M::SymmetricPositiveSemidefiniteFixedRank, q, Y)Compute the exponential map on the SymmetricPositiveSemidefiniteFixedRank, which just reads
\[ \exp_q Y = q+Y.\]
Since the manifold is represented in the embedding and is a quotient manifold, the exponential and logarithmic map are a bijection only with respect to the equivalence classes. Computing
\[ q_2 = \exp_p(\log_pq)\]
might yield a matrix $q_2\neq q$, but they represent the same point on the quotient manifold, i.e. $d_{\operatorname{SPS}_k(n)}(q_2,q) = 0$.
Base.log โ Method
log(M::SymmetricPositiveSemidefiniteFixedRank, q, p)Compute the logarithmic map on the SymmetricPositiveSemidefiniteFixedRank manifold by minimizing $\lVert p - qY\rVert$ with respect to $Y$.
Since the manifold is represented in the embedding and is a quotient manifold, the exponential and logarithmic map are a bijection only with respect to the equivalence classes. Computing
\[ q_2 = \exp_p(\log_pq)\]
might yield a matrix $q_2โ q$, but they represent the same point on the quotient manifold, i.e. $d_{\operatorname{SPS}_k(n)}(q_2,q) = 0$.
ManifoldsBase._isapprox โ Method
isapprox(M::SymmetricPositiveSemidefiniteFixedRank, p, q; kwargs...)test, whether two points p, q are (approximately) nearly the same. Since this is a quotient manifold in the embedding, the test is performed by checking their distance, if they are not the same, i.e. that $d_{\mathcal M}(p,q) \approx 0$, where the comparison is performed with the classical isapprox. The kwargs... are passed on to this accordingly.
ManifoldsBase.check_point โ Method
check_point(M::SymmetricPositiveSemidefiniteFixedRank, q; kwargs...)Check whether q is a valid manifold point on the SymmetricPositiveSemidefiniteFixedRank M, i.e. whether p=q*q' is a symmetric matrix of size (n,n) with values from the corresponding AbstractNumbers ๐ฝ. The symmetry of p is not explicitly checked since by using q p is symmetric by construction. The tolerance for the symmetry of p can and the rank of q*q' be set using kwargs....
ManifoldsBase.check_vector โ Method
check_vector(M::SymmetricPositiveSemidefiniteFixedRank, p, X; kwargs... )Check whether X is a tangent vector to manifold point p on the SymmetricPositiveSemidefiniteFixedRank M, i.e. X has to be a symmetric matrix of size (n,n) and its values have to be from the correct AbstractNumbers.
Due to the reduced representation this is fulfilled as soon as the matrix is of correct size.
sourceManifoldsBase.distance โ Method
distance(M::SymmetricPositiveSemidefiniteFixedRank, p, q)Compute the distance between two points p, q on the SymmetricPositiveSemidefiniteFixedRank, which is the Frobenius norm of $Y$ which minimizes $\lVert p - qY\rVert$ with respect to $Y$.
ManifoldsBase.is_flat โ Method
is_flat(::SymmetricPositiveSemidefiniteFixedRank)Return false. SymmetricPositiveSemidefiniteFixedRank is not a flat manifold. See Theorem A.18 in [MA20].
ManifoldsBase.manifold_dimension โ Method
manifold_dimension(M::SymmetricPositiveSemidefiniteFixedRank)Return the dimension of the SymmetricPositiveSemidefiniteFixedRank matrix M over the number system ๐ฝ, i.e.
\[\begin{aligned} \dim \operatorname{SPS}_{k,โ}(n) &= kn - \frac{k(k-1)}{2},\\ \dim \operatorname{SPS}_{k,โ}(n) &= 2kn - k^2, \end{aligned}\]
where the last $k^2$ is due to the zero imaginary part for Hermitian matrices diagonal
sourceManifoldsBase.vector_transport_to โ Method
vector_transport_to(M::SymmetricPositiveSemidefiniteFixedRank, p, X, q)transport the tangent vector X at p to q by projecting it onto the tangent space at q.
ManifoldsBase.zero_vector โ Method
zero_vector(M::SymmetricPositiveSemidefiniteFixedRank, p)returns the zero tangent vector in the tangent space of the symmetric positive definite matrix p on the SymmetricPositiveSemidefiniteFixedRank manifold M.