Symmetric matrices
Manifolds.SymmetricMatrices
โ TypeSymmetricMatrices{n,๐ฝ} <: AbstractDecoratorManifold{๐ฝ}
The AbstractManifold
$\operatorname{Sym}(n)$ consisting of the real- or complex-valued symmetric matrices of size $nรn$, i.e. the set
\[\operatorname{Sym}(n) = \bigl\{p โ ๐ฝ^{nรn}\ \big|\ p^{\mathrm{H}} = p \bigr\},\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transpose, and the field $๐ฝ โ \{ โ, โ\}$.
Though it is slightly redundant, usually the matrices are stored as $nรn$ arrays.
Note that in this representation, the complex valued case has to have a real-valued diagonal, which is also reflected in the manifold_dimension
.
Constructor
SymmetricMatrices(n::Int, field::AbstractNumbers=โ)
Generate the manifold of $nรn$ symmetric matrices.
ManifoldsBase.Weingarten
โ MethodY = Weingarten(M::SymmetricMatrices, p, X, V)
Weingarten!(M::SymmetricMatrices, Y, p, X, V)
Compute the Weingarten map $\mathcal W_p$ at p
on the SymmetricMatrices
M
with respect to the tangent vector $X \in T_p\mathcal M$ and the normal vector $V \in N_p\mathcal M$.
Since this a flat space by itself, the result is always the zero tangent vector.
ManifoldsBase.check_point
โ Methodcheck_point(M::SymmetricMatrices{n,๐ฝ}, p; kwargs...)
Check whether p
is a valid manifold point on the SymmetricMatrices
M
, i.e. whether p
is a symmetric matrix of size (n,n)
with values from the corresponding AbstractNumbers
๐ฝ
.
The tolerance for the symmetry of p
can be set using kwargs...
.
ManifoldsBase.check_vector
โ Methodcheck_vector(M::SymmetricMatrices{n,๐ฝ}, p, X; kwargs... )
Check whether X
is a tangent vector to manifold point p
on the SymmetricMatrices
M
, i.e. X
has to be a symmetric matrix of size (n,n)
and its values have to be from the correct AbstractNumbers
.
The tolerance for the symmetry of X
can be set using kwargs...
.
ManifoldsBase.is_flat
โ Methodis_flat(::SymmetricMatrices)
Return true. SymmetricMatrices
is a flat manifold.
ManifoldsBase.manifold_dimension
โ Methodmanifold_dimension(M::SymmetricMatrices{n,๐ฝ})
Return the dimension of the SymmetricMatrices
matrix M
over the number system ๐ฝ
, i.e.
\[\begin{aligned} \dim \mathrm{Sym}(n,โ) &= \frac{n(n+1)}{2},\\ \dim \mathrm{Sym}(n,โ) &= 2\frac{n(n+1)}{2} - n = n^2, \end{aligned}\]
where the last $-n$ is due to the zero imaginary part for Hermitian matrices
ManifoldsBase.project
โ Methodproject(M::SymmetricMatrices, p, X)
Project the matrix X
onto the tangent space at p
on the SymmetricMatrices
M
,
\[\operatorname{proj}_p(X) = \frac{1}{2} \bigl( X + X^{\mathrm{H}} \bigr),\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transposed.
ManifoldsBase.project
โ Methodproject(M::SymmetricMatrices, p)
Projects p
from the embedding onto the SymmetricMatrices
M
, i.e.
\[\operatorname{proj}_{\operatorname{Sym}(n)}(p) = \frac{1}{2} \bigl( p + p^{\mathrm{H}} \bigr),\]
where $โ ^{\mathrm{H}}$ denotes the Hermitian, i.e. complex conjugate transposed.