Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Explicit construction of SO(n)

  1. Jul 11, 2011 #1
    I would love to know how we can contruct SO(n) matrices. I know we get them from Clifford algebras somehow.

    I am especially interested in SO(8).

    Could anybody help?

    thank you
  2. jcsd
  3. Jul 11, 2011 #2
    I once had a discussion on this subject on a MySpace forum (defunct now, alas). We satisfied ourselves that the following two statements are true:

    1. For any real n x n antisymmetric matrix A (i.e., [itex]A = -A^T[/itex]) [itex]e^A \in SO(n)[/itex].
    2. For any [itex]O \in SO(n)[/itex], there exists an antisymmetric matrix A such that [itex]O = e^A[/itex].

    For instance,

    A & = &
    0 & \theta \\
    -\theta & 0
    \right) \\
    e^A & = & \left(
    \cos (\theta ) & \sin (\theta ) \\
    -\sin (\theta ) & \cos (\theta )

    This is a surjection, as the example shows -- you can change theta by any multiple of 2pi and get the same e^A. Not sure if this does what you want, but it's pretty close, it seems to me.
  4. Jul 11, 2011 #3


    User Avatar
    Staff Emeritus
    Science Advisor
    Education Advisor
    2016 Award

    Relative a suitable orthogonal basis, the elements of SO(n) are of the form

    R_1 & ... & 0 & 0 & ... & 0\\
    0 & \ddots & 0 & 0 & ... & 0\\
    0 & ... & R_m & 0 & ... & 0\\
    0 & ... & 0 & \pm 1 & ... & 0\\
    0 & ... & 0 & 0 &\ddots & 0\\
    0 & ... & 0 & 0 & ... & \pm 1\\

    Where the Rk are rotation matrices and thus have the form

    [tex]\left(\begin{array}{cc} \cos(\theta) & -\sin(\theta)\\ \sin(\theta) & \cos(\theta)\\ \end{array}\right)~\text{or}~\left(\begin{array}{cc} \sin(\theta) & \cos(\theta)\\ \cos(\theta) & -\sin(\theta)\\ \end{array}\right)[/tex]

    The only thing you'll need to make sure is that A has positive determinant.
  5. Jul 12, 2011 #4
    Micromass, are you saying that every element of SO(n) looks basically the same, only the angles in the rotation matrices vary for each element. How is the subscript m in R related to the n of SO(n)?

    How many elements do SO(4), SO(6), SO(8) have?

    The matrices you gave are those of the Lie algebra of SO(n), right?

    Also, I would really like to see the construction of SO(n) or Spin groups from the Clifford algebras as it is done in the document that I attached below. Unfortunately, I don't understand it poperly. Especially, all the indices in the equations (2) till (6) do not make sense to me.

    I really would love to work out explicitly for SO(4), SO(6) and so on, as the author advices, but I do not know how....

    Attached Files:

  6. Jul 12, 2011 #5
    The differ in the angles for the rotation matrices, AND in the choice of "a suitable orthogonal basis". This is my objection to this as an explicit method for constructing elements of SO(n). You have to also come up with orthogonal bases, which is the problem of finding elements of O(n), which is essentially the problem you started with. What's more, the decomposition of a matrix in SO(n) in this form is not unique -- there are O's and R's such that [itex]O_1 R_1 O_1^T = O_2 R_2 O_2^T = O_3 R_3 O_3^T[/itex]...

    R is an n x n matrix. Thus m is any integer 0 <= m <= n/2. You fill out the rest of the diagonal with 1s and -1s.

    Well, it's infinite, of course. The number of degrees of freedom in SO(n) is [itex]\frac{n(n-1)}{2}[/itex]. You can see this from the construction I gave from antisymmetric matrices. Choose any [itex]\frac{n(n-1)}{2}[/itex] real numbers and use them to fill out the upper triangle of an n x n matrix. Fill out the lower diagonal with their negatives, leave the diagonal 0, and you have an antisymmetric matrix A. Exponentiate it, and you have an element of SO(n). You don't have to filter by determinant -- all such matrices have determinant 1, out of the box.

    If you want to think about this a little more intuitively, to specify an elementary rotation, one needs to specify an angle and a plane. (Not an axis -- the axis of rotation idea only works in 3 dimensions, because in 3 d there is a unique plane through the origin perpendicular to an axis.) Basis planes in n dimensions are the plane that contains x_1 and x_2, the plane that contains x_1 and x_3, ..., x_2 and x_3, ... x_n-1 and x_n -- [itex]\frac{n(n-1)}{2}[/itex] of them. To fully specify a rotation in n dimensions, you need an angle for each of those planes. The planes are directed, so the 2,1 angle is the negative of the 1,2 angle. Those angles are the elements of the upper and lower triangles respectively of an antisymmetric matrix A.

    Antisymmetric matrices are the elements of the Lie algebra of SO(n). However, the statements we (the MySpace Mathematics group) made about the mapping are stronger than that, since they imply a global correspondence, not just a local differential mapping.

    Sorry, I'm not familiar with this.
  7. Jul 12, 2011 #6
    thanks, pmsrw3 (btw, a fun name you picked there!)

    I meant the number of generators. I believe they are 2n. Right?
  8. Jul 12, 2011 #7
    [itex]\frac{n(n-1)}{2}[/itex], as I discussed above.
  9. Jul 12, 2011 #8
    Very interesting question! I'm going to try and wing it using my knowledge of Geometric Algebra.

    pmsrw3's observations from myspace look an awful lot like how you make rotors out of bivectors. That's the approach I'm going to take.

    First, though: If you want to understand the geometric "intuition" behind the Clifford Algebra, an excellent resource is the first handout:
    (note that it is a gzipped postscript file), found from this page:
    I find the first few chapters make for breezy, engaging reading. If you're impatient, section 2.4 talks about reflections, and section 2.5 builds on that to make rotations.

    By the way: the above link is essentially identical to the first few chapters of the excellent "Geometric Algebra for Physicists" by Doran and Lasenby. If you can find that at your library, it's always nice to read from an actual, physical book. :)

    Now: about those rotation matrices!

    The essence of the above reading is that we don't need rotation matrices; it is conceptually simpler to compute rotations using "rotors". As pmsrw3 pointed out, rotations are parameterized in terms of angles and planes. A rotor is simply the combination of the angle, [itex]\theta[/itex], and the unit bivector [itex]B[/itex] which represents the plane.(1) To rotate a vector [itex]x[/itex] into a vector [itex]\bar{x}[/itex], we apply the double-sided transformation law:
    [tex]\bar{x} = e^{-B\theta/2}xe^{B\theta/2}[/tex]

    This (coordinate-free!) expression tells us everything we could want to know about the rotation. In particular, we can get the rotation matrix from it. The strategy is to pick a particular basis, [itex]\gamma_i, i \in \{1 \ldots n \}[/itex], so that
    [tex]x = x_i \gamma_i[/tex]
    For simplicity, assume the [itex]\{\gamma_i\}[/itex] are orthonormal. Define our rotation matrix [itex]R_{ij}[/itex] by its action on the components of a vector:
    [tex]\bar{x}_i = R_{ij} x_j[/tex]
    Naturally, this is true for any [itex]x[/itex]. In particular, when [itex]x[/itex] is a basis vector, we find that the components of [itex]\bar{(e_j)}[/itex] are simply the entries in the [itex]j[/itex]th column of [itex]R_{ij}[/itex].

    This is how you could compute the entries using Clifford Algebra: rotate the basis vectors one at a time, and take the components relative to the basis. Explicitly:
    [tex]R_{ij} = \gamma_i \cdot (e^{-B\theta/2}\gamma_j e^{B\theta/2})[/tex]

    I think the hard part would be actually computing the exponentiated bivectors. Especially if you're interested in something like SO(8)! The exponential would have one scalar term, 28 bivector terms, 70 quadvector terms, 28 hexvector terms, and one pseudoscalar term.

    But my main point was to try to make the conceptual connection. Hope it helped.

    (1) Technically, in 4 or more dimensions, a bivector might not represent a single plane in the most general case. That's because we can have multiple planes which are completely independent, in the sense of having no lines in common. Rotations in the [itex]e_1e_2[/itex] plane are independent of rotations in the [itex]e_3e_4[/itex] plane, and commute with them.
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook