MatrixLieAlgebra {rgeomstats} | R Documentation |
Abstract Class for Matrix Lie Algebras
Description
There are two main forms of representation for elements of a
matrix Lie algebra implemented here. The first one is as a matrix, as
elements of R^{n \times n}
. The second is by choosing a basis and
remembering the coefficients of an element in that basis. This basis will
be provided in child classes (e.g. SkewSymmetricMatrices
).
Super classes
rgeomstats::PythonClass
-> rgeomstats::Manifold
-> rgeomstats::VectorSpace
-> MatrixLieAlgebra
Public fields
n
An integer value representing the number of rows and columns in the matrix representation of the Lie algebra.
Methods
Public methods
Inherited methods
rgeomstats::PythonClass$get_python_class()
rgeomstats::PythonClass$set_python_class()
rgeomstats::Manifold$belongs()
rgeomstats::Manifold$is_tangent()
rgeomstats::Manifold$random_point()
rgeomstats::Manifold$random_tangent_vec()
rgeomstats::Manifold$regularize()
rgeomstats::Manifold$set_metric()
rgeomstats::Manifold$to_tangent()
rgeomstats::VectorSpace$projection()
Method new()
The MatrixLieAlgebra
class constructor.
Usage
MatrixLieAlgebra$new(dim, n, ..., py_cls = NULL)
Arguments
dim
An integer value specifying the dimension of the Lie algebra as a real vector space.
n
An integer value representing the number of rows and columns in the matrix representation of the Lie algebra.
...
Extra arguments to be passed to parent class constructors. See
VectorSpace
andManifold
classes.py_cls
A Python object of class
MatrixLieAlgebra
. Defaults toNULL
in which case it is instantiated on the fly using the other input arguments.
Returns
An object of class MatrixLieAlgebra
.
Method baker_campbell_hausdorff()
Calculates the Baker-Campbell-Hausdorff approximation of given order.
Usage
MatrixLieAlgebra$baker_campbell_hausdorff(matrix_a, matrix_b, order = 2)
Arguments
matrix_a
A numeric array of shape
... \times n \times n
specifying a matrix or a sample of matrices.matrix_b
A numeric array of shape
... \times n \times n
specifying a matrix or a sample of matrices.order
An integer value specifying the order to which the approximation is calculated. Note that this is NOT the same as using only
e_i
withi < \mathrm{order}
. Defaults to2L
.
Details
The implementation is based on
Casas and Murua (2009) with the
pre-computed constants taken from
(). Our coefficients are
truncated to enable us to calculate BCH up to order 15
. This
represents
Z = \log \left( \exp(X) \exp(Y) \right)
as an infinite linear combination of the form
Z = \sum_i z_i e_i
where
z_i
are rational numbers and e_i
are iterated Lie brackets
starting with e_1 = X
, e_2 = Y
, each e_i
is given by
some (i^\prime,i^{\prime\prime})
such that e_i =
[e_i^\prime, e_i^{\prime\prime}]
.
Returns
A numeric array of shape ... \times n \times n
storing a
matrix or a sample of matrices corresponding to the BCH
approximation(s) between input matrices.
Method basis_representation()
Computes the coefficients of matrices in the given basis.
Usage
MatrixLieAlgebra$basis_representation(matrix_representation)
Arguments
matrix_representation
A numeric array of shape
... \times n \times n
specifying a matrix or a sample of matrices in its matrix representation.
Returns
A numeric array of shape ... \times \mathrm{dim}
storing a
matrix or a sample of matrices in its basis representation.
Method matrix_representation()
Compute the matrix representation for the given basis coefficients.
Usage
MatrixLieAlgebra$matrix_representation(basis_representation)
Arguments
basis_representation
A numeric array of shape
... \times \mathrm{dim}
storing a matrix or a sample of matrices in its basis representation.
Details
Sums the basis elements according to the coefficients given in basis representation.
Returns
A numeric array of shape ... \times n \times n
specifying a
matrix or a sample of matrices in its matrix representation.
Method clone()
The objects of this class are cloneable with this method.
Usage
MatrixLieAlgebra$clone(deep = FALSE)
Arguments
deep
Whether to make a deep clone.
Author(s)
Stefan Heyder