はじめに

美しいかたち,あるいは均整がとれたかたちには, 対称性や特別な比率などの数学的な構造が隠されています. 黄金比と呼ばれる比 1:1.62 に関連したいろいろなかたちを見てみましょう.

新聞,雑誌,ノート,コピー用紙, 画用紙など身のまわりにある長方形の縦と横の比はどうなっているでしょうか. これらの長方形は2つに折ると,もとの長方形と相似な長方形になるという性質を持っています. つまり,縦の長さを 1,横の長さを [Maple Math] とすると,1: [Maple Math] = [Maple Math]:1 より, [Maple Math] がわかります.これらの長方形の縦と横の比は 1: [Maple Math]=1:1.41 になっているのです.

[Maple Plot]

これとは別に,昔から美しい比率とされてきたものに黄金比があります. 黄金比は,建築や絵画などに見出すことができます.

黄金比

[Maple Plot]

線分 AB 上の点 P が,AP:AB=PB:AP を満たすとき,AB は P により「黄金分割」されるといいます.AP=1, AB= [Maple Math] とすると,1: [Maple Math] = [Maple Math]:1 より, [Maple Math] ,したがって

[Maple Math]

となります. [Maple Math] を黄金比と呼びます.その近似値は, [Maple Math] です.

次の図は縦と横の比が黄金比の長方形です.この長方形から正方形(灰色の部分)を切り取って残る長方形がもとの長方形と相似になっています.

[Maple Plot]

身のまわりでは,名刺,新書版の本(コミック本),キャッシュカードやクレジットカードが,縦横の比が黄金比の長方形になっています.

縦横の比が黄金比の長方形から正方形を切り取る操作を繰り返していくと,次のような図が得られます(どちら側から切り取るかは右回りに決めています).

[Maple Plot]

下図からわかるように,この操作は,定点(赤い線の交点)を中心として右回りに90度回転して,1/ [Maple Math] 倍する操作を繰り返すことになっています.

[Maple Plot]

次のように黄金長方形の頂点を通るうずまき模様を描くことができます.この曲線は黄金らせんと呼ばれています.この曲線は,上の図の定点(相似変形の中心)と曲線上の任意の点を結ぶ直線が,曲線と常に一定の角度で交わるという性質を持っています.このような性質を持つ曲線を等角らせんといいます.等角らせんは,オウム貝やかたつむりなどの殻,ヤギの角など自然の中に姿を現します.これは各段階で相似な変形を繰り返していくことと,生物の成長する原理が密接に関連していることを示唆しています.

[Maple Plot]

黄金らせんを表す方程式を与えておきましょう(極座標や極方程式に慣れていない人は,読みとばして構いません).図のように [Maple Math] 座標をいれます.

[Maple Plot]

そして,平面上の点と原点 O を結ぶ線分の長さを [Maple Math] , 線分と [Maple Math] 軸の正の方向とのなす角を [Maple Math] とします. [Maple Math]

[Maple Math]

により定めます. [Maple Math] の値は約 1.36 です.このとき, [Maple Math] [Maple Math] の間には

[Maple Math]

という関係があります.これが黄金らせんの極方程式です.上の青色の曲線はこの極方程式とコンピュータを使って描いたものです.

正方形に内接する4分円を順番に描いていくと,黄金らせんを(近似的に)描くことができます(下図の黒色の曲線).

[Maple Plot]

円弧をつなぎ合わせて作ったらせんは,真のらせん(青色の曲線)とほとんど見分けがつきません.1つの正方形の部分に重ねて描いてみると次の図のようにほんの少し正方形の辺に近づく角度が違っています.(真のらせんといっても,青色の曲線もコンピュータで描いた「近似的な」ものであり,有限個のドット(点)の集まりにすぎないのですが.)

[Maple Plot]

正5角形

1辺の長さが1の正5角形の対角線の長さは [Maple Math] になっています.ユークリッド(紀元前300年)は,これに基づいて,正5角形の作図法を与えました.

[Maple Plot]

紙テープ(や割り箸の袋)を結んでうまく折ると,結び目に正5角形が現れます.

[Maple Plot]

対角線もすべて現れていますね.

[Maple Plot]

上の図の中で特に次の部分に注目しましょう.ここに現れる2つの相似な二等辺三角形を使って,正5角形の1辺の長さと対角線の長さの比は黄金比であることを示すことができます.簡単なのでやってみてください.

[Maple Plot]

正5角形の1辺の長さと対角線の長さの比が黄金比であることから,定規とコンパスを使って正5角形を作図することができます.長さが [Maple Math] の線分は,直角をはさむ辺の長さがそれぞれ 1/2 と 1 である直角三角形の斜辺として作図することができます.これを 1/2 だけ延ばすと,黄金比が作図できたことになります.これを使って,3辺が 1, [Maple Math] , [Maple Math] の2等辺三角形

[Maple Plot]

を作図することができます.あとはこの2等辺三角形の長さ [Maple Math] の辺を底辺として一辺の長さが 1 の2等辺三角形を2個作ると正5角形が得られます.

[Maple Plot]

フィボナッチ数

正5角形の対角線を結ぶと星型ができます.これはピタゴラスの五芒星と呼ばれる図形で,ピタゴラス学派の教団のシンボルマークでした.(直角三角形の三平方の定理で知られるピタゴラスです.この一派は,数や図形について発見した性質について,特別な神秘的な意味があると考え,秘密にしてそれを守っていたそうです.)この図形はまた西洋の魔術でも用いられ,神秘的なものと考えられていたようです.

星型の中にまた正5角形があります.これに対してまた星型を作るという具合にこの操作をいくらでも続けることができます.

[Maple Plot]

[Maple Plot]

黄金比 [Maple Math] は関係式 [Maple Math] を満たしています.この右辺の分母の [Maple Math] をこの関係式の右辺で置き換えると,

[Maple Math]

となります.もう一度繰り返すと,

[Maple Math]

となります.この操作の繰り返しは,正5角形の対角線を引いて,正5角形を繰り返し作っていく上の図に対応しています.無限に繰り返していくと

[Maple Math]

が得られます.これはもっとも簡単な連分数の例を与えています.

右辺の連分数を途中で打ち切った分数を考えてみます.

[Maple Math]

さらに順番に続けていった結果は次のようになります. これは [Maple Math]を近似する有理数の列を与えています.

[Maple Math]

これらの数を小数で表してみましょう..

[Maple Math]
[Maple Math]

上の [Maple Math] を近似する分数の分母と分子を順に見ていくと,

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

となっています.この数の列は,2=1+1, 3=1+2, 5=2+3 というように,引き続く2つの数の和がその次の数になるという規則にしたがっていることが観察できます.このような数をフィボナッチ数といいます.つまり,隣り合うフィボナッチ数の比が黄金比を近似する分数になっているのです.

ここでの話は,歴史の流れとは逆になっています.フィボナッチ数は,1202年のフィボナッチの著書の中でウサギの繁殖に関連して現れました.フィボナッチ数が,引き続く2つの数の和がその次の数になるという規則にしたがっていることをはっきり述べたのは,フィボナッチから4世紀後のケプラーです.ケプラーは隣り合うフィボナッチ数の比が黄金比に近づくことに気付いていましたが,隣り合うフィボナッチ数の比が黄金比の連分数展開を途中で打ち切った近似分数になっていることは,1753年にシムソンが発見したのです.

フィボナッチ数は,様々なおもしろい性質を持っています.植物の成長(花びらの数,ひまわりの種,松かさ,パイナップル,枝に生える葉の配列)など自然の中にも現れます.

正多面体

正4面体,正6面体,正8面体,正12面体,正20面体はプラトン(紀元前427-347)の著作に現れることからプラトンの正多面体と呼ばれます.正20面体と正12面体には黄金比が関係しています.

正多面体とは,1) 凸多面体(有限個の平面で囲まれる領域),2) 各面は合同な正 [Maple Math] 多角形,3) 各頂点で [Maple Math] 本の辺が交わる,という条件を満たすものです.正多面体は,5種類のプラトンの正多面体に限られることが知られています.このことはオイラーの多面体公式を使って示すことができます(興味のある人は,コクセター [5] や一松 [8] を見てください).

辺の長さが等しい正多面体を図示しておきましょう.

[Maple Plot]

正20面体と黄金比

黄金比の長方形を3枚組み合わせて正20面体を作ることができます. 辺の長さが1と[Maple Math]の長方形を3枚用意します.そのうちの2枚は左図のように, 真中に長さ1の切れこみを入れ,残りの1枚は同じ切れこみからのばして片側の端まで切ります.

[Maple Plot]

これらを次のように組み立てることができます.長方形の頂点が正20面体の頂点の位置になっています.名刺など縦横の長さの比が黄金比の長方形を使って模型を作ってみてください.

[Maple Plot]

[Maple Plot]

この正20面体の1辺の長さはいくつでしょうか?

サッカーボール

正20面体は20個の合同な正三角形の面を持つ多面体です.頂点は12個あります.

[Maple Plot]

正20面体の1つの頂点には5つの辺が集まっています.そこには正5角形を底面とする正5角錐があります.

[Maple Plot]

正20面体の各頂点のまわりに集まる5本の各辺を1/3の長さのところを結ぶ正5角形で切り取ると,サッカーボールができます.1985年に60個の炭素原子がサッカーボールの頂点に位置する分子, [Maple Math] フラーレンが合成されました.フラーレンは超伝導の性質を持つことから注目されています.サッカーボールの面は正5角形と正6角形です.それぞれ何個づつありますか?また,頂点は何個あるでしょう?

[Maple Plot]

ペンローズのタイル貼り

次の図のように正6角形を平行移動したもので平面を埋め尽くすことができます.このように平面をタイル貼りできる正多角形には他にどのようなものがあるでしょうか?

[Maple Plot]

正5角形では平面をタイル貼りすることができません.ところが正5角形に現れる2種類の形,矢(灰色部分),凧(黒色部分)を用いたタイル貼りが,ペンローズによって1973年に発見されました.

[Maple Plot]

凧と矢を元のひし形にならないように並べて平面をタイル貼りすることができます.

[Maple Plot]

このように平行移動だけでなく回転や反転によりタイルを並べたタイル貼りを非周期的タイル貼りといいます.

ペンローズは,矢と凧を分割してつなぎ変えると,非周期的なタイル貼りができる単純な形が得られることを発見しました.それは辺の長さが同一の2種類のひし形で,それぞれの内角が,一方は72度と108度,もう一方は36度と144度のものです.

[Maple Plot]

2種類のひし形の面積比はどうなっているでしょう.

平面のタイル貼り,またもっと一般に空間を立体により隙間なく満たすことには,パズル的,あるいは純粋に数学的な興味だけでなく,建築などの造形や物質の構造論からの興味があります.6角形によるタイル貼りのパターンは,蜂の巣に見られる構造であり,また鉛筆の芯に使われるグラファイトは6角形の頂点に炭素原子を配置した構造になっています.結晶は原子や分子が周期的に並んでいます.一方,ペンローズのタイル貼りのように,非周期的ではあるが,規則的な並び方をしている準結晶と呼ばれる物質について,近年多くの成果が得られているそうです.

参考文献

[1] 川村みゆき,多面体の折紙,日本評論社,1995.

[2] ガードナー,ペンローズ・タイルと数学パズル,丸善,1992.

[3] 黒澤敏明,小林淑訓,直川朗,小野寺真也,杉浦忠雄,
コンビニで数学しよう,森北出版株式会社,1998.

[4] ケッヒャー,数論的古典解析,シュプリンガー・フェアラーク,1996.

[5] コクセター,幾何学入門,明治図書,1965.
(Coxeter, Introduction to Geometry second edition, John Wiley & Sons, Inc. 1980. )

[6] 佐藤修一,自然にひそむ数学,講談社ブルーバックス,1998.

[7] 高木隆司,巻き貝はなぜらせん形か,講談社ブルーバックス,1997.

[8] 一松信,正多面体を解く,東海大学出版会,1983.

[9] 伏見康次,安野光雅,中村義作,美の幾何学,講談社現代新書,1979.

[10] ワゴン,Mathematica で見える現代数学,ブレーン出版,1992.
(S. Wagon, Mathematica in Action second edition, Springer, 1999.)

本稿の内容は(ペンローズのタイル貼りを除いて)古典的なものであり,類似の解説は数多くあります.直接的には,[4]の第1章に影響を受けました([4]は数学的により高度ですが).[5]は,正多角形や正多面体などの話題を含む素晴らしい本です.第1版の邦訳は絶版ですが,図書館などで是非手にとって欲しい本です.正多面体を巡って,豊富な数学の話題があります.これに関しては[5]や[8]を参照してください.本稿を書くにあたり[6],[7],[9]も参考にしました.これらは軽く読めておもしろい副読本としてお薦めします.本稿のもとになった講義の中では,[3]にある方法で,正5角形を折り紙で折ってもらいました.折り紙で数学的な図形を折るテーマでは多くの本があります.特に多面体の折り方を収めた[1]が魅力的です.ペンローズのタイル貼りについては,ガードナー [2] を見てください.ペンローズのタイル貼りのMapleプログラムは[10]にあるものを移植しました.

謝辞

, 2000年10月11日に岡山県立一宮高等学校理数科の1年生向けに行った講義用のスライド (OHP)を準備するために作成した資料が本稿の原型になっています. すべての図版は数学ソフトウエアMapleを用いて作成しました. 講義にあたって,事前の打ち合わせのために2度にわたり研究室を訪問くださり, 4回の事前講義を行ってくださった,一宮高等学校の武部先生と福田先生に深く感謝します.

(付録)ペンローズのタイル貼りのMapleプログラム
Maple program for the Penrose tiling

以下のMapleプログラムは,ワゴン,Mathematicaで見える現代数学,ブレーン出版,1992 にあるものに基づいています.
The following Maple programs are based on those given in
S. Wagon, Mathematica in Action second edition, Springer, 1999.

with(plots):with(plottools):
setoptions(axes=none,scaling=constrained);
phi := evalf((sqrt(5)+1)/2):
starttriangle := [[.5,phi*evalf(sin(2*Pi/5))],[1,0],[0,0],1]:
dissect := proc(t)
   if t[4]=1 then
      [t[3], phi*(2-phi)*t[2]+(2-phi)*t[1], t[2], 1], 
      [t[3], phi*(2-phi)*t[2]+(2-phi)*t[1], t[1], -1]
      else
      [t[3], phi*(2-phi)*t[3]+(2-phi)*t[1], t[2], -1],
      [t[1], t[2], phi*(2-phi)*t[3]+(2-phi)*t[1], 1]  fi;
end:
triangledissection := triangles -> map(dissect, triangles):
tiles := proc(n)
         if n=0 then [starttriangle]
         else [op(select(t -> t[4]=(-1)^n, tiles(n-1))), 
                op(triangledissection(select(t -> t[4]=(-1)^(n-1), tiles(n-1))))]
          fi;
end:
penrose1 := proc(n)
               local a;
               a := tiles(n):
               display(seq(line(a[i][1],a[i][2], thickness=2),              
                         i=1..nops(a)),
                         seq(line(a[i][2],a[i][3]),              
                         i=1..nops(a)),
                         seq(line(a[i][3],a[i][1]),              
                         i=1..nops(a))                
                         );
end:
penrose1(10);


# 凧と矢によるペンローズタイリング
# Penrose tiling by kites and darts
kites_darts := proc(n)
               local a,b,c;
               a := tiles(2*n):
               b := select(t -> t[4]=1, a):
               c := select(t -> t[4]=-1, a):
               display(line(starttriangle[1],starttriangle[2]),
                        line(starttriangle[2],starttriangle[3]),
                        line(starttriangle[3],starttriangle[1]),
                         seq(line(c[i][2],c[i][3]), i=1..nops(c)),
                         seq(line(c[i][3],c[i][1]), i=1..nops(c)),             
                         seq(polygon([b[i][2],b[i][3],b[i][1]], 
                         color=gray, style=patchnogrid),
                         i=1..nops(b)),  
                         seq(line(b[i][2],b[i][3]),i=1..nops(b)),
                         seq(line(b[i][3],b[i][1]),i=1..nops(b)));
end:
kites_darts(6);

x0 := solve(tan(2*Pi/5)*x=1-2*x,x):y0 := x0*tan(2*Pi/5):
display(kites_darts(8), view=[x0..1-x0, 0..y0]);

# ひし形によるペンローズタイリング
# Penrose tiling by rhombs
rhombs := proc(n)
               local a,b,c;
               a := tiles(2*n+1):
               b := select(t -> t[4]=1, a):
               c := select(t -> t[4]=-1, a):
               display(line(starttriangle[1],starttriangle[2]),
                        line(starttriangle[2],starttriangle[3]),
                        line(starttriangle[3],starttriangle[1]),
                         seq(line(c[i][1],c[i][2]), i=1..nops(c)),
                         seq(line(c[i][2],c[i][3]), i=1..nops(c)),
                         seq(polygon([c[i][2],c[i][3],c[i][1]], 
                         color=gray, style=patchnogrid),
                         i=1..nops(c)),  
                         seq(line(b[i][1],b[i][2]),i=1..nops(b)),
                         seq(line(b[i][3],b[i][1]),i=1..nops(b))               
                         );
end:
rhombs(4);

display(rhombs(8), view=[x0..1-x0, 0..y0]);

(2000年10月12日作成(2009年4月22日 形式的な整形を行い再公開))