2

I am looking to solve an optimization problem which has a particular rotation matrix (i.e. orthonormal basis) as its solution. More specifically. I'm looking to solve the problem numerically with gradient descent, so effectively what I need to make it work is a function that, for some set of parameters, is able to generate any rotation matrix, but also generates only rotation matrices.

My first idea was to use Givens rotations, so that my function is defined over a set of $\binom{n}{2}$ angles that rotate around each (n-2)-dimensional main plane. The overall function would be:

$f(\vec{\theta}) := \prod_{i,a>b} G_{a,b}(\theta_i)$

i.e. the product of all the main rotations, given arbitrary angles $\vec{\theta}$. However, generating this matrix symbolically for each optimization is a bit expensive, and I was wondering if there is a simpler formulation of a (differentiable) function that achieves the same: given some parameters / angles, generate an orthonormal matrix.

  • One such parameterization is given here: https://math.stackexchange.com/a/1365121/153694, also the discussion and links here: https://physics.stackexchange.com/questions/377001/is-there-a-canonical-way-to-parameterize-elements-of-operatornameson – Sean Lake Feb 22 '18 at 22:12

1 Answers1

1

Turns out the Cayley Transform achieves this: https://en.wikipedia.org/wiki/Cayley_transform

I can generate a skew-symmetric matrix $A$ (with $\binom{k}{2}$ free parameters $\theta$), then generate a orthonormal basis $Q$ using:

$Q=(I+A)^{-1}(I-A)$.

I can then optimize my function of A with respect to $\theta$. This is pretty similar to my previous approach, but a bit similar to formulate.