I am a functional analyst by training, but I am doing some numerical experiments which require me to minimise continuous functions $f:SO(3)\longrightarrow [0,+\infty)$ using a computer (I know that each $f$ will be continuous, but cannot safely assume anything better).

I have access to two Nelder-Mead implementations: one which works in $SO(3)$ directly (using slerp and Karcher means to modify the simplex), and one which requires me to supply a parameterisation through which $f$ can be pulled back to $\mathbb{R}^3$.

My question is really just this: is there any intrinsic problem with using Euler-angles or an exponential parametrisation and minimising pullback of $f$ to $\mathbb{R}^3$ instead of $f$ itself?

My intuitive feeling is that, since I don't know anything about $f$ anyway, composing with something else is unlikely to hurt as long as it doesn't overly restrict where my simplex ends up going. Working in $\mathbb{R}^3$ has the advantage of being computationally cheaper, but the amount of literature describing co-ordinate free approaches makes me question whether this it's really a sensible option.

Thanks in advance for any advice!

  • 1
    $\begingroup$ I should probably say: what I'm really interested in here is whether pulling back to $\mathbb{R}^3$ is intrinsically problematic when using Nelder-Mead for this type of problem (each $f$ actually represents a toy problem where I already know the global minimum). $\endgroup$
    – DCM
    Nov 18, 2017 at 17:28
  • 2
    $\begingroup$ Very non-expert comment: Euler angles are numerically unstable in some area of the sphere (this is called gimbal lock), so I'd think they are not very convenient tool for numerical experiments. As far as I know, this issue is usually resolved by using the double cover $\mathrm{SU}(2)$ (or equivalently the unit quaternions). $\endgroup$ Nov 18, 2017 at 17:51
  • 1
    $\begingroup$ A small trick I've used successfully: each iteration is a small step. So for each iteration you only need a relative rotation that is close to the identity. Many parameterisations behave well for rotations near the identity. So if your algorithm can be rearranged to work with the increment in the rotation at each step then there is no problem. $\endgroup$
    – Dan Piponi
    Nov 18, 2017 at 18:15
  • 1
    $\begingroup$ Any and all comments are very welcome! I think my preference would probably be using the exponential map given the choice (I mentioned Euler angles simply because it was the first thing I tried when I coded this up). I have heard of people using the unit quaternions, but I'm not sure that's so different from working in $SO(3)$ without co-ordinates (apart from maybe reducing the number of multiplications slightly). $\endgroup$
    – DCM
    Nov 18, 2017 at 18:20
  • $\begingroup$ Taking small steps during the iteration does seem sensible. However, it also restricts how far the simplex can travel for a given number of function evaluations, and isn't always under my direct control: I guess I could restart my iteration if I find the step-size is getting too big... $\endgroup$
    – DCM
    Nov 18, 2017 at 18:46


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.