■食塩の結晶とマーデルング定数

 
 今回のテーマは,身近な素材である食塩(NaCl)を取り上げて,基本的な物理定数であるマーデルング定数を求めようというものである.
 
 「イオン結晶の結合エネルギーは,イオン間のクーロン力によるもので,クーロン力は電荷の積に比例し,距離の2乗に反比例する力であるから,クーロンポテンシャル(静電エネルギー)Uは,
  U=∫(∞,r)e^2/r^2dr=e^2/r   eはイオンの電荷
で与えられる.」
 
 「食塩はNa+とCl-が交互に並んで立方格子というジャングルジムのような構造を形成するイオン結晶である.NaCl結晶の場合,最近接イオン間の距離をRとすると,Na+イオンのまわりには,Rだけ離れて6個のCl-イオンがあり,第2近接には√2Rだけ離れて12個のNa+イオン,第3近接には√3Rだけ離れて8個のCl-イオン,第4近接には2Rだけ離れて6個のNa+イオンがある.また,異符号のイオン間には引力が働き,同符号のイオン間には斥力が働くから,NaCl結晶の結合エネルギーは,これらのイオン間のクーロンポテンシャルを加えて,
  U=-e^2/R[6-12/√2+8/√3-6/2+・・・]
となる.無限級数で示される括弧のなかの和
  6-12/√2+8/√3-6/2+・・・
をマーデルング定数と呼ぶ.」
 
 たいていの物性をテーマとする物理の本には,この無限級数が収束するのはさも当然のごとく書かれてあるが,みるとやるでは大違い.実際に計算してみると,この級数は一筋縄ではゆかない厄介者であった.この無限級数の計算は,マーデルングによって約80年ほど前に行われたものであるが,今回のコラムでは,小生が試行錯誤したマーデルング定数の計算過程を披露してみたい.
 
===================================
 
 話を簡単にするため1次元の結晶について考えてみよう.1次元なんてつまらないと感じるかもしれないが,何事もまずは簡単な例からというのは科学的な態度であり,大きな御利益が得られる場合も少なくない.
 
 間隔Rで正負イオンが交互に1直線上に並んだ
  ・・・−Na+−Cl-−Na+−Cl-−Na+−Cl-−・・・
において,1つのNa+イオンに注目すると,第1近接は両隣にある2個のCl-イオンであり,第2近接はさらにその隣にある2個のNa+イオンである.1次元であっても原理的には同じであるから,以下同様に,
  U=-e^2/R*2[1-1/2+1/3-1/4+・・・]
が得られる.因子2は等距離のところに左右1個ずつ2つのイオンがあることを考慮している.
 
 ここで,括弧の中の和
  1/1−1/2+1/3−1/4+・・・
は調和級数
  1/1+1/2+1/3+1/4+・・・
の交代級数であり,メルカトールの定数とかグレゴリーの定数と呼ばれている定数である.
 
 この値は対数関数のマクローリン展開
  log(1+x)=x−1/2x2 +1/3x3 −1/4x4 +・・・
においてx=1とおくとlog2に収束するから,最終的には
  U=-e^2/R*2log2
より,1次元の鎖に対するマーデルング定数は
  α=2log2=1.386
である.
 
 ところで,交代級数では,元の級数の項の順番を変えると収束値が変動してしまう.たとえば,負項を正項に変えて,あとでその2倍を引くと,
 1/1−1/2+1/3−1/4+・・・
=(1/1+1/2+1/3+1/4+・・・)−2(1/2+1/4+1/6+1/8+・・・)
=(1/1+1/2+1/3+1/4+・・・)−(1/1+1/2+1/3+1/4+・・・)
=0
 
 また,この交代級数は奇数の逆数と偶数の逆数に−1をかけたものからできているが,足し合わせる順序が違う級数,たとえば,負の項が2つの連続する正の項をはさんで現れる級数:
  1/1+1/3−1/2+1/5+1/7−1/4+・・・
では3/2log2に収束することがわかっている.
 
 これらは無限のパラドックスの一つの例である.有限級数ならば,足し算の順序に入れ替えは自由にできるが,無限級数となると話はまったく違ってくる.正の項と負の項がいずれも絶対収束するとき,級数の和の順番は勝手に変えてもよいのであるが,そうでない場合は,足す順序によっては級数の和が異なってくる.実は,条件収束級数の場合,級数の項の順番を適当に変えるとどんな値にでも収束させることができることが知られている.
 
===================================
 
 次に,Na+とCl-が交互に正方格子を組むときのマーデルング定数を求めてみよう.
 
 碁盤の目状に交互に並んだ2次元結晶の場合も,足し合わせる順序をでたらめにすると,まっとうな結果を得ることができなくなってしまう.たとえば,間隔Rで交互に並んだx軸上のイオンのクーロンポテンシャルの総和を考えると,
  U=-e^2/R*2[1-1/2+1/3-1/4+・・・]=-e^2/R*2log2
で収束するが,直線y=x上にはNa+イオンだけが存在するから,y=xに沿ったクーロンポテンシャルの総和は,
  U=e^2/R*2/√2[1+1/2+1/3+1/4+・・・]
すなわち,括弧の中の和は調和級数となり,無限大に発散してしまう.
 
 いきあたりばったりのやり方では,2次元結晶におけるマーデルング定数を書き下すことができそうにもない.そこで,第n近接を求めて,原点からの距離の近い順に足し合わせてみることにする.一般に,無限級数が収束する場合,それぞれの項のなかで絶対値が小さいものほど寄与が小さくなるから,正にせよ負にせよ絶対値の大きいものから足しあげていくのが常套であり,妥当なところであろう.
 
 2次元結晶において,1つのNa+イオンに注目すると,第1近接は上下左右にある4個のCl-イオンであり,第2近接は斜め隣にある4個のNa+イオンです.第3近接には2Rだけ離れて4個のNa+イオン,第4近接には√5Rだけ離れて8個のCl-イオンがある,第5近接には√8Rだけ離れて4個のNa+イオンがある,・・・.最終的に,
  U=-e^2/R[4-4/√2-4/2+8/√5-4/√8+・・・]
が得られたことになる.
 
 3次元の結晶になっても原理的には同じで,Na+イオンに最も近いCl-イオンは,距離Rのところに6個あり,次に近いイオンは,√2Rのところにある12個のNa+イオン,第3近接には√3Rだけ離れて8個のCl-イオン,第4近接には2Rだけ離れて6個のNa+イオン,第5近接には√5Rだけ離れて24個のCl-イオン,・・・という具合になる.
  U=-e^2/R[6-12/√2+8/√3-6/2+24/√5-・・・]
 
===================================
 
 1次元の場合,すなわち,
  U=-e^2/R*2[1-1/2+1/3-1/4+・・・]=-e^2/R*2log2
とは違って,2次元・3次元では解析的な解は得られそうにないが,数値的には求められるであろうと気楽に考えていた.ところが,この無限級数の場合,距離の近いものから足し合わせるという(馬鹿正直な)正攻法では振動が激しく,一向に収束しないのである.
 
 上記の手順をプログラム化したものを掲げる.
 
プログラム(1)
 
1000 '
1010 ' *** Madelung constant ***
1020 '
1030 DEF FNODD(X)=(X MOD 2)-1
1040 DEF FNSQR2(X)=(X MOD 4)-3
1050 DEF FNSQR3(X)=(X MOD 8)-7
1060 'DEF FNODD(X)=INSTR(STR$((X-1)/2),".")
1070 'DEF FNSQR2(X)=INSTR(STR$((X-3)/4),".")
1080 'DEF FNSQR3(X)=INSTR(STR$((X-7)/8),".")
1090 '
1100 INPUT "dimension=";DIMENSION
1110 INPUT "distance =";D
1120 '
1130 D2=D*D
1140 IF DIMENSION=1 THEN GOSUB *DIM1
1150 IF DIMENSION=2 THEN GOSUB *DIM2
1160 IF DIMENSION=3 THEN GOSUB *DIM3
1170 '
1180 PRINT "Madelung=";SUM
1190 END
1200 '
1210 *DIM1:
1220 SUM=0
1230 FOR X=1 TO D
1240  M=2
1250   IF FNODD(X)<>0 THEN M=-M
1260  S=M/X
1270  SUM=SUM+S
1280 NEXT X
1290 PRINT D,SUM,2*LOG(2)
1300 RETURN
1310 '
1320 *DIM2:
1330 SUM=0
1340 FOR R2=1 TO D2
1350  IF FNSQR2(R2)=0 THEN 1450
1360  R=SQR(R2)
1370  L=1
1380 'L=INT(SQR((R2-1)/2)):IF L<1 THEN L=1
1390  FOR X=L TO R
1400   FOR Y=0 TO X
1410    X2=X*X:Y2=Y*Y
1420    IF X2+Y2=R2 THEN GOSUB *SUM2
1430   NEXT Y
1440  NEXT X
1450 NEXT R2
1460 RETURN
1470 '
1480 *SUM2:
1490 M=8
1500  IF Y=0 THEN M=4
1510  IF Y=X THEN M=4
1520 IF FNODD(X+Y)<>0 THEN M=-M
1530 S=M/R
1540 SUM=SUM+S
1550 PRINT R2,SUM
1560 RETURN
1570 '
1580 *DIM3:
1590 SUM=0
1600 FOR R2=1 TO D2
1610  IF FNSQR3(R2)=0 THEN 1730
1620  R=SQR(R2)
1630  L=1
1640 'L=INT(SQR((R2-1)/2)):IF L<1 THEN L=1
1650  FOR X=L TO R
1660   FOR Y=0 TO X
1670    FOR Z=0 TO Y
1680     X2=X*X:Y2=Y*Y:Z2=Z*Z
1690     IF X2+Y2+Z2=R2 THEN GOSUB *SUM3
1700    NEXT Z
1710   NEXT Y
1720  NEXT X
1730 NEXT R2
1740 RETURN
1750 '
1760 *SUM3:
1770 M=48
1780  IF Y=0 AND Z=0 THEN M=6 :GOTO 1840
1790  IF Y=X AND Z=0 THEN M=12:GOTO 1840
1800  IF Y=X AND Z=Y THEN M=8 :GOTO 1840
1810  IF Z=0 THEN M=24:GOTO 1840
1820  IF Y=X THEN M=24:GOTO 1840
1830  IF Z=Y THEN M=24:GOTO 1840
1840 IF FNODD(X+Y+Z)<>0 THEN M=-M
1850 S=M/R
1860 SUM=SUM+S
1870 PRINT R2,SUM
1880 RETURN
 
 簡単なプログラムなので解説するまでもないと思うが,このプログラムでは最近接点を順次探索しながら,マーデルング定数を求めている.探索に時間がかかるため,対称性を利用して探索範囲を絞り込み,あとで因子Mを掛けることにした.1490行のM=8,1770行のM=48がその因子であるが,それぞれ正方形,立方体の対称変換群の位数になっている.→【補】(正2面体群(正n角形)の位数は2n,正6面体群の位数は48)
 
 さらに探索の手間を省くために,1350行と1610行では,それぞれ初等整数論の有名な定理:
 「4n+3の形の数は2個の平方数の和では表されない」(2平方和定理)
 「8n+7の形の数は3個の平方数の和では表されない」(3平方和定理)
のステップを入れてある.
 
 1030行〜1050行のDEF FN文はBASICで唯一ローカル変数を使えるルーチンである.たとえば,1030行のFNODDはパリティ(奇偶性)をチェックする関数で,1250行,1520行,1840行で引力・斥力の別を判定している.このプログラムでは結果的にDEF FN関数を多用することになってしまったが,1040行,1050行の関数の意味は理解していただけるであろう.なお,剰余計算の組み込み関数MODが利用できないBASICでは1060行〜1080行で代替してもよいだろう.
 
 DEF FN文を使用することによって,IF文の多用をできる限り抑えたプログラムを書くことができる.しかも,その都度,関数で計算するとメモリ領域を広く取らないため大変便利なユーザー定義関数になっている.たとえば,1780行〜1830行の記述は少々まどろっこしいが,DEF FN文を使用するともっと簡潔に書けるかもしれない.しかし,そうすると慣れない人にとってはかえってわかりにくくなると思われたので,誤解のないように(技法的に凝らずにわざと冗長に)書いたつもりである.
 
===================================
 
 このプログラムを使って,d=10(短距離)→d=30(中距離)→d=50(長距離)と入力した計算結果を示す.
 
3次元(DIMENSION=3)
 d=10 → α=−6.0350
 d=30 → α=6.5628
 d=50 → α=5.7323
 
2次元(DIMENSION=2)
 d=10 → α=1.1311
 d=30 → α=0.7800
 d=50 → α=1.3025
 
 サブルーチン*DIM2,*DIM3はループ計算のネスティングが深いので,探索範囲が大きくなると,まるでアリ地獄にはまったかのように極端に遅くなる.このループのなかでは,すでに探索されている部分に対してむだな走査をおこなっているからである.そこで,探索範囲の左端を記録する変数Lを1380行と1640行のように設定すれば,無用な比較を最小限に食い止めることができる.しかし,どのように改良しようとも,このプログラムでは探索範囲の両端を記録する変数L,Rの誤差を回避しきれず,格子点の個数をすべて正確に(遺漏も重複もなしに)数えることは困難である.
 
===================================
 
 このプログラムは計算精度を劣化させてしまうのが欠点である.とはいっても,この計算例のごとく,ポテンシャルが振動するはずがないと思うが,そんなことがあるのだろうか? プログラムより式のたて方そのものを再考・再検討すべきであろう.もう一度,問題点を洗いなおし,対応策を考えてみた.
 
 1次元で解析的に得られた無限級数が,2次元・3次元で級数が大きな困難を示した原因としては,まず,
1)クーロン力は長距離力なので,最近接イオン間だけではなく,かなり離れたイオン間にも力が働いているため,非常に長距離にわたって計算する必要があるのでは? と考えられた.
 
 しかし,この計算は,物理の多体問題と本質的には同じであり,多体問題を2体問題で近似することの誤差を考えると,遠くのイオンとの間でのポテンシャルの計算は不要な気がする.
 
 つぎに,
2)級数の和の順番に問題があるのでは? と考えた.
プログラム(1)では,結晶の球対称性を考慮して計算しているが,級数の項を正負の項からの寄与が互いにほぼ打ち消すように並べ替えないと,級数は収束しないのかもしれない.
 
 もし順番を入れ替えて収束するとしたら,その計算自体があやしいともいえるが,念のため,第n近接を求める方法を改め,結晶を層状のイオン群に分割して,着目するイオンへの第n層の寄与を順次加えることにより,マーデルング定数を計算することにした.
 
 正方格子の第1層とは着目するNa+イオンを取り囲む8個のイオン(4個のCl-,4個のNa+)であり,第2層は16個のイオン(8個のCl-,8個のNa+)を指す.第n層は,
  (2n+1)^2−(2n−1)^2=8n
個のイオンを含んでいる.同様に,立方格子の場合,第n層は,
  (2n+1)^3−(2n−1)^3=24n^2+2
個のイオンを含んでいる(第1層には14個のCl-,12個のNa+).
 
 このようにして得られたプログラムがプログラム(2)である.プログラム(1)の足し合わせの順番を変更しただけであって,他に変更した点はない.変更前に比べて,記述がすっきりしたが,第n近接を順次求めるという考え方にこだわらなければ,むしろ,このようにプログラミングするのが自然であろう.
 
プログラム(2)
 
1000 '
1010 ' *** Madelung constant ***
1020 '
1030 DEF FNODD(X)=(X MOD 2)-1
1040 '
1050 INPUT "dimension=";DIMENSION
1060 INPUT "distance =";D
1070 '
1080 IF DIMENSION=1 THEN GOSUB *DIM1
1090 IF DIMENSION=2 THEN GOSUB *DIM2
1100 IF DIMENSION=3 THEN GOSUB *DIM3
1110 '
1120 PRINT "Madelung=";SUM
1130 END
1140 '
1150 *DIM1:
1160 SUM=0
1170 FOR X=1 TO D
1180  M=2
1190   IF FNODD(X)<>0 THEN M=-M
1210  S=M/X
1220  SUM=SUM+S
1230 NEXT X
1240 PRINT D,SUM,2*LOG(2)
1250 RETURN
1300 '
1310 *DIM2:
1320 SUM=0
1330  FOR X=1 TO D
1340   FOR Y=0 TO X
1350    R2=X*X+Y*Y:R=SQR(R2)
1360    GOSUB *SUM2
1370   NEXT Y
1380  NEXT X
1390 RETURN
1400 '
1410 *SUM2:
1420 M=8
1430  IF Y=0 THEN M=4
1440  IF Y=X THEN M=4
1450 IF FNODD(X+Y)<>0 THEN M=-M
1470 S=M/R
1480 SUM=SUM+S
1490 PRINT R2,SUM
1500 RETURN
1560 '
1570 *DIM3:
1580 SUM=0
1590  FOR X=1 TO D
1600   FOR Y=0 TO X
1610    FOR Z=0 TO Y
1620     R2=X*X+Y*Y+Z*Z:R=SQR(R2)
1630     GOSUB *SUM3
1640    NEXT Z
1650   NEXT Y
1660  NEXT X
1670 RETURN
1680 '
1690 *SUM3:
1700 M=48
1710  IF Y=0 AND Z=0 THEN M=6 :GOTO 1770
1720  IF Y=X AND Z=0 THEN M=12:GOTO 1770
1730  IF Y=X AND Z=Y THEN M=8 :GOTO 1770
1740  IF Z=0 THEN M=24:GOTO 1770
1750  IF Y=X THEN M=24:GOTO 1770
1760  IF Z=Y THEN M=24:GOTO 1770
1770 IF FNODD(X+Y+Z)<>0 THEN M=-M
1790 S=M/R
1800 SUM=SUM+S
1810 PRINT R2,SUM
1820 RETURN
 
 以下に,第d層までをとって,マーデルング定数αを計算した結果を示す.
 
3次元(DIMENSION=3)
 d=1 → α=2.1335
 d=2 → α=1.1567
 d=3 → α=1.9125
 d=4 → α=1.6193
 d=10 → α=1.6926
 d=30 → α=1.7288
 d=50 → α=1.7368
 
 層の数を順次増して,同様の計算を行っていくと,
 d=∞ → α=1.748
のように,正しいマーデルング定数が得られる.
 
2次元(DIMENSION=2)
 d=1 → α=1.1716
 d=2 → α=1.3351
 d=3 → α=1.4146
 d=4 → α=1.4589
 d=10 → α=1.5482
 d=30 → α=1.5924
 d=50 → α=1.6016
 d=∞ → α=1.614
 
1次元(DIMENSION=1)
 d=1 → α=2
 d=2 → α=1
 d=3 → α=1.6667
 d=4 → α=1.1667
 d=5 → α=1.5667
 d=6 → α=1.2333
 d=7 → α=1.5191
 d=8 → α=1.2691
 d=9 → α=1.4913
 d=10 → α=1.2913
 d=30 → α=1.3535
 d=50 → α=1.3665
 d=70 → α=1.3721
 d=90 → α=1.3752
 d=∞ → α=1.386(=2log2)
 
 このように,計算はみごとに収束した.プログラム(1)では距離の近いものから足し合わせるという先入観にとらわれてしまった形になり,これがピットホールに陥った原因であったが,順番を入れ替えると収束する理由について,科学的な説明を与えてみたい.
 
 正方格子の第1層は8個のイオン(4個のCl-,4個のNa+)であり,第2層は16個のイオン(8個のCl-,8個のNa+)を含む.また,立方格子の第1層には26個のイオン(14個のCl-,12個のNa+)が含まれている.したがって,プログラム(2)の計算手順では,層ごとに電気的にほぼ中性なイオン群に分割されることになる.中性イオン群からの寄与を順次加えていけば,正負の項からの寄与が互いに打ち消され,結果的に振動が抑えられて,マーデルング定数を計算できるのではなかろうか? これが,順番をかえることの意味であると考えられた.
 
===================================
 
 プログラム(2)では安定に収束することがわかったが,それでもいろいろな不満が残った.この級数の収束は非常に遅いのである.収束をよくするためには計算に工夫が必要であると思われた.そこで次のように仮定してみた.
 
 結晶を層に分割したとき,最外層にあるイオンは,分数の電荷をもつとする.たとえば,一直線上に並んだ
  ・・・−Na+−Cl-−Na+−Cl-−Na+−Cl-−・・・
において,Cl-−Na+−Cl-をひとつの単位と考えると,Cl-は両側のNa+とクーロン力で結ばれているが,この場合,Cl-の電荷を2分割して,1つのNa+とはCl-1/2が結合していると考えてもよいだろう.
 
 このように,そのイオンの位置で境界がつくる立体角の全立体角に対する比をとって,立方格子の最外層の面上のイオンはe/2,辺上のイオンはe/4,頂点上のイオンはe/8の電荷が有効に効くとして計算するのである.同様にして,正方格子においては,辺上のイオンはe/2,頂点上のイオンはe/4の寄与をもつと考えることができる.
 
 このような改良を加えたプログラムがプログラム(3)である.上記の処理は,サブルーチン*ACCEL2と*ACCEL3の中でおこなっているが,このアイデアのおかげで比較的容易に改良することができ,速度もぐんと速くなった.
 
プログラム(3)
 
1000 '
1010 ' *** Madelung constant ***
1020 '
1030 DEF FNODD(X)=(X MOD 2)-1
1040 '
1050 INPUT "dimension=";DIMENSION
1060 INPUT "distance =";D
1070 '
1080 IF DIMENSION=1 THEN GOSUB *DIM1
1090 IF DIMENSION=2 THEN GOSUB *DIM2
1100 IF DIMENSION=3 THEN GOSUB *DIM3
1110 '
1120 PRINT "Madelung=";SUM
1130 END
1140 '
1150 *DIM1:
1160 SUM=0
1170 FOR X=1 TO D
1180  M=2
1190   IF FNODD(X)<>0 THEN M=-M
1200   IF X=D THEN GOSUB *ACCEL1
1210  S=M/X
1220  SUM=SUM+S
1230 NEXT X
1240 PRINT D,SUM,2*LOG(2)
1250 RETURN
1260 '
1270 *ACCEL1:
1280 M=M/2
1290 RETURN
1300 '
1310 *DIM2:
1320 SUM=0
1330  FOR X=1 TO D
1340   FOR Y=0 TO X
1350    R2=X*X+Y*Y:R=SQR(R2)
1360    GOSUB *SUM2
1370   NEXT Y
1380  NEXT X
1390 RETURN
1400 '
1410 *SUM2:
1420 M=8
1430  IF Y=0 THEN M=4
1440  IF Y=X THEN M=4
1450 IF FNODD(X+Y)<>0 THEN M=-M
1460 IF X=D THEN GOSUB *ACCEL2
1470 S=M/R
1480 SUM=SUM+S
1490 PRINT R2,SUM
1500 RETURN
1510 '
1520 *ACCEL2:
1530 IF Y=D THEN M=M/4:GOTO 1550
1540 M=M/2
1550 RETURN
1560 '
1570 *DIM3:
1580 SUM=0
1590  FOR X=1 TO D
1600   FOR Y=0 TO X
1610    FOR Z=0 TO Y
1620     R2=X*X+Y*Y+Z*Z:R=SQR(R2)
1630     GOSUB *SUM3
1640    NEXT Z
1650   NEXT Y
1660  NEXT X
1670 RETURN
1680 '
1690 *SUM3:
1700 M=48
1710  IF Y=0 AND Z=0 THEN M=6 :GOTO 1770
1720  IF Y=X AND Z=0 THEN M=12:GOTO 1770
1730  IF Y=X AND Z=Y THEN M=8 :GOTO 1770
1740  IF Z=0 THEN M=24:GOTO 1770
1750  IF Y=X THEN M=24:GOTO 1770
1760  IF Z=Y THEN M=24:GOTO 1770
1770 IF FNODD(X+Y+Z)<>0 THEN M=-M
1780 IF X=D THEN GOSUB *ACCEL3
1790 S=M/R
1800 SUM=SUM+S
1810 PRINT R2,SUM
1820 RETURN
1830 '
1840 *ACCEL3:
1850 IF Y=D AND Z=D THEN M=M/8:GOTO 1880
1860 IF Y=D THEN M=M/4:GOTO 1880
1870 M=M/2
1880 RETURN
 
3次元(DIMENSION=3)
 d=1 → α=1.4560
 d=2 → α=1.7518
 d=3 → α=1.7470
 d=4 → α=1.7477
 d=∞ → α=1.748
 
2次元(DIMENSION=2)
 d=1 → α=1.2929
 d=2 → α=1.6069
 d=3 → α=1.6105
 d=4 → α=1.6135
 d=∞ → α=1.614
 
1次元(DIMENSION=1)
 d=1 → α=1
 d=2 → α=1.5
 d=3 → α=1.3333
 d=4 → α=1.4167
 d=5 → α=1.3668
 d=6 → α=1.4
 d=7 → α=1.3762
 d=8 → α=1.3941
 d=9 → α=1.3802
 d=10 → α=1.3913
 d=∞ → α=1.386(=2log2)
 
 今回のコラムでは,単純立方格子状配置のマーデルング定数の計算を取り上げた.話は少しややこしくなるが,面心立方格子や体心立方格子についての同様の計算も考えられるであろう.しかし,そのすべてをここに記すことは至難の業(原稿枚数の制限もあって量的に無理であり,また著者の能力を超えたところも少なくないので),迷うことなく割愛することにした.これ以上の追求は読者諸賢にお願いしたい.
 
===================================
 
【問】 Hn=1/1+1/2+1/3+1/4+・・・+1/n
と定義する.H1=1,H2=3/2,H3=11/6,・・・,H∞=∞である.
n>1ならばHn は整数にはならないことを示せ.
 
a) 1/1+1/2+1/3+1/4+・・・+1/n
は決して整数にはならない   (タイシンガー,1915年)
b) 1/(a+1)+1/(a+2)+・・・+1/(a+n)
は決して整数にはならない   (クルシュチャク,1918年)
c) 1/(a+d)+1/(a+2d)+・・・+1/(a+nd)
は決して整数にはならない   (エルデシュ,1932年)
 
===================================
 
【補】群と正多面体群
 
 まず,群の話から始めよう.正3角形が対称性をもつことは誰にでもすぐわかるだろうし,幼児のような素朴で純粋な心にとっては,図形の美しさと対称性はしばしば一致するものであろう.
 
 正3角形の中心の周りの120°の回転は,正3角形自身をもとの正3角形に重ねる.回転するところをみていなければ回転したことはわからない.また,120°の回転を3回繰り返すと正真正銘もとの位置に戻る.つまり,この回転運動は
1)恒等変換をもつ(単位元)
2)逆変換をもつ(逆元)
3)結合律が存在する
という3つの条件を満足していて,「群」という数学的構造をもっているのである.
 
 ここでは回転だけを考えたが,鏡映(反転)と併せて,正3角形は全部で6個の対称変換をもっている.これを正3角形の対称変換群は位数6の(正2面体)群であると表現する.
 
 さて,正多面体が5種類(正4面体,立方体,正8面体,正12面体,正12面体)しか存在しないことは,ギリシャ以来知られてきた.自然界の複雑さ・深遠さの一方で,古代の人々は,5種類しか存在しない正多面体に神の摂理を見ていたのである.
 のちに,方程式の根の置換群が正多面体群となるものを研究していたクラインは,「正20面体と5次方程式」の中で正多面体群と方程式論が交差する美しい小宇宙を論じている.
 
 クラインは,平面内での正n角形を,球の赤道に内接する正n角形の各頂点と北極・南極を結んでできる多面体を上下から赤道面に押しつぶしてできる体積が0の正凸面体と考えた.クラインはこの群を正2面体群と命名したが,正n角形の回転を考えると,正n角形は位数nの巡回群をつくるから,正2面体群の位数はnである.
 
 つぎに,ひとつの頂点を糸でつるした状態の正4面体を考えてみよう.糸を軸として120°,240°,360°の回転を施せば正4面体は自分自身に重なり,頂点は4個あるから全部で3×4=12個の回転が考えられる.これら12個の回転のつくる群は正4面体群と呼ばれ,その位数は12である.
 
 同様のことを,一番見なれている立方体ではなく,正8面体について考えてみよう.軸の周りには4個の回転が考えられ,頂点は6個あるから正8面体群の位数は24である.立方体と正8面体は双対関係にあるから,正6面体群と正8面体群は一致する.さらに,正20面体について考えてみる.軸の周りには5個の回転が考えられ,頂点は12個あるから,正20面体群の位数は60である.正12面体と正20面体は双対であるから,正12面体群と正20面体群は同型である.
 
 このように,ふつう正多面体群というときには,対称性全体を記述する群ではなく,回転のみからなる部分群を意味する.ところが,2次元の直交変換は,原点中心の回転と,原点を通る直線に関する対称変換(鏡映)の2種類,3次元の直交変換は,回転,鏡映,回転鏡映の3種類がある.したがって,対称性全体を論ずるときには,回転のみならず,鏡映,回転鏡映も考えなければならない.
 
 鏡映,回転鏡映については,辺の中心,面の中心などを糸でつるして,読者自ら確かめることが望ましいが,実は,対称性全体の群の位数は,回転のみからなる群の2倍になることが知られている.すなわち,正2面体群(正n角形)の位数は2n,正4面体群の位数は24,正6(8)面体群の位数は48,正12(20)面体群の位数は120なのである.
 
===================================