The Stiefel manifold $\mathrm{St}(k,n)$ embedded in $\mathbb K^{n\times k}$
The manifold $\mathcal M = \mathrm{St}(k,n)$ is an embedded submanifold of $\mathbb{K}^{n×k}$, which represents all orthonormal k-frames in $\mathbb{K}^{n}$. The set can be written as
The Stiefel manifold $\mathrm{St}(k,n)$ can be thought of as a set of $n×k$ matrices by writing a $k$-frame as a matrix of $k$ column vectors in $\mathbb{K}^{n}$. It is named after the mathematician Eduard Stiefel (1909–1978). The Stiefel manifold $\mathcal M = \mathrm{St}(k,n)$ posesses the following instances of the abstract types Manifold, MPoint, and TVector.
Manopt.StPoint — Type.StPoint <: MPointA point $x$ on the manifold $\mathcal M = \mathrm{St}(k,n)$ is represented by an orthogonal matrix from $\mathbb{K}^{n\times k}.$
Constructor
StPoint(Matrix)where Matrix is an orthogonal matrix of dimension $n×k$.
Manopt.StTVector — Type.StTVector <: TVectorA tangent vector $\xi \in T_x\mathcal M$ on the manifold $\mathcal M = \mathrm{St}(k,n)$. The tangent space is given by as
.
Constructor
StTVector(ξ)where ξ is an $n\times k$ Matrix that satisfies the above.
Manopt.Stiefel — Type.Stiefel{T<:Union{U, Complex{U}} <: ManifoldThe manifold $\mathcal M = \mathrm{St}(k,n)$ represented by $n\times k$ orthogonal matrices, that are either real- or complex-valued.
Abbreviation
St
Constructor
Stiefel(k, n[, d=Float64])generate the manifold $\mathrm{St}(k,n)$ where the integer n is the number of rows and k is the number of columns of the matrices and the optional parameter d sets the DataType of the matrix entries.
Functions
Base.exp — Method.exp(M,x,ξ [,t=1.0])compute the exponential map on the Stiefel manifold M$= \mathrm{St}(k,n)$ with respect to the StPoint x and the StTVector ξ, which can be shortened with t to tξ. The formula reads
where $\operatorname{Exp}$ denotes matrix exponential, and $I_{k×k}$ and $0_{k×k} are the identity matrix and the zero matrix of dimension $k×k$, respectively.
LinearAlgebra.dot — Method.LinearAlgebra.norm — Method.Manopt.injectivityRadius — Method.injectivityRadius(M)return the injectivity radius of the Stiefel manifold M$= \mathrm{St}(k,n)$.
Manopt.inverseRetractionPolar — Method.inverseRetractionPolar(M,x,y)return a StTVector ξ of the tagent space $T_x\mathrm{SO}(n)$ of the StPoint x on the Stiefel manifold M with which the StPoint y can be reached by the retractionPolar after time 1. The formula reads
where $s$ is the solution to the Lyapunov equation
This function is implemented only for the case $\mathbb{K}=\mathbb{R}$.
Manopt.inverseRetractionQR — Method.inverseRetractionQR(M,x,y)return a StTVector ξ of the tagent space $T_x\mathrm{SO}(n)$ of the StPoint x on the Stiefel manifold M with which the StPoint y can be reached by the retractionQR after time 1. This function is implemented only for the case $\mathbb{K}=\mathbb{R}$. This is also the standard retraction.
Manopt.manifoldDimension — Method.Manopt.manifoldDimension — Method.manifoldDimension(M)return the dimension of the Stiefel manifold M. The dimension for $\mathbb{K}=\mathbb{R}$ is given by
and for $\mathbb{K}=\mathbb{C}$
Manopt.parallelTransport — Method.parallelTransport(M,x,y,ξ)compute the paralllel transport of the StTVector ξ from the tangent space $T_x\mathcal M$ at StPoint x to $T_y\mathcal M$ at StPoint y on the Stiefel manifold M provided that the corresponding geodesic $g(\cdot;x,y)$ is unique. The formula reads
where $\operatorname{proj}_{\mathcal M}$ is the project onto the tangent space $T_y\mathcal M$.
Manopt.project — Method.Manopt.randomMPoint — Method.Manopt.randomTVector — Method.Manopt.retractionPolar — Method.retractionPolar(M,x,ξ,[t=1.0])move the StPoint x in the direction of the StTVector ξ on the Stiefel manifold M. This SVD-based retraction is a second-order approximation of the exponential map exp. Let
be the singular value decomposition, then the formula reads
This function is implemented only for the case $\mathbb{K}=\mathbb{R}$.
Manopt.retractionQR — Method.retractionQR(M,x,ξ,[t=1.0])move the StPoint x in the direction of the StTVector ξ on the Stiefel manifold M. This QR-based retraction is a first-order approximation of the exponential map exp. Let
be the QR decomposition, then the formula reads
where D is a $n×k$ matrix with the signs of the diagonal entries of $R$ plus $0.5$ on the upper diagonal, i.e.
This is also the standard retraction.
Manopt.validateMPoint — Method.Manopt.validateTVector — Method.Manopt.zeroTVector — Method.