I got the term from this paper[1] and I don't understand what it means. It said the "Random Rotation Matrix" can be generated following "Haar Distribution"[2]. I only know the output is a matrix which contains random number but has a property which is the "Rotation" itself but I don't know what the "Rotation" means. I don't know what it means with the Haar distribution too. Then I read the paper[2] about a method for generating this "Random Rotation Matrix"[1] which is suggested by the first paper[1] and it seems so mathematical that it's hard for me to understand it. I research through the internet, books, and papers then I still don't understand what does "Rotation Matrix" mean and how to generate it because of those sources like telling different things. So my question is:

  1. What does "Rotation Matrix"[1] really mean? How does it look like? Can you give me an example of it?
  2. What is "Rotation Center"[1]? Maybe it's coordinate in the matrix where it becomes the centre point of the rotation?
  3. What is "Haar Distribution"[1]? I only know about uniform or normal distribution lol. Is it related to "Haar Measure"?
  4. Are there other good sources which discuss generating this "Random Rotation Matrix"[1]? Are there tips and trick to understanding those really hard and very mathematical paper to know how to generate this "Random Rotation Matrix"[1]?

[1]: K. Chen and L. Liu. A random rotation perturbation approach to privacy preserving data classification. Technical Report, 2005.

[2]: STEWART, G. The efficient generation of random orthogonal matrices with an application to condition estimation. SIAM Journal on Numerical Analysis 17 (1980).

Disclaimer: I'm a computer science student who doesn't good at math. So I need an answer which more understandable by engineer and of course it needs to be codeable. Sorry if the scope of this question is too wide or doesn't specific. Maybe the answer doesn't need to be the solution, I mean it can be just another sources which I can learn to answer my questions.

  • $\begingroup$ It has to do with "groups" in mathematics. Do you know what they are? $\endgroup$ – kimchi lover Oct 6 at 12:24
  • $\begingroup$ I'm afraid not. But I will search for it. $\endgroup$ – Aorstab Oct 6 at 12:38
  • 1
    $\begingroup$ Since there is so much to know about rotation matrices, it is probably not practical for you to learn everything before you do your work. It might help if you explain what you intend to do with your random rotation matrix when you have one. The papers you cited are dealing with rotations in arbitrarily many dimensions; if you just want a rotation in two dimensions, or even three, there are much more specific and more easily-explained things you can do. $\endgroup$ – David K Oct 6 at 15:58
  • $\begingroup$ Oh okay. I will use the rotation matrix for multiplied it to other matrix(so the other matrix got scrambled, i intend to do this) and yes I need many dimensions like the papers said because the other matrix maybe will have hundreds dimensions. $\endgroup$ – Aorstab Oct 6 at 16:06
  • $\begingroup$ I think you have a lot of studying to do, then. How much time do you have for this project? An alternative might be to look for someone else's randomization functions already implemented. $\endgroup$ – David K Oct 7 at 4:33

The set of all matrices of form $\pmatrix{\cos\theta&\sin\theta\\-\sin\theta&\cos\theta}$ form a so-called group: if you multiply two of them you get another one them, and so on. These matrices are rotation matrices. The name of this group is $\mathrm{SO}(2,\mathbb R)$; there are other sets of matrices with similar properties. (Higher dimensions, etc, determinant allowed to be $\pm1$ instead of just $1$, complex matrix entries, etc, creates a whole zoo of other examples of rotation groups.)

In the $\mathrm{SO}(2,\mathbb R)$ example, if $\theta$ is chosen uniformly in $[0,2\pi)$, the resulting matrix will have what is called Haar distribution, which is just uniform distribution over the group in question.

In this $\mathrm{SO}(2,\mathbb R)$ example the "problem" of generating random rotations matrices is "solved" by the recipe in the first 2 paras: pick $\theta$ uniformly, evaluate the trig functions. In higher dimensions things become more complicated.

Added, after comments: Without knowing about your application, and assuming you want $n\times n$ real orthogonal matrices, the following recipe might be useful. Construct an $n\times n$ matrix $G$ whose entries are i.i.d. standard Gaussians. Then obtain its SVD decomposition: $G=UDV$ where $D$ is diagonal and $U$ and $V$ are orthogonal. Then $U$ and $V$ will be independent and be uniformly distributed over the orthogonal group.

  • $\begingroup$ Hmm, okay. May I ask for an example for a higher dimension such as 4x6? Because i need higher dimension rotation matrix, even maybe i need hundreds.. $\endgroup$ – Aorstab Oct 6 at 15:50
  • $\begingroup$ As ordinarily understood, rotation matrices are always invertible, so 4x6 is not what you want. I have added a para to my answer; maybe that might help. The second sentence of David K's comment is worth heeding. $\endgroup$ – kimchi lover Oct 6 at 16:33
  • $\begingroup$ After a lot of research, I found the implementation of the random rotation matrix. It's kinda exactly what I want. SO(n) implemented in Python $\endgroup$ – Aorstab Oct 9 at 5:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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