(Real) Symplectic Grassmann
Manifolds.SymplecticGrassmann
— TypeSymplecticGrassmann{T,𝔽} <: AbstractEmbeddedManifold{𝔽, DefaultIsometricEmbeddingType}
The symplectic Grassmann manifold consists of all symplectic subspaces of $ℝ^{2n}$ of dimension $2k$, $n ≥ k$.
Points on this manifold can be represented as corresponding representers on the SymplecticStiefel
\[\operatorname{SpGr}(2n,2k) = \bigl\{ \operatorname{span}(p)\ \big| \ p ∈ \operatorname{SpSt}(2n, 2k, ℝ)\},\]
or as projectors
\[\operatorname{SpGr}(2n, 2k, ℝ) = \bigl\{ p ∈ ℝ^{2n×2n} \ \big| \ p^2 = p, \operatorname{rank}(p) = 2k, p^+=p \bigr\},\]
where $⋅^+$ is the symplectic_inverse
. See also ProjectorPoint
and StiefelPoint
for these two representations, where arrays are interpreted as those on the Stiefel manifold.
With respect to the quotient structure, the canonical projection $π = π_{\mathrm{SpSt},\mathrm{SpGr}}$ is given by
\[π: \mathrm{SpSt}(2n2k) → \mathrm{SpGr}(2n,2k), p ↦ π(p) = pp^+.\]
The tangent space is either the tangent space from the symplectic Stiefel manifold, where tangent vectors are representers of their corresponding congruence classes, or for the representation as projectors, using a ProjectorTVector
as
\[ T_p\operatorname{SpGr}(2n, 2k, ℝ) = \bigl\{ [X,p] \ \mid\ X ∈ \mathfrak{sp}(2n,ℝ), Xp+pX = X \bigr\},\]
where $[X,p] = Xp-pX$ denotes the matrix commutator and $\mathfrak{sp}(2n,ℝ)$ is the Lie algebra of the symplectic group consisting of HamiltonianMatrices
.
The first representation is in StiefelPoint
s and StiefelTVector
s, which both represent their symplectic Grassmann equivalence class. Arrays are interpreted in this representation as well
For the representation in ProjectorPoint
and ProjectorTVector
s, we use the representation from the surjective submersion
\[ρ: \mathrm{SpSt}(2n,2k) → \mathrm{SpGr}(2n,2k), \qquad ρ(p) = pp^+\]
and its differential
\[\mathrm{d}ρ(p,X) = Xp^+ + pX^+,\]
respectively. The manifold was first introduced in [BZ21]
Constructor
SymplecticGrassmann(2n::Int, 2k::Int, field::AbstractNumbers=ℝ; parameter::Symbol=:type)
Generate the (real-valued) symplectic Grassmann manifold. of $2k$ dimensional symplectic subspace of $ℝ^{2n}$. Note that both dimensions passed to this constructor have to be even.
ManifoldsBase.manifold_dimension
— Methodmanifold_dimension(::SymplecticGrassmann)
Return the dimension of the SymplecticGrassmann
(2n,2k)
, which is
\[\operatorname{dim}\operatorname{SpGr}(2n, 2k) = 4(n-k)k,\]
see [BZ21], Section 4.
The (default) symplectic Stiefel representation
Base.exp
— Methodexp(::SymplecticGrassmann, p, X)
exp!(M::SymplecticGrassmann, q, p, X)
Compute the exponential mapping
\[ \exp\colon T\mathrm{SpGr}(2n, 2k) → \mathrm{SpGr}(2n, 2k)\]
when representing points and tangent vectors as symplectic bases and their tangents, i.e. on the SymplecticStiefel
manifold. Then we can just pass this on to exp(::SymplecticStiefel, p, X)
.
ManifoldDiff.riemannian_gradient
— Methodriemannian_gradient(M::SymplecticGrassmann, p, Y)
Given a gradient $Y = \operatorname{grad} \tilde f(p)$ in the embedding $ℝ^{2n×2k}$ or at least around the SymplecticGrassmann
M
where p
(the embedding of) a point on M
, and the restriction $\tilde f$ to the SymplecticStiefel
be invariant for the equivalence classes. In other words $f(p) = f(qp)$ for $q \in \mathrm{Sp}(2k, ℝ)$, where $\mathrm{Sp}(2k, ℝ)$ denotes the SymplecticMatrices
manifold. Then the Riemannian gradient $X = \operatorname{grad} f(p)$ is given by
\[ X = J_{2n}^THJ_{2k}p^{\mathrm{T}}p - J_{2n}^TpJ_{2k}H^{\mathrm{T}}p,\]
where $J_{2n}$ denotes the SymplecticElement
, and $H = (I_{2n} - pp^+)J_{2n}^{\mathrm{T}}YJ$.
ManifoldsBase.check_point
— Methodcheck_point(M::SymplecticGrassmann, p; kwargs...)
Check whether p
is a valid point on the SymplecticGrassmann
, $\operatorname{SpGr}(2n, 2k)$ manifold by verifying that it is a valid representer of an equivalence class of the corersponding SymplecticStiefel
manifold.
ManifoldsBase.check_vector
— Methodcheck_vector(M::SymplecticGrassmann, p, X; kwargs...)
Check whether X
is a valid tangent vector at p
on the SymplecticGrassmann
, $\operatorname{SpGr}(2n, 2k)$ manifold by verifying that it is a valid representer of an equivalence class of the corersponding SymplecticStiefel
manifolds tangent space at p
.
ManifoldsBase.inner
— Methodinner(::SymplecticGrassmann, p, X, Y)
Compute the Riemannian inner product $g^{\mathrm{SpGr}}_p(X,Y)$ on the SymplecticGrassmann
manifold \mathrm{SpGr}
`.
For the case where $p$ is represented by a point on the SymplecticStiefel
manifold acting as a representant of its equivalence class $[p] \in \mathrm{SpGr}$ and the tangent vectors $X,Y \in \mathrm{Hor}_p^π\operatorname{SpSt}(2n,2k)$ are horizontal tangent vectors.
Then the inner product reads according to Proposition Lemma 4.8 [BZ21].
\[g^{\mathrm{SpGr}}_p(X,Y) = \operatorname{tr}\bigl( (p^{\mathrm{T}}p)^{-1}X^{\mathrm{T}}(I_{2n} - pp^+)Y \bigr),\]
where $I_{2n}$ denotes the identity matrix and $(⋅)^+$ the symplectic_inverse
.
ManifoldsBase.inverse_retract
— Methodinverse_retract(::SymplecticGrassmann, p, q, ::CayleyInverseRetraction)
inverse_retract!(::SymplecticGrassmann, q, p, X, ::CayleyInverseRetraction)
Compute the Cayley Inverse Retraction on the Symplectic Grassmann manifold, when the points are represented as symplectic bases, i.e. on the SymplecticStiefel
.
Here we can directly employ the CaleyInverseRetraction
on the symplectic Stiefel manifold.
ManifoldsBase.retract
— Methodretract(::SymplecticGrassmann, p, X, ::CayleyRetraction)
retract!(::SymplecticGrassmann, q, p, X, ::CayleyRetraction)
Compute the Cayley retraction on the Symplectic Grassmann manifold, when the points are represented as symplectic bases, i.e. on the SymplecticStiefel
.
Here we can directly employ the CaleyRetraction
on the symplectic Stiefel manifold.
The symplectic projector representation
ManifoldsBase.check_point
— Methodcheck_point(M::SymplecticGrassmann, p::ProjectorPoint; kwargs...)
Check whether p
is a valid point on the SymplecticGrassmann
, $\operatorname{SpGr}(2n, 2k)$, that is a proper symplectic projection:
- $p^2 = p$, that is $p$ is a projection
- $\operatorname{rank}(p) = 2k$, that is, the supspace projected onto is of right dimension
- $p^+ = p$ the projection is symplectic.
ManifoldsBase.check_vector
— Methodcheck_vector(M::SymplecticGrassmann, p::ProjectorPoint, X::ProjectorTVector; kwargs...)
Check whether X
is a valid tangent vector at p
on the SymplecticGrassmann
, $\operatorname{SpGr}(2n, 2k)$ manifold by verifying that it
- $X^+ = X$
- $X = Xp + pX$
For details see Proposition 4.2 in [BZ21] and the definition of $\mathfrak{sp}_P(2n)$ before, especially the $\bar{Ω}$, which is the representation for $X$ used here.
Literature
- [BZ21]
- T. Bendokat and R. Zimmermann. The real symplectic Stiefel and Grassmann manifolds: metrics, geodesics and applications, arXiv Preprint, 2108.12447 (2021), arXiv:2108.12447.