Stiefel
Manifolds.Stiefel
β TypeStiefel{n,k,π½} <: AbstractEmbeddedManifold{π½,DefaultIsometricEmbeddingType}
The Stiefel manifold consists of all $n Γ k$, $n β₯ k$ unitary matrices, i.e.
where $π½ β \{β, β\}$, $\cdot^{\mathrm{H}}$ denotes the complex conjugate transpose or Hermitian, and $I_k β β^{k Γ k}$ denotes the $k Γ k$ identity matrix.
The tangent space at a point $p β \mathcal M$ is given by
where $0_k$ is the $k Γ k$ zero matrix and $\overline{\cdot}$ the (elementwise) complex conjugate.
This manifold is modeled as an embedded manifold to the Euclidean
, i.e. several functions like the inner
product and the zero_tangent_vector
are inherited from the embedding.
The manifold is named after Eduard L. Stiefel (1909β1978).
Constructor
Stiefel(n, k, field = β)
Generate the (real-valued) Stiefel manifold of $n Γ k$ dimensional orthonormal matrices.
Base.exp
β Methodexp(M::Stiefel, p, X)
Compute the exponential map on the Stiefel
{n,k,π½}
() manifold M
emanating from p
in tangent direction X
.
where $\operatorname{Exp}$ denotes matrix exponential, $\cdot^{\mathrm{H}}$ denotes the complex conjugate transpose or Hermitian, and $I_k$ and $0_k$ are the identity matrix and the zero matrix of dimension $k Γ k$, respectively.
Manifolds.uniform_distribution
β Methoduniform_distribution(M::Stiefel{n,k,β}, p)
Uniform distribution on given (real-valued) Stiefel
M
. Specifically, this is the normalized Haar and Hausdorff measure on M
. Generated points will be of similar type as p
.
The implementation is based on Section 2.5.1 in [Chikuse2003]; see also Theorem 2.2.1(iii) in [Chikuse2003].
ManifoldsBase.check_manifold_point
β Methodcheck_manifold_point(M::Stiefel, p; kwargs...)
Check whether p
is a valid point on the Stiefel
M
=$\operatorname{St}(n,k)$, i.e. that it has the right AbstractNumbers
type and $p^{\mathrm{H}}p$ is (approximately) the identity, where $\cdot^{\mathrm{H}}$ is the complex conjugate transpose. The settings for approximately can be set with kwargs...
.
ManifoldsBase.check_tangent_vector
β Methodcheck_tangent_vector(M::Stiefel, p, X; check_base_point = true, kwargs...)
Checks whether X
is a valid tangent vector at p
on the Stiefel
M
=$\operatorname{St}(n,k)$, i.e. the AbstractNumbers
fits and it (approximately) holds that $p^{\mathrm{H}}X + \overline{X^{\mathrm{H}}p} = 0$, where $\cdot^{\mathrm{H}}$ denotes the Hermitian and $\overline{\cdot}$ the (elementwise) complex conjugate. The optional parameter check_base_point
indicates, whether to call check_manifold_point
for p
. The settings for approximately can be set with kwargs...
.
ManifoldsBase.inverse_retract
β Methodinverse_retract(M::Stiefel, p, q, ::PolarInverseRetraction)
Compute the inverse retraction based on a singular value decomposition for two points p
, q
on the Stiefel
manifold M
. This follows the folloing approach: From the Polar retraction we know that
if such a symmetric positive definite $k Γ k$ matrix exists. Since $qs - t$ is also a tangent vector at $p$ we obtain
which can either be solved by a Lyapunov approach or a continuous-time algebraic Riccati equation.
This implementation follows the Lyapunov approach.
ManifoldsBase.inverse_retract
β Methodinverse_retract(M::Stiefel, p, q, ::QRInverseRetraction)
Compute the inverse retraction based on a qr decomposition for two points p
, q
on the Stiefel
manifold M
and return the resulting tangent vector in X
. The computation follows Algorithm 1 in [KanekoFioriTanaka2013].
ManifoldsBase.manifold_dimension
β Methodmanifold_dimension(M::Stiefel)
Return the dimension of the Stiefel
manifold M
=$\operatorname{St}(n,k,π½)$. The dimension is given by
ManifoldsBase.project
β Methodproject(M::Stiefel,p)
Projects p
from the embedding onto the Stiefel
M
, i.e. compute q
as the polar decomposition of $p$ such that $q^{\mathrm{H}q$ is the identity, where $\cdot^{\mathrm{H}}$ denotes the hermitian, i.e. complex conjugate transposed.
ManifoldsBase.project
β Methodproject(M::Stiefel, p, X)
Project X
onto the tangent space of p
to the Stiefel
manifold M
. The formula reads
where $\operatorname{Sym}(q)$ is the symmetrization of $q$, e.g. by $\operatorname{Sym}(q) = \frac{q^{\mathrm{H}}+q}{2}$.
ManifoldsBase.representation_size
β Methodrepresentation_size(M::Stiefel)
Returns the representation size of the Stiefel
M
=$\operatorname{St}(n,k)$, i.e. (n,k)
, which is the matrix dimensions.
ManifoldsBase.retract
β Methodretract(M::Stiefel, p, X, ::PolarRetraction)
Compute the SVD-based retraction PolarRetraction
on the Stiefel
manifold M
. With $USV = p + X$ the retraction reads
ManifoldsBase.retract
β Methodretract(M::Stiefel, p, X, ::QRRetraction )
Compute the QR-based retraction QRRetraction
on the Stiefel
manifold M
. With $QR = p + X$ the retraction reads
where $D$ is a $n Γ k$ matrix with
where $\operatorname{sgn}(p) = \begin{cases} 1 & \text{ for } p > 0,\\ 0 & \text{ for } p = 0,\\ -1& \text{ for } p < 0. \end{cases}$
Literature
-
H. Sato and T. Iawi, βA complex singular value decomposition algorithm based on
the Riemannian Newton methodβ, in:
IEEE 52nd Annual Conference on Decision and Control (CDC) , 2013, p. 2972--2978, doi: 10.1109/CDC.2013.6760335 -
H. Sato: βRiemannian conjugate gradient method for complex singular value
decomposition problemβ, in:
IEEE 53rd Annual COnference on Decision and Control (CDC) , 2014, p. 5849β5854, doi: 10.1109/CDC.2014.7040305 - Chikuse2003
Y. Chikuse: "Statistics on Special Manifolds", Springer New York, 2003, doi: 10.1007/978-0-387-21540-2.
- KanekoFioriTanaka2013
T. Kaneko, S. Fiori, T. Tanaka: "Empirical Arithmetic Averaging over the Compact Stiefel Manifold", IEEE Transactions on Signal Processing, 2013, doi: 10.1109/TSP.2012.2226167.