(*^ ::[ Information = "This is a Mathematica Notebook file. It contains ASCII text, and can be transferred by email, ftp, or other text-file transfer utility. It should be read or edited using a copy of Mathematica or MathReader. If you received this as email, use your mail application or copy/paste to save everything from the line containing (*^ down to the line containing ^*) into a plain text file. On some systems you may have to give the file a name ending with ".ma" to allow Mathematica to recognize it as a Notebook. The line below identifies what version of Mathematica created this file, but it can be opened using any other version as well."; FrontEndVersion = "Macintosh Mathematica Notebook Front End Version 2.2"; MacintoshStandardFontEncoding; fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e8, 24, "Times"; fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e6, 18, "Times"; fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, e6, 14, "Times"; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, a20, 18, "Times"; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, a15, 14, "Times"; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, a12, 12, "Times"; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 14, "Times"; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-5, 12, "Courier"; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R65535, L-5, 12, "Courier"; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B65535, L-5, 12, "Courier"; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, groupLikeGraphics, M7, l34, w405, h197, 12, "Courier"; fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, 10, "Geneva"; fontset = header, inactive, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = leftheader, inactive, L2, 12, "Times"; fontset = footer, inactive, noKeepOnOnePage, preserveAspect, center, M7, 12, "Times"; fontset = leftfooter, inactive, L2, 12, "Times"; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; paletteColors = 128; currentKernel; ] :[font = section; inactive; Cclosed; preserveAspect; cellOutline; backColorRed = 58981; backColorGreen = 58981; backColorBlue = 58981; startGroup] Example 1: Rotations: :[font = input; preserveAspect] Clear["Global`*"] :[font = text; inactive; preserveAspect] Create a 2-D rotation matrix (rot[theta]) which is a function of theta. Display this using MatrixForm. ;[s] 7:0,0;30,1;40,0;65,1;70,0;91,1;101,0;103,-1; 2:4,16,12,Times,0,14,0,0,0;3,13,10,Courier,1,12,0,0,0; :[font = input; preserveAspect] rot[theta_]= {{Cos[theta],Sin[theta]},{-Sin[theta],Cos[theta]}}; rot[theta] //MatrixForm :[font = text; inactive; preserveAspect] Compute the inverse, and define this to be (roti[theta]). Display this using MatrixForm. ;[s] 5:0,0;44,1;55,0;77,1;87,0;89,-1; 2:3,16,12,Times,0,14,0,0,0;2,13,10,Courier,1,12,0,0,0; :[font = input; preserveAspect] roti[theta_] = Inverse[ rot[theta] ] //Simplify; roti[theta] //MatrixForm :[font = text; inactive; preserveAspect] Verify rot.roti = unit matrix. ;[s] 5:0,0;7,1;10,0;11,1;15,0;32,-1; 2:3,16,12,Times,0,14,0,0,0;2,13,10,Courier,1,12,0,0,0; :[font = input; preserveAspect] rot[theta].roti[theta] //Simplify //MatrixForm :[font = text; inactive; preserveAspect] What is the relation between rot and roti. Now compute the Det of rot. ;[s] 9:0,0;29,1;32,0;37,1;41,0;61,1;64,0;68,1;71,0;74,-1; 2:5,16,12,Times,0,14,0,0,0;4,13,10,Courier,1,12,0,0,0; :[font = input; preserveAspect] Det[ rot[theta] ] //Simplify :[font = text; inactive; preserveAspect] We can obtain the Eigenvalues, Eigenvectors, or the entire Eigensystem using built-in Mathematic functions. ;[s] 7:0,0;18,1;29,0;31,1;43,0;59,1;70,0;109,-1; 2:4,16,12,Times,0,14,0,0,0;3,13,10,Courier,1,12,0,0,0; :[font = input; preserveAspect] Eigenvalues[ rot[theta] ] //Simplify :[font = input; preserveAspect] Eigenvectors[ rot[theta] ] //Simplify :[font = input; preserveAspect] Eigensystem[ rot[theta] ] //Simplify :[font = text; inactive; preserveAspect] Now, let's verify that a rotation does not alter the length of a vector. Let's define an arbitrary vector vec1=Array[v,2]. :[font = input; preserveAspect] vec1=Array[v,2] :[font = text; inactive; preserveAspect] The length is: length1= Sqrt[vec1.vec1] :[font = input; preserveAspect] length1= Sqrt[vec1.vec1] :[font = text; inactive; preserveAspect] Define vec2= rot[theta].vec1 :[font = input; preserveAspect] vec2= rot[theta].vec1 :[font = text; inactive; preserveAspect] Then, the second length is: length2= Sqrt[vec2.vec2] :[font = input; preserveAspect] length2= Sqrt[vec2.vec2] //Simplify :[font = text; inactive; preserveAspect] Verify the length is invariant under a rotation. :[font = input; preserveAspect] length1 == length2 :[font = subsection; inactive; preserveAspect; cellOutline; fontColorRed = 65535] Exercise: Try generating the eigensystem this the old-fashioned way. :[font = subsection; inactive; preserveAspect; cellOutline; fontColorRed = 65535; endGroup] Exercise: Verify the eigenvectors are orthonormal. :[font = section; inactive; Cclosed; preserveAspect; cellOutline; backColorRed = 58981; backColorGreen = 58981; backColorBlue = 58981; startGroup] Problem 2: Boosts: Repeat the above exercise for rotations. Don't forget you will need a metric tensor g={1,-1} for this non-Euclidian space. ;[s] 2:0,0;19,1;145,-1; 2:1,19,14,Times,1,18,0,0,0;1,16,12,Times,1,14,0,0,0; :[font = text; inactive; preserveAspect] We can think of a boost as a rotation by a complex angle. This will be a function of hyperbolic functions. :[font = input; preserveAspect] Clear["Global`*"] :[font = text; inactive; preserveAspect] Note, since we are in a non-Euclidian space, we will need to define a metric, g. :[font = input; preserveAspect] g=DiagonalMatrix[{1,-1}]; g //MatrixForm :[font = text; inactive; preserveAspect] Create a 2-D boost matrix (boost[psi]) which is a function of psi. Display this using MatrixForm. ;[s] 7:0,0;27,1;37,0;62,1;65,0;86,1;96,0;98,-1; 2:4,16,12,Times,0,14,0,0,0;3,13,10,Courier,1,12,0,0,0; :[font = input; preserveAspect] boost[psi_]= {{Cosh[psi],Sinh[psi]},{Sinh[psi],Cosh[psi]}}; boost[psi] //MatrixForm :[font = text; inactive; preserveAspect; plain; italic; fontColorRed = 65535] In the following, I've left my comments, but deleted the input. :[font = text; inactive; preserveAspect] Compute the inverse, and define this to be (boosti[psi]). Display this using MatrixForm. ;[s] 5:0,0;44,1;55,0;77,1;87,0;89,-1; 2:3,16,12,Times,0,14,0,0,0;2,15,11,Courier,1,14,0,0,0; :[font = text; inactive; preserveAspect] Verify boost.boosti = unit matrix. ;[s] 5:0,0;7,1;12,0;13,1;19,0;36,-1; 2:3,16,12,Times,0,14,0,0,0;2,15,11,Courier,1,14,0,0,0; :[font = text; inactive; preserveAspect] What is the relation between boost and boosti. Now compute the Det of boost. ;[s] 9:0,0;29,1;34,0;39,1;45,0;65,1;68,0;72,1;77,0;80,-1; 2:5,16,12,Times,0,14,0,0,0;4,15,11,Courier,1,14,0,0,0; :[font = text; inactive; preserveAspect] We can obtain the Eigenvalues, Eigenvectors, or the entire Eigensystem using built-in Mathematic functions. ;[s] 7:0,0;18,1;29,0;31,1;43,0;59,1;70,0;109,-1; 2:4,16,12,Times,0,14,0,0,0;3,15,11,Courier,1,14,0,0,0; :[font = text; inactive; preserveAspect] Now, let's verify that a rotation does not alter the length of a vector. Let's define an arbitrary vector vec1=Array[v,2]. :[font = text; inactive; preserveAspect] The length is: length1= Sqrt[vec1.g.vec1] Note, we must include the metric, g, here. ;[s] 3:0,0;42,1;85,0;86,-1; 2:2,16,12,Times,0,14,0,0,0;1,16,12,Times,0,14,65535,0,0; :[font = text; inactive; preserveAspect] Define vec2= boost[psi].vec1 :[font = text; inactive; preserveAspect] Then, the second length is: length2= Sqrt[vec2.g.vec2] :[font = text; inactive; preserveAspect; endGroup] Verify the length is invariant under a rotation. :[font = section; inactive; Cclosed; preserveAspect; cellOutline; backColorRed = 58981; backColorGreen = 58981; backColorBlue = 58981; startGroup] Example 3: Dihedral-3 Group :[font = input; preserveAspect] Clear["Global`*"] :[font = subsection; inactive; preserveAspect] Find the matrix representation :[font = text; inactive; preserveAspect] We now consider the dihedral 3-group. This is can be thought of as the group that describes the symmetry of a equilateral triange. A 2-D matrix representation is given by the following. First, we have a rotation by 1/3 of a revolution: :[font = input; preserveAspect] r={{ Cos[th], -Sin[th] } ,{ Sin[th], Cos[th]}} /.{th->2 Pi/3}; r //MatrixForm :[font = text; inactive; preserveAspect] Next, we have a flip operation. This flips the x-axis, while leaving the y-axis unchanged. :[font = input; preserveAspect] f= DiagonalMatrix[{-1,1}]; f //MatrixForm :[font = text; inactive; preserveAspect] We'll also need the 2-D identity matrix: :[font = input; preserveAspect] id= DiagonalMatrix[{1,1}]; id //MatrixForm :[font = subsection; inactive; preserveAspect] Find the order of the r and f sub-groups. :[font = text; inactive; preserveAspect] r and f form cyclic groups separately. Let's start by finding the order of these groups. We find it convenient to use MatrixPower :[font = input; preserveAspect; startGroup] ?MatrixPower :[font = print; inactive; preserveAspect; endGroup] MatrixPower[mat, n] gives the nth matrix power of mat. :[font = input; preserveAspect] Table[ MatrixPower[f,n] ,{n,1,2}] //N //MatrixForm :[font = text; inactive; preserveAspect] Notice that f^2 = id, the identity matrix. Therefore, f represents a sub-group of 2 elements, {1,f} since f^2=1. Let's do the same for r. :[font = input; preserveAspect] Table[ MatrixPower[r,n] ,{n,1,3}] //N[#,3]& //MatrixForm :[font = text; inactive; preserveAspect] Notice that r^3 = id, the identity matrix. Therefore, r represents a sub-group of 3 elements, {1,r,r^2} since r^3=1. :[font = subsection; inactive; preserveAspect; startGroup] Do r & f commute? :[font = text; inactive; preserveAspect] With Mathematica, the easiest way is to try it: ;[s] 3:0,0;5,1;16,0;48,-1; 2:2,16,12,Times,0,14,0,0,0;1,16,12,Times,2,14,0,0,0; :[font = input; preserveAspect] r.f //MatrixForm :[font = input; preserveAspect] f.r //MatrixForm :[font = input; preserveAspect; endGroup] r.f-f.r //MatrixForm :[font = text; inactive; preserveAspect] Nope, they don't commute. :[font = subsection; inactive; preserveAspect] Combine G1={1,r,r^2} and G2={1,f} :[font = text; inactive; preserveAspect] Let's make a multiplication table for this group. We start with the sub-groups we have identified, group1, group2. :[font = input; preserveAspect] group1={id,r,r.r}; group2={id,f}; :[font = text; inactive; preserveAspect] We now use Outer to multiply each element of group1 by each element of group2. (Note, we use the form Outer[ , , ,1] to tell Outer to use the upper level in extracting element of group1 and group2. To see what I mean, try it without the ",1]".) :[font = text; inactive; preserveAspect] To better understand the output of Outer, I construct this dummy example. :[font = input; preserveAspect] Outer[Dot, {1,"r","r^2"},{1,"f"},1] //MatrixForm :[font = input; preserveAspect] Outer[Dot, group1,group2,1] //N[#,3]& //MatrixForm :[font = text; inactive; preserveAspect] This multiplication table gives all the elements of the group. :[font = text; inactive; preserveAspect] Prove this, either by trial and error, or by analtyical methods. For example, an arbitrary string of matrices yields: :[font = input; preserveAspect] f.r.f.f.r //N[#,3]& //MatrixForm :[font = text; inactive; preserveAspect] which we identify as the {2,2} element of the multiplication table, and therefore, this combination should be equal to r.f. :[font = input; preserveAspect; endGroup] r.f == f.r.f.f.r :[font = section; inactive; Cclosed; preserveAspect; cellOutline; backColorRed = 58981; backColorGreen = 58981; backColorBlue = 58981; startGroup] Problem 4: Dihedral-4 Group Repeat the above exercise, but modify this for the Dihedral 4 group. ;[s] 2:0,0;29,1;99,-1; 2:1,19,14,Times,1,18,0,0,0;1,16,12,Times,1,14,0,0,0; :[font = input; preserveAspect] Clear["Global`*"] :[font = input; preserveAspect] We now consider the dihedral 4-group. This is can be thought of as the group that describes the symmetry of a square. ;[s] 1:0,1;120,-1; 2:0,12,10,Courier,1,12,0,0,0;1,15,12,Times,0,14,0,0,0; :[font = input; preserveAspect; fontColorRed = 65535; endGroup] Copy from Example 3, and modify. ;[s] 1:0,1;34,-1; 2:0,12,10,Courier,1,12,65535,0,0;1,15,12,Times,0,14,65535,0,0; :[font = section; inactive; preserveAspect; cellOutline; backColorRed = 58981; backColorGreen = 58981; backColorBlue = 58981] Optional Problem 5: Repeat the above exercise, but for other groups, eg., O(n), or SU(n), ... ;[s] 2:0,0;22,1;96,-1; 2:1,19,14,Times,1,18,0,0,0;1,16,12,Times,1,14,0,0,0; ^*)