MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a simple way to parametrize the orthogonal group O(3) of 3 by 3 orthogonal matrices?

share|cite|improve this question
The question needs more detail. What does it mean to "parametrize" a matrix group like this? (And what is the motivation?) – Jim Humphreys Nov 18 '10 at 15:05
Though this appeared in Neil Strickland's answer below, I mention for emphasis that the most useful answer is the quaternion parametrization of SO(3), a.k.a. Euler-Rodrigues formula: – Jairo Bochi May 2 at 7:46
up vote 11 down vote accepted

The general element is $\pm\exp(A)$ where $A$ is skew-symmetric. (This gives each element infinitely often). This trick essentially works for all compact Lie groups.

There is also the Cayley parameterization: $(I+A)(I-A)^{-1}$ for skew-symmetric $A$ is the general element of $SO(3)$ which lacks an eigenvalue $-1$ (so isn't a half-turn.) This parameterizes all such matrices once each.

share|cite|improve this answer

First, if $A\in O(3)$ then either $A$ or $-A$ is in $SO(3)$ so you can just restrict attention to $SO(3)$. For that, one answer is the Cayley transform: let $so(3)$ denote the set of $3\times 3$ antisymmetric matrices (which is homeomorphic to $\mathbb{R}^3$) and put

$U=\{R\in SO(3) : \det(R+I)\neq 0\}$

Then $U$ is a dense open subset of $SO(3)$ and there is a homeomorphism $f:so(3)\to U$ given by $f(A)=(I+A)(I-A)^{-1}$.

Another answer is to use the double cover $g:S^3\to SO(3)$ given by the conjugation action unit quaternions on purely imaginary quaternions. There is an explicit formula here:

share|cite|improve this answer
+1 for mentioning the quaternion connection, which I believe is used frequently in computer vision, and computer graphics. – Suvrit Nov 18 '10 at 15:45
I'd also like to support Suvrit's view that quaternions are a good way to parameterize rotations. Very clean and simple to implement in software. – Deane Yang Nov 18 '10 at 19:19
BTW, an interesting (though not very well written) Wikipedia article on the quaternion parametrization is this one: – Jairo Bochi May 2 at 7:48

I assume that you are interested in the case of matrices with real entries. Perhaps one should reduce the problem to $SO(3)$, since $O(3)$ has two connected components, or we may use the determinant $\pm1$ as one parameter. A natural parametrization is unlikely, or will not be injective, because $SO(3)$ has a non-trivial topology: its fundamental group is $\mathbb Z/2\mathbb Z$. One possibility is to give a direction $\vec u$ (a unitary vector) of the axis of rotation, and the angle $\theta\in\mathbb R/2\pi\mathbb Z$ of this rotation. But then$(-\vec u,\theta+\pi)\sim(\vec u,\theta)$, and all pairs $(\vec u,0)$ yield the same element $I_3$.

share|cite|improve this answer
This is a way to construct a diffeomorphism with $\mathbf R P^3$. – Claudio Gorodski Jun 3 '11 at 12:59

If there were a really simple way we wouldn't need the concept of "gimbal lock" ( In other words the manifold in question is compact but isn't the 3-torus, and pretending it is has to break down somewhere. The unit quaternions are the "slickest" surrogate, but "parametrize" implies charts and global charts aren't going to work out "simply".

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.