"Root systems and Dynkin diagrams(mathematica)"의 두 판 사이의 차이

수학노트
둘러보기로 가기 검색하러 가기
1번째 줄: 1번째 줄:
<h5>root systems and Dynkin diagrams</h5>
+
*  
 
 
# Clear[Unirt, rt, r, alp]<br> Clear[a, b, c, d, e6, e7, e8, f, g]<br> (*choose the one of types above*)<br> ty := a<br> (*define the rank*)<br> r := 3<br> (* coordinates for roots *)<br> Unirt[a, i_] := UnitVector[r + 1, i] - UnitVector[r + 1, i + 1]<br> Unirt[b, i_] :=<br>  If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i], UnitVector[r, r]]<br> Unirt[c, i_] :=<br>  If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i], 2*UnitVector[r, r]]<br> Unirt[d, i_] :=<br>  If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i],<br>   UnitVector[r, r - 1] + UnitVector[r, r]]<br> Unirt[g, 1] := {1, -1, 0}<br> Unirt[g, 2] := {-1, 2, -1}<br> Unirt[f, 1] := {1, -1, 0, 0}<br> Unirt[f, 2] := {0, 1, -1, 0}<br> Unirt[f, 3] := {0, 0, 1, 0}<br> Unirt[f, 4] := {-1, -1, -1, -1}/2<br> Unirt[e6, 1] := {0, 0, 0, 0, 0, 0, 0, 1, \[Minus]1}<br> Unirt[e6, 2] := {0, 0, 0, 0, 0, 0, 1, -1, 0}<br> Unirt[e6, 3] := {1, -2, 1, -2, 1, 1, -2, 1, 1}/3<br> Unirt[e6, 4] := {0, 0, 0, 1, -1, 0, 0, 0, 0}<br> Unirt[e6, 5] := {0, 0, 0, 0, 1, -1, 0, 0, 0}<br> Unirt[e6, 6] := {0, 1, -1, 0, 0, 0, 0, 0, 0}<br> Unirt[e7, i_] :=<br>  Piecewise[{{UnitVector[r + 1, i + 2] - UnitVector[r + 1, 1 + i],<br>     i < 7}, {{1/2, 1/2, 1/2, 1/2, -(1/2), -(1/2), -(1/2), -(1/2)},<br>     i == 7}}, {i, 1, r}]<br> Unirt[e8, i_] :=<br>  Piecewise[{{UnitVector[r, i] - UnitVector[r, 1 + i],<br>     i < 7}, {UnitVector[r, i] + UnitVector[r, i - 1],<br>     i == 7}, {{-(1/2), -(1/2), -(1/2), -(1/2), -(1/2), -(1/2), -(1/<br>         2), -(1/2)}, i == 8}}, {i, Range[r]}]<br> rt[i_] := Unirt[ty, i]<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> CA := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors of ", ty, r]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix of ", ty, r]<br> CA // MatrixForm<br> Print["Dynkin diagram of ", ty, r]<br> ed[i_, j_] := If[i < j, b[i, j] b[j, i], 0]<br> Ed := Table[ed[i, j], {i, 1, r}, {j, 1, r}]<br> Ed // MatrixForm<br> GraphPlot[Ed, VertexLabeling -> True, MultiedgeStyle -> True]<br> ls[i_] := Sqrt[Dot[rt[i], rt[i]]]<br> Print["length of each root"]<br> Table[{\[Alpha][i], ls[i]}, {i, 1, r}] // TableForm<br> Print["eigenvalues and eigenvectors of Cartan matrix"]<br> Eigenvalues[CA]<br> Eigenvectors[CA]<br> Print["Incidence matrix"]<br> Inc := 2 IdentityMatrix[r] - CA<br> Inc // MatrixForm<br> Print["eigenvalues of incidence matrix"]<br> Eigenvalues[Inc]<br> (* coxeter number *)<br> Print["Coxeter number"]<br> Cox[a, i_] := i + 1<br> Cox[b, i_] := 2 i<br> Cox[c, i_] := 2 i<br> Cox[d, i_] := 2 i - 2<br> Cox[e6, i_] := 12<br> Cox[e7, i_] := 18<br> Cox[e8, i_] := 30<br> Cox[f, i_] := 12<br> Cox[g, i_] := 6<br> Cox[ty, r]<br> (* dual coxeter number *)<br> Print["dual Coxeter number"]<br> dCox[a, i_] := i + 1<br> dCox[b, i_] := 2 i - 1<br> dCox[c, i_] := i + 1<br> dCox[d, i_] := 2 i - 2<br> dCox[e6, i_] := 12<br> dCox[e7, i_] := 18<br> dCox[e8, i_] := 30<br> dCox[f, i_] := 9<br> dCox[g, i_] := 4<br> dCox[ty, r]
 
 
 
 
 
 
 
 
 
 
 
<h5>related items</h5>
 
 
 
* [[Root Systems and Dynkin diagrams|]]
 
  
 
 
 
 

2011년 4월 23일 (토) 09:59 판