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 <: 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$.
Manopt.StTVector
— Type.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
.
Constructor
StTVector(ξ)
where ξ
is an $n\times k$ Matrix
that satisfies the above.
Manopt.Stiefel
— Type.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.
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.