Symmetric Positive Semidefinite Matrices of Fixed Rank
Manifolds.SymmetricPositiveSemidefiniteFixedRank
โ TypeSymmetricPositiveSemidefiniteFixedRank{n,k,๐ฝ} <: 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 $\cdot^{\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=โ)
Generate the manifold of $n ร n$ symmetric positive semidefinite matrices of rank $k$ over the field
of real numbers โ
or complex numbers โ
.
Base.exp
โ Methodexp(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
โ Methodlog(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\neq q$, but they represent the same point on the quotient manifold, i.e. $d_{\operatorname{SPS}_k(n)}(q_2,q) = 0$.
ManifoldsBase._isapprox
โ Methodisapprox(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
โ Methodcheck_point(M::SymmetricPositiveSemidefiniteFixedRank{n,๐ฝ}, 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
โ Methodcheck_vector(M::SymmetricPositiveSemidefiniteFixedRank{n,k,๐ฝ}, 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.
ManifoldsBase.distance
โ Methoddistance(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
โ Methodis_flat(::SymmetricPositiveSemidefiniteFixedRank)
Return false. SymmetricPositiveSemidefiniteFixedRank
is not a flat manifold.
ManifoldsBase.manifold_dimension
โ Methodmanifold_dimension(M::SymmetricPositiveSemidefiniteFixedRank{n,k,๐ฝ})
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
ManifoldsBase.vector_transport_to
โ Methodvector_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
.