海岸線の長さは、物差しの長さで変わるのか。画像で測って確かめた

地図で海岸線の長さを測ろうとすると、困ったことが起きます。100 km の物差しで測るより、10 km の物差しで測ったほうが、湾や岬の出入りを細かくたどれる分だけ長くなります。1 km、100 m と物差しを短くしていくと、岩のすき間までたどることになり、長さはさらに伸びていきます。

数学者のマンデルブロは、1967 年の論文「イギリスの海岸線の長さはどれだけか」で、この性質をフラクタル次元という数で表せることを示しました。この記事では、実際に海岸線の画像を作り、物差しの長さを変えながら測って、長さがどのように伸びるかを確かめます。

測った画像

本物の地図では、地図の縮尺や描き方で結果が変わってしまいます。そこで、作り方の分かっている海岸線を使いました。

IFS Fractal Studio の「画像のフラクタル次元を測る」ページにあるサンプル「海岸線のような図形」と同じ作り方で、1024×1024 画素の画像を作りました。山や谷のような起伏をランダムに作り(ハースト指数 H = 0.7 の「非整数ブラウン運動」と呼ばれる起伏)、その高さが半分より低いところを陸、高いところを海としています。灰色が陸、黒い線が海岸線です。

合成した海岸線(全体を縮小したもの)

中央の一部を切り出して拡大すると、全体と同じように湾や岬、小さな島が現れます。部分が全体と似た形をしているのが、フラクタルの特徴です。

中央の 4 分の 1 を切り出して拡大したもの

比べる相手として、なめらかな図形の代表である円(半径は画像の一辺の 0.35 倍)も同じように測りました。

測り方

物差しの長さを s とします。画像を 1 辺 s の正方形のマス目に区切り、海岸線が通っているマスの数 N を数えます。海岸線は N 個のマスを順にたどっていくので、長さはおよそ「N × s」です。物差しを短くすると、海岸線の細かい出入りを拾えるようになります。

この数え方はボックスカウント法と呼ばれ、IFS Fractal Studio がフラクタル次元を求めるときと同じ方法です。長さは、画像の一辺を 1 とした値で表しました。

結果

物差しの長さと、測った長さ(画像の一辺を 1 とした値。画像は 1024×1024 画素)
物差しの長さ海岸線:箱の数海岸線:長さ円:箱の数円:長さ
1/8(128 画素)384.75202.50
1/16(64 画素)966.00442.75
1/32(32 画素)2367.38842.63
1/64(16 画素)5658.831722.69
1/128(8 画素)1,32310.343482.72
1/256(4 画素)2,88011.256682.61
1/512(2 画素)5,90611.541,1882.32

円の長さは、物差しを 1/8 から 1/128 まで短くしても 2.50 から 2.72 へと、ほとんど変わりません(1.1 倍)。なめらかな線は、物差しを短くしてもたどる道筋がほとんど変わらないためです。

一方、海岸線は 4.75 から 10.34 へと、2.2 倍に伸びました。物差しを半分にするたびに、長さがおよそ 1.21 倍ずつ伸びていく計算です。物差しをさらに短くしていけば、長さはいくらでも伸びていくことになり、「海岸線の長さ」は 1 つに決まりません。

伸び方の速さがフラクタル次元

物差しを半分にしたときにマスの数 N が何倍になるかは、図形の「次元」で決まります。

  • 線(1 次元)なら、マスの数は 2 倍。長さ N × s は変わらない。
  • 面(2 次元)なら、マスの数は 4 倍。
  • 海岸線は、その間。

物差しの長さ s とマスの数 N の両方の対数をとってグラフにすると、点はほぼ一直線に並びます。この直線の傾きがボックスカウント次元です。物差しが 1/8〜1/128 の範囲で求めると、次のようになりました。

図形 ボックスカウント次元
円 1.02
合成した海岸線 1.28

円はほぼ 1 で、ふつうの線と同じです。海岸線は 1.28 で、1 より大きくなりました。この画像の作り方では、海岸線の次元は理論上「2 − H」、つまり 1.3 になると考えられていて、測った値はそれに近い値です。

マンデルブロの論文では、それ以前にリチャードソンが地図で測った結果から、イギリスの西海岸の次元を約 1.25 と見積もっています。今回の合成した海岸線は、本物の海岸線と同じくらいの入り組み方をしていることになります。

物差しが短すぎると、伸びが止まる

表を見ると、物差しが 8 画素より短くなると、海岸線の長さの伸びが鈍っています(10.34 → 11.54)。円では、2 画素のときに逆に短くなっています。

これは、画像が画素でできているためです。画像の海岸線は画素より細かい出入りを持たないので、物差しが画素の大きさに近づくと、新しい出入りを拾えなくなります。円が短くなるのは、斜めの部分が画素の階段になり、マスの数え方とずれが出るためです。

本物の海岸線でも、地図や写真で測る限り同じことが起こります。地図の縮尺や写真の解像度より細かい出入りは、測りようがありません。画像からフラクタル次元を測るときに、極端に小さいマスや大きいマスを当てはめに使わないのはこのためです。IFS Fractal Studio の「画像のフラクタル次元を測る」ページでも、両対数グラフで当てはめる範囲を選べるようにしています。

自分の画像で試すには

IFS Fractal Studio の「画像のフラクタル次元を測る」で、「測り方」に「図形の次元」を選ぶと、この記事と同じボックスカウント法で次元を測れます。地図のスクリーンショットや、葉っぱ・ひび割れの写真を白黒に分けて測ることもできます。画像はサーバーに送らず、ブラウザの中で計算します。

同じ海岸線でも、地図の縮尺や、白黒に分けるときのしきい値で値は変わります。値そのものより、同じ条件で測ったものどうしを比べるのに向いています。フラクタル次元の考え方は「フラクタル次元の求め方」でくわしく説明しています。

出典

関連するツール

ほかの記事