rand() in rotationsFactory uniformly distributed?

33 views
Skip to first unread message

Julieta

unread,
Mar 16, 2014, 11:28:09 PM3/16/14
to manopt...@googlegroups.com
Does the method rand() from the rotationsFactory returns rotation matrices uniformly distributed over SO(n)?

If not, could you please give me a head start on how to do so?

jlt...@gmail.com

unread,
Mar 16, 2014, 11:34:13 PM3/16/14
to manopt...@googlegroups.com
I see in the code that you refer to Diaconis and Shahshahani 1987, so they are. Sorry about that.

Nicolas Boumal

unread,
Mar 24, 2014, 12:46:16 PM3/24/14
to manopt...@googlegroups.com
Thank you for your message, Julieta.

It's good that you posted this question actually. Since we do not always know how to produce uniformly random samples on any given manifold, the specification of what the M.rand() method does is quite elusive in the general documentation. Fortunately, in the particular case of rotations, we can produce uniform samples (according to the Haar measure) and hence we do that. The paper by Diaconis and Shahshahani 1987 gives an algorithm to generate points on the orthogonal group (two copies of the special orthogonal group). Please also note the more recent paper by Mezzadri which points out how to avoid typical mistakes in implementing this algortihm: http://arxiv.org/pdf/math-ph/0609050.pdf.

Don't hesitate to also let us know what you use Manopt for: we're always interested!

Cheers,
Nicolas
Reply all
Reply to author
Forward
0 new messages