The Stiefel Manifold mathrmSt(kn)

# 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}$, wich represents all orthonormal k-frames in $\mathbb{K}^{n}$. The set can be written as

$\mathrm{St}(k,n) = \bigl\{ x \in \mathbb{K}^{n\times k} \big| {\bar x}^{\mathrm{T}}x = I_k \bigl\}$

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.

StPoint <: MPoint

A 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$.

source
StTVector <: TVector

A tangent vector $\xi \in T_x\mathcal M$ on the manifold $\mathcal M = \mathrm{St}(k,n)$. The tangent space is given by as

$T_x\mathrm{St}(k,n) = \bigl\{\xi \in \mathbb{K}^{n\times k} \big| x^{\mathrm{T}}ξ+ξ^{\mathrm{T}}x=0 \bigr\}$

.

Constructor

StTVector(ξ)

where ξ is an $n\times k$ Matrix that satisfies the above.

source
Stiefel{T<:Union{U, Complex{U}} <: Manifold

The 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.

source

## Functions

exp(M,x,ξ [,t=1.0])

compute the exponential map on the Stiefel manifold M$=\mathrm{SO}(n)$ with respect to the StPoint x and the StTVector ξ, which can be shortened with t to tξ. The formula reads

$\operatorname{exp}_{x} tξ = \begin{pmatrix} x\\t\xi \end{pmatrix} \operatorname{Exp} \left( \begin{pmatrix} {\bar x}^{\mathrm{T}}\xi & -{\bar \xi}^{\mathrm{T}}\xi\\ I_{k×k} & {\bar x}^{\mathrm{T}}\xi\end{pmatrix} \right) \begin{pmatrix} \operatorname{Exp}( -{\bar x}^{\mathrm{T}}\xi) \\ 0_{k×k}\end{pmatrix}$

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. source dot(M,x,ξ,ν) compute the Riemannian inner product for two StTVectors ξ and ν from$T_x\mathcal M$of the Stiefel manifold M given by $\langle \xi, \nu \rangle_x = \operatorname{trace}({\bar \xi}^{\mathrm{T}}\nu).$ source norm(M,x,ξ) compute the norm of the StTVector ξ in the tangent space$T_x\mathcal M$at StPoint x of the Stiefel manifold M. $\lVert \xi \rVert_x = \sqrt{\sum_{i,j=0}^n \xi_{ij}^2}$ where$\xi_{ij}$are the entries of the matrix ξ, i.e. the norm is given by the Frobenius norm of ξ. source 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 $ξ = ys-x$ where$s$is the solution to the Lyapunov equation $x^{\mathrm{T}}ys + s(x^{\mathrm{T}}y)^{\mathrm{T}} + 2\mathrm{I}_k = 0.$ This function is implemented only for the case$\mathbb{K}=\mathbb{R}$. source 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. source manifoldDimension(x) return the dimension of the Stiefel manifold M$= \mathrm{St}(k,n)$, the StPoint x, itself embedded in$\mathbb R^{n\times k}$, belongs to. The dimension for$\mathbb{K}=\mathbb{R}$is given by $nk - \frac{1}{2}k(k+1)$ and for$\mathbb{K}=\mathbb{C}$$2nk - k^2.$ source manifoldDimension(M) return the dimension of the Stiefel manifold M. The dimension for$\mathbb{K}=\mathbb{R}$is given by $nk - \frac{1}{2}k(k+1)$ and for$\mathbb{K}=\mathbb{C}$$2nk - k^2.$ source 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 $P_{x\to y}(\xi) = \operatorname{proj}_{\mathcal M}(y,\xi).$ where$\operatorname{proj}_{\mathcal M}$is the projection onto the tangent space$T_y\mathcal M$. source projection(M,x,q) project a Matrix q orthogonally on the tangent space of the StPoint x on the Stiefel manifold M. The formula reads $\operatorname{proj}_{\mathcal M}(x,q) = q-xB$ where $B=\frac{1}{2} (x^{\mathrm{T}}{\bar q})^{\mathrm{T}} {\bar x}^{\mathrm{T}}q.$ see also source randomMPoint(M [,:Gaussian, σ=1.0]) return a random (Gaussian) StPoint x on the manifold Stiefel manifold M by generating a (Gaussian) matrix with standard deviation σ and return the orthogonalized version, i.e. return ​​the Q component of the QR decomposition of the random matrix of size$n×k$. source randomTVector(M,x [,:Gaussian, σ=1.0]) return a random vector StTVector in the tangential space$T_x\mathrm{St}(k,n)$by generating a random matrix of size$n×k$and projecting it onto StPoint x with projection. source 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 $USV = x + tξ$ be the singular value decomposition, then the formula reads $\operatorname{retr}_x\xi = UV^\mathrm{T}.$ This function is implemented only for the case$\mathbb{K}=\mathbb{R}$. source 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 $QR = x + tξ$ be the QR decomposition, then the formula reads $\operatorname{retr}_x\xi = QD$ 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. $D_{ij}=\begin{cases} \operatorname{sgn}(R_{ij}+0,5) & \text{if} \; i=j \\ 0 & \, \text{otherwise} \end{cases}.$ This is also the standard retraction. source validateMPoint(M,x) validate that the StPoint x is a valid point on the Stiefel manifold M, i.e. that both dimensions and the rank are correct as well as that all columns are orthonormal. source validateMPoint(M,x,ξ) validate that the StTVector ξ is a valid tangent vector to StPoint x on the Stiefel manifold M, i.e. that both dimensions agree and${\bar x}^{\mathrm{T}}$is skew symmetric. source ξ = zeroTVector(M,x) return a zero vector in the tangent space$T_x\mathcal M$of the StPoint$x\in\mathrm{St}(k,n)\$ on the Stiefel manifold M.

source