Group Abstract Group Abstract

Message Boards Message Boards

1
|
8.5K Views
|
7 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Find the order of a matrix group element?

Posted 3 years ago

For a matrix group, the order of an element a of a group, is the smallest positive integer m such that a^m = e, where e denotes the identity element of the group, and a^m denotes the product of m copies of a. If no such m exists, the order of a is infinite, as described here: https://en.wikipedia.org/wiki/Order_(group_theory).

So, I want to find the order of a matrix group element. Any hints for doing this in Mathematica?

Regards,
HZ

POSTED BY: Hongyi Zhao
7 Replies
Posted 3 years ago

Thank you. Got it.

In[1]:= LCM[10, 12]

Out[1]= 60
POSTED BY: Hongyi Zhao

LCM=Least Cmmon Multiple. In this setting, if you have a tenth root and a twelfth root, take the LCM of 10 and 12.

POSTED BY: Daniel Lichtblau

Without loss of generality, we can work with 2-dimensional matrices.

The Abelian group of order 3 has these elements:

In[429]:= A3 = {IdentityMatrix[2], RotationMatrix[2 \[Pi]/3], 
  RotationMatrix[4 \[Pi]/3]}

Out[429]= {{{1, 0}, {0, 1}}, {{-(1/2), -(Sqrt[3]/2)}, {Sqrt[3]/
   2, -(1/2)}}, {{-(1/2), Sqrt[3]/2}, {-(Sqrt[3]/2), -(1/2)}}}

We can define a function to compute the order of a group element by iterating over matrix multiplication:

In[430]:= groupElementOrder[m_?MatrixQ] := 
 Module[{n = 1, e = IdentityMatrix[Length[m]]}, 
  NestWhile[(n++; Dot[#, m]) &, m, # != e &]; n]

NestWhile does the iteration, and terminates when the matrix product equals the identity matrix. Now, we can test it on the group A3:

In[431]:= groupElementOrder /@ A3

Out[431]= {1, 3, 3}
POSTED BY: Robert Nachbar
Posted 3 years ago

Hi Robert Nachbar,

Thank you for your wonderful trick. It works like a charm.

POSTED BY: Hongyi Zhao

I am not sure exactly what you are asking, but perhaps this might give you an idea for a direction.

Here is the finite list generated by repeated multiplications by I:

FixedPoint[Union[Join[#, I #]] &, {1}, 1000]

So the order is:

Length[  FixedPoint[Union[Join[#, I #]] &, {1}, 1000]]

For multiplications by Exp[Pi I/12]:

FixedPoint[Union[Join[#, Exp[Pi I/12] #]] &, {1}, 10000]
POSTED BY: W. Craig Carter
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard
Be respectful. Review our Community Guidelines to understand your role and responsibilities. Community Terms of Use