第86回 ギザギザフレーク(後編)

「フラクタル次元の話をしよう」とミルカさんは言った。

第85回の続き)

図書室にて

ここはの高校、いまは放課後。 テトラちゃんフラクタルの構造を表現する方法について考えていた。

「こんな感じでどうだろう。まずはコッホ曲線を表現してみる」

コッホ曲線を表現する
図形 $x$ を $60$ 度右上がりの向きに回転させた図形を、 $x^+$ と表現する。
図形 $x$ を $60$ 度右下がりの向きに回転させた図形を、 $x^-$ と表現する。
図形 $x$ の右隣に図形 $y$ を並べた図形を $x\,y$ と表現する。
レベル1のコッホ曲線を $K_1$ と表現する。これは水平に置いた線分のことである。
レベル $n+1$ のコッホ曲線を $K_{n+1}$ と表現する。これは、 $$ K_n\,K_n^+\,K_n^-\,K_n $$ に等しい。
※ただし、 $n$ は $1$ 以上の整数とする。

テトラ「 $K_n\,K_n^+\,K_n^-\,K_n$ っていうのは……ははあ、なるほど! $K_n$ と $K_n^+$ と $K_n^-$ と $K_n$ を並べたということですね?」

「そうそう! うん、これはいいよ。まるで《漸化式》みたいにコッホ曲線が表現できる!」

コッホ曲線を表現する《漸化式》
$$ \left\{\begin{array}{llll} K_1 &= \text{水平の線分} \\ K_{n+1} &= K_n\,K_n^+\,K_n^-\,K_n \end{array}\right. $$

テトラ「おもしろいです! ヒルベルト曲線も同じようにできるんでしょうか」

「うん、きっとできるよ。やってみよう!」

テトラ「あたしも考えます!」

フラクタルは《全体が部分と相似になっている図形》といえる。 だから、部分が全体とどういう関係になっているかを見抜けば、 ヒルベルト曲線の構造をよく理解できるんじゃないかと思う。

「まず、こうだよね。さっきのコッホ曲線(第85回参照)では、 $60$ 度の回転がポイントだったけど、ヒルベルト曲線では $90$ 度の回転が出てくる」

テトラ「はい、そうですね。右にコトン、左にコトンの二種類あります」

「だから、《レベル $n$ のヒルベルト曲線》を $H_n$ で表すとして、それを《 $90$ 度右回転》したものを $H_n^-$ と書いて、 《 $90$ 度左回転》したものを $H_n^+$ と書くことにしよう」

テトラ「三つの《つなぎ目》もありました」

「そうだね。垂直方向のつなぎ目を $v$ として、水平方向のつなぎ目を $h$ とすればいいかなあ」

テトラ「なるほどです。 $v$ はverticalバーティカル、 $h$ はhorizontalホリゾンタルですねっ!」

「そうそう。あとはそれを順番に並べて……と」

ヒルベルト曲線を表現する
図形 $x$ を $90$ 度左に回転した図形を、 $x^+$ と表現する。
図形 $x$ を $90$ 度右に回転した図形を、 $x^-$ と表現する。
図形 $x$ に図形 $y$ をつなげた図形を $x\,y$ と表現する。
短い垂直の線分を $v$ で、短い水平の線分を $h$ と表現する。
レベル1のヒルベルト曲線を $H_1$ と表現する。これは「コの字」型になった図形である(開口部を下に向ける)。
レベル $n+1$ のヒルベルト曲線を $H_{n+1}$ と表現する。これは、 $$ H_n^-\,v\,H_n\,h\,H_n\,v\,H_n^+ $$ に等しい。
※ただし、 $n$ は $1$ 以上の整数とする。

テトラ「右回転( $H_n^-$ )、垂直つなぎ目( $v$ )、そのまま( $H_n$ )、水平つなぎ目( $h$ )、そのまま( $H_n$ )、垂直つなぎ目( $v$ )、左回転( $H_n^+$ )……確かにそうなりますね」

ヒルベルト曲線の構造

「まあ、でも、こうやって書いてみると《あたりまえ》に見えてくるね」

テトラ「先輩! でも《あたりまえから始めるのはいいこと》なんですよね?」

「そうだね!」

《あたりまえから始めるのはいいこと》というのは、がいつもテトラちゃんに言っているセリフだ。 後輩から逆に諭されてしまった……

テトラ「では、《漸化式》の形にまとめますっ!」

ヒルベルト曲線を表現する《漸化式》
$$ \left\{\begin{array}{llll} H_1 &= \text{コの字の図形(開口部は下向き)} \\ H_{n+1} &= H_n^-\,v\,H_n\,h\,H_n\,v\,H_n^+ \end{array}\right. $$

「うんうん」

テトラ「あれ? 先輩の書き方ですと、 $h$ は $v^+$ と表現してもいいですよね?」

「おっと、そうだね!」

L-システム

図書室にミルカさんがやってきた。 さっそく彼女は僕たちのノートをのぞき込む。

ミルカ「フラクタル?」

テトラ「そうなんです! コッホ曲線とヒルベルト曲線の構造を書こうとしているんです」

ミルカ「この記法は、君が?」

ミルカさんはメタルフレームの眼鏡に軽く触れて言った。

「うん、そうだよ。最初は図を描いていたんだけど、何だか数式っぽく書けるんじゃないかと思って。 レベルを $n$ で表せば、ちょうど《漸化式》もどきに書けたんだ」

ミルカ「L-システムに似ている」

「エルシステム?」

ミルカ「Lindenmayer System, 略してL-システムという。文字列を書き換えることでフラクタルのような再帰的構造さいきてきこうぞうを記述する方法」

「へえ」

テトラ「再帰的構造というのは何でしょう」

ミルカ「ある構造が、その構造自身によって定義される構造の総称。フラクタルは、再帰的構造を持った図形といえる」

テトラ「では、フラクタル=再帰的構造ということでしょうか」

ミルカ「いや、そうではない。再帰的構造は図形にかぎらないから」

「そのL-システムというのはどういうもの?」

ミルカ「たとえばコッホ曲線なら、こんなふうに表現できる」

コッホ曲線をL-システムで表現する
開始文字列: F
変換ルール: F → F+F−−F+F
Fは《線分を描いて進む》を意味する。
+は《 $60$ 度左を向く》を意味する。
−は《 $60$ 度右を向く》を意味する。

「開始文字列と変換ルール……」

ミルカ「開始文字列から始める。最初はFだ。ここでは《線分を描いて進む》に相当する」

「なるほど。これはレベル1のコッホ曲線だね」

Fが描く曲線

ミルカ「次がポイント。文字列を変換ルールの通りに置き換える。変換ルールがF → F+F−−F+Fだから、FをF+F−−F+Fで置き換える。 結局F+F−−F+Fになるだけだが」

「そうか、F+F−−F+Fに従って《図形を描く》のかな?」

ミルカ「その通り」

F+F−−F+Fが描く曲線

テトラ「これって、先輩の $K_2 = K_1\,K_1^+\,K_1^-\,K_1$ と同じではないんですか?」

「少し違うよ、テトラちゃん。僕の書き方だと図形を用意して並べただけだけど、L-システムだと全部図形を《描いて》いくんだ」

テトラ「……よくわかりません」

ミルカ「棒を持って砂浜に図形を描くのに似ている」

テトラ「?」

ミルカ「テトラは棒を持って砂浜に立っている。手には F+F−−F+F と書かれた紙を持っている。テトラはそれを読みながら砂浜を歩く。棒を砂の上に引きずりながら」

テトラ「ははあ……すると砂浜に図形が描かれますね」

ミルカ「『F』を読んだら前に進む。すると線分が描かれる。『+』を読んだら左 $60$ 度に身体の向きを変える。『−』を読んだら……」

テトラ「右 $60$ 度に身体の向きを変える?」

ミルカ「そう。そして、『F+F−−F+F』を読み終えたところで砂浜を振り返ると、そこには……」

テトラ「レベル2のコッホ曲線が描かれている!」

ミルカ「ということになる」

「なるほどねえ。レベル3も同じようにできるんだね。『F+F−−F+F』の『F』を、全部『F+F−−F+F』で置き換えればいいのか!」

テトラ「そ、それってものすごく長くなりませんか?」

ミルカ「こうなる」

コッホ曲線をL-システムで表現する
レベル1: F
レベル2: F+F−−F+F
レベル3: F+F−−F+F+F+F−−F+F−−F+F−−F+F+F+F−−F+F
F+F−−F+F+F+F−−F+F−−F+F−−F+F+F+F−−F+Fが描く曲線

テトラ「うわわ……」

「レベル2のところをカッコでくくるとよくわかるね」

レベル3: (F+F−−F+F)+(F+F−−F+F)−−(F+F−−F+F)+(F+F−−F+F)

テトラ「ははあ……『F+F−−F+F』の『F』を『F+F−−F+F』で置き換えている……」

レベル2: F+F−−F+F
Fにカッコを付ける
レベル2: (F)+(F)−−(F)+(F)
カッコの中身をF+F−−F+Fで置き換える
レベル3: (F+F−−F+F)+(F+F−−F+F)−−(F+F−−F+F)+(F+F−−F+F)
カッコをはずす
レベル3: F+F−−F+F+F+F−−F+F−−F+F−−F+F+F+F−−F+F

「《全体が部分と相似になっている図形》というフラクタルがうまく表現できるわけか」

ミルカ「このような変換ルールの反復は、君の《漸化式》でいえば、 $K_3$ を $K_1$ だけで表現するのに似ている」

コッホ曲線をの漸化式で表現する
$K_1 = K_1$
$K_2 = K_1\,K_1^+\,K_1^-\,K_1$
$K_3 = (K_1\,K_1^+\,K_1^-\,K_1)\,(K_1\,K_1^+\,K_1^-\,K_1)^+\,(K_1\,K_1^+\,K_1^-\,K_1)^-\,(K_1\,K_1^+\,K_1^-\,K_1)$

「なるほど。僕の書き方だと、図形をまとめてそれを回転するためにカッコが必要になるなあ」

テトラ「ミルカさん! ヒルベルト曲線もL-システムで表現できるんでしょうか?」

ミルカ「もちろん」

この続きは有料会員登録をすると
読むことができます。
cakes・note会員の方はここからログイン

1週間無料のお試し購読する

cakesは定額読み放題のコンテンツ配信サイトです。簡単なお手続きで、サイト内のすべての記事を読むことができます。cakesには他にも以下のような記事があります。

人気の連載

おすすめ記事

ケイクス

この連載について

初回を読む
数学ガールの秘密ノート

結城浩

数学青春物語「数学ガール」の女子高生たちが数学トークをする楽しい読み物です。中学生や高校生の数学を題材に、 数学のおもしろさと学ぶよろこびを味わってください。本シリーズはすでに何冊も書籍化されている人気連載です。 (毎週金曜日更新)

この連載の人気記事

関連記事

関連キーワード

コメント

hyuki こっちは後編。今日は過去記事の6時間の無料リンクをツイート。公式 4年弱前 replyretweetfavorite

hyuki こっちは後編。今日は過去記事の6時間の無料リンクをツイート。公式 4年弱前 replyretweetfavorite

chibio6 フラクタル次元、難しすぎる。 約4年前 replyretweetfavorite

kamo_hiroyasu LシステムからPostScriptへのトランスレータなら作ったことがあります。発掘したら出てくるかな。 約4年前 replyretweetfavorite