Introduction to Computor (by R. Saito) Electronics Eng.
UEC Education System

Wingner の 3j 記号 と クレプシュ・ゴルダン係数

回転群と角運動量の合成によく使われる、Wingner の 3j 記号 と クレプシュ・ゴルダン係数を proc にしました。

# This maple procedure calculate Winger's symbol, 3J and CG coefficients # # Created by R. Saito 6/6/92 # # (6,90) definition of delta; # delta:=proc(j1,j2,j) if abs(j1-j2) <= j and j <= (j1+j2) then sqrt( (j1+j2-j)! * (j1+j-j2)! * (j2+j-j1)! / (j1+j2+j+1)! ); else 0; fi; end; # (6.92) # Wigner 3j's symbol = | j1 j2 j3 | # | m1 m2 m3 | w3j:=proc(j1,j2,j3,m1,m2,m3) local z,zmin,zmax; if ((m1+m2+m3) <> 0 ) or (abs(m1) > j1) or (abs(m2) > j2) or (abs(m3) > j3) or (abs(j1-j2) > j3) or (j3 > (j1+j2)) or (j1<0) or (j2<0) or (j3<0) then 0; else zmin:=0; zmax:=j1+j2-j3; if (j1-m1) < zmax then zmax:=(j1-m1); fi; if (j2+m2) < zmax then zmax:=(j2+m2); fi; if (j3-j2+m1) < 0 then zmin:=abs(j3-j2+m1); fi; if (j3-j1-m2) < 0 and abs(j3-j1-m2) > zmin then zmin:=abs(j3-j1-m2); fi; if zmin > zmax then 0; else sum((-1)**(j1-j2-m3+z) / (z!*(j1+j2-j3-z)!*(j1-m1-z)!*(j2+m2-z)!*(j3-j2+m1+z)!*(j3-j1-m2+z)!), z=zmin..zmax) *delta(j1,j2,j3)*sqrt((j1+m1)!*(j1-m1)!*(j2+m2)!*(j2-m2)!*(j3+m3)!*(j3-m3)!); fi; fi; end; # (6,91) # Clebsch-Gordan coefficient < j1, m1, j2, m2 | J, M > # cg:=proc(j1,m1,j2,m2,j,m) simplify((-1)**(j1-j2+m)*sqrt(2*j+1)*w3j(j1,j2,j,m1,m2,-m)); end;
この file を read で読んで、cg(j1, m1, j2, m2, J, M); で実行です。
tutor1@edu.cc.uec.ac.jp