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

수학노트
둘러보기로 가기 검색하러 가기
1번째 줄: 1번째 줄:
* Root Systems and Dynkin diagrams<br>     * http://en.wikipedia.org/wiki/root_systems<br>     * http://en.wikipedia.org/wiki/Dynkin_diagram<br><br><br><br> A_n root systems<br><br> (* A_n type Cartan matrix *)<br> r := 3<br> rt[i_] := UnitVector[r + 1, i] - UnitVector[r + 1, i + 1]<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> A := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix"]<br> A // MatrixForm<br><br><br><br> B_n root systems<br><br> Clear[rt]<br> (*B_r type Cartan matrix*)<br> r := 4<br> rt[i_] :=<br>  If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i], UnitVector[r, r]]<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> A := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix"]<br> A // MatrixForm<br><br><br><br> C_n root systems<br><br> Clear[rt]<br> (*C_r type Cartan matrix*)<br> r := 4<br> rt[i_] :=<br>  If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i], 2*UnitVector[r, r]]<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> A := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix"]<br> A // MatrixForm<br><br><br><br> D_n root systems<br><br> Clear[rt]<br> (*D_r type Cartan matrix*)<br> r := 6<br> rt[i_] :=<br>  If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i],<br>   UnitVector[r, r - 1] + UnitVector[r, r]]<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"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix"]<br> CA // MatrixForm<br><br><br><br> G2 root system<br><br> Clear[r, rt]<br> (*G_ 2 type Cartan matrix*)<br> r := 2<br> rt[1] := {1, -1, 0}<br> rt[2] := {-1, 2, -1}<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> CA := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> A // MatrixForm<br> rt[1]<br> rt[2] - rt[1]<br><br><br><br> F4 root system<br><br> Clear[r, rt]<br> (*F_ 4 type Cartan matrix*)<br> Clear[rt]<br> r := 4<br> rt[1] := {1, -1, 0, 0}<br> rt[2] := {0, 1, -1, 0}<br> rt[3] := {0, 0, 1, 0}<br> rt[4] := {-1, -1, -1, -1}/2<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> A := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}]<br> Print["Cartan matrix"]<br> A // MatrixForm<br><br><br><br><br> E_6 root system<br><br> Clear[rt]<br> (*E_ 6 type Cartan matrix*)<br> r := 6<br> rt[1] := {0, 0, 0, 0, 0, 0, 0, 1, \[Minus]1}<br> rt[2] := {0, 0, 0, 0, 0, 0, 1, -1, 0}<br> rt[3] := {1, -2, 1, -2, 1, 1, -2, 1, 1}/3<br> rt[4] := {0, 0, 0, 1, -1, 0, 0, 0, 0}<br> rt[5] := {0, 0, 0, 0, 1, -1, 0, 0, 0}<br> rt[6] := {0, 1, -1, 0, 0, 0, 0, 0, 0}<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> A := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix"]<br> A // MatrixForm<br><br><br> http://en.wikipedia.org/wiki/E6_(mathematics)<br><br><br><br> E_7 root system<br><br> Clear[rt]<br> (*E_ 7 type Cartan matrix*)<br> r := 7<br> alp := Sum[UnitVector[r + 1, i]/2, {i, 1, 4}] -<br>   Sum[UnitVector[r + 1, i]/2, {i, 5, 8}]<br> rt[i_] :=<br>  Piecewise[{{UnitVector[r + 1, i + 2] - UnitVector[r + 1, 1 + i],<br>     i < 7}, {alp, i == 7}}, {i, 1, r}]<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> A := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix"]<br> A // MatrixForm<br><br><br>     * http://en.wikipedia.org/wiki/E7_%28mathematics%29<br><br><br><br> E_8 root system<br><br> Clear[rt]<br> (*E_ 8 type Cartan matrix*)<br> alp := -Sum[UnitVector[r, i]/2, {i, 1, r}]<br> r := 8<br> rt[i_] :=<br>  Piecewise[{{UnitVector[r, i] - UnitVector[r, 1 + i],<br>     i < 7}, {UnitVector[r, i] + UnitVector[r, i - 1], i == 7}, {alp,<br>     i == 8}}, {i, Range[r]}]<br> b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]<br> A := Table[b[i, j], {i, 1, r}, {j, 1, r}]<br> Print["root vectors"]<br> Table[rt[i], {i, 1, r}] // TableForm<br> Print["Cartan matrix"]<br> A // MatrixForm<br><br><br><br> related items<br><br>     * dilogarithm and Nahm's conjecture (mathematica)<br><br>
+
* Root Systems and Dynkin diagrams<br>     * http://en.wikipedia.org/wiki/root_systems<br>     * http://en.wikipedia.org/wiki/Dynkin_diagram
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
Clear[Unirt, rt, r, alp]<br> Clear[A, B, CC, DD, E6, E7, E8, F, G]<br> (* choose the one of types *)<br> ty := B<br> (* define the rank *)<br> r := 4<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[CC, i_] :=<br>  If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i], 2*UnitVector[r, r]]<br> Unirt[DD, 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> GraphPlot[CA, VertexLabeling -> True]

2010년 3월 14일 (일) 15:16 판

 

 

 

Clear[Unirt, rt, r, alp]
Clear[A, B, CC, DD, E6, E7, E8, F, G]
(* choose the one of types *)
ty := B
(* define the rank *)
r := 4
Unirt[A, i_] := UnitVector[r + 1, i] - UnitVector[r + 1, i + 1]
Unirt[B, i_] :=
 If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i], UnitVector[r, r]]
Unirt[CC, i_] :=
 If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i], 2*UnitVector[r, r]]
Unirt[DD, i_] :=
 If[i < r, UnitVector[r, i] - UnitVector[r, 1 + i],
  UnitVector[r, r - 1] + UnitVector[r, r]]
Unirt[G, 1] := {1, -1, 0}
Unirt[G, 2] := {-1, 2, -1}
Unirt[F, 1] := {1, -1, 0, 0}
Unirt[F, 2] := {0, 1, -1, 0}
Unirt[F, 3] := {0, 0, 1, 0}
Unirt[F, 4] := {-1, -1, -1, -1}/2
Unirt[E6, 1] := {0, 0, 0, 0, 0, 0, 0, 1, \[Minus]1}
Unirt[E6, 2] := {0, 0, 0, 0, 0, 0, 1, -1, 0}
Unirt[E6, 3] := {1, -2, 1, -2, 1, 1, -2, 1, 1}/3
Unirt[E6, 4] := {0, 0, 0, 1, -1, 0, 0, 0, 0}
Unirt[E6, 5] := {0, 0, 0, 0, 1, -1, 0, 0, 0}
Unirt[E6, 6] := {0, 1, -1, 0, 0, 0, 0, 0, 0}
Unirt[E7, i_] :=
 Piecewise[{{UnitVector[r + 1, i + 2] - UnitVector[r + 1, 1 + i],
    i < 7}, {{1/2, 1/2, 1/2, 1/2, -(1/2), -(1/2), -(1/2), -(1/2)},
    i == 7}}, {i, 1, r}]
Unirt[E8, i_] :=
 Piecewise[{{UnitVector[r, i] - UnitVector[r, 1 + i],
    i < 7}, {UnitVector[r, i] + UnitVector[r, i - 1],
    i == 7}, {{-(1/2), -(1/2), -(1/2), -(1/2), -(1/2), -(1/2), -(1/
      2), -(1/2)}, i == 8}}, {i, Range[r]}]
rt[i_] := Unirt[ty, i]
b[i_, j_] := (2 Dot[rt[i], rt[j]])/Dot[rt[j], rt[j]]
CA := Table[b[i, j], {i, 1, r}, {j, 1, r}]
Print["root vectors of ", ty, r]
Table[rt[i], {i, 1, r}] // TableForm
Print["Cartan matrix of ", ty, r]
CA // MatrixForm
Print["Dynkin diagram of ", ty, r]
GraphPlot[CA, VertexLabeling -> True]