偽計数学妨害罪

うるせぇ、こっちは遊びで数学やってんだよ

続・フラクタル図形を描こう

こんにちは、108Hassiumです。


以前、こんな記事を書きました。


hassium277.hatenablog.com
(最近この始まり方多いな…。)


この記事の公開後も色々なフラクタル図形を描いて遊んでいたところ、いくつか面白い発見があったので紹介したいと思います。

正多角形

名前の付いているフラクタル図形の一つとして、「ペンタフレーク」というものがあります。


f:id:Hassium277:20201023205836p:plain


f:id:Hassium277:20201023143242p:plain


見ての通りペンタフレークは正5角形で構成された図形ですが、画像を拡大してみると、


f:id:Hassium277:20201023210523p:plain


実は正方形でできています。


これは図形描画ソフトで書いたものをドット絵に変換したわけではなく、最初からドット絵で描いています。


描き方は非常に簡単で、正方形で構成された図形を5角形と見做して漸化式をなぞるだけで、何故か正5角形に収束していきます。


f:id:Hassium277:20201023211513p:plain
※初期状態は何でもいいわけではなく、例えば初期状態が縦長だと収束先も縦長になります。正5角形に収束する条件は不明です。


これを発見したのは完全に偶然で、単純な手順の繰り返しで正5角形が描けるのに非常に驚かされました。


そして、「正5角形が描けるならほかの正多角形もイケるのでは?」と思って試行錯誤したところ、


f:id:Hassium277:20201024223157p:plain
f:id:Hassium277:20201024223223p:plain


正7角形と正8角形の描画方法を発見しました。

ただし、何故か正6角形に収束するパターンは見つかりませんでした。

端数次元

フラクタル図形を特徴づける概念として、フラクタル次元」というものがあります。


次元といえば整数値であるのが「普通」であるように思えますが、フラクタル次元は「1.58次元」というような半端な値を取り得ます。


実はフラクタル次元の定義は何種類か存在するのですが、ここでは一番単純な「相似次元」について説明します。


正方形は4個くっつけると相似比2倍の正方形に、9個くっつけると3倍になります。


f:id:Hassium277:20201025000616p:plain


立方体は8個くっつけると相似比2倍の立方体に、27個くっつけると3倍になります。


f:id:Hassium277:20201025000621p:plain


一般に、n次元立方体(2次元立方体=正方形)をm^n個くっつけると相似比mn次元立方体をつくることができます。


これを利用して、m^n個くっつけると相似比m倍の図形を作れるような図形の次元はnである」と定義されるのが相似次元です。


では、フラクタル図形の相似次元を計算してみましょう。


以下の図形は、前回紹介した「シェルピンスキーのギャスケット」というフラクタル図形です。


f:id:Hassium277:20201025140523p:plain


よく見ると、シェルピンスキーのギャスケットは3個くっつけると相似比2倍になることが分かります。


f:id:Hassium277:20201025141950p:plain


これを先程の式に当てはめると、2^n=3になり、n=\text{log}_23=1.58...になります。


つまり、シェルピンスキーのギャスケットは約1.58次元の図形であるということになります。


同様に考えると、前回紹介した「正方形3個のやつ」は512個全部1.58次元になります。
hassium277.hatenablog.com



では、以下の図形のフラクタル次元はいくつでしょうか。


f:id:Hassium277:20201025144441p:plain


この図形は以下の漸化式によって生成されています。


f:id:Hassium277:20201025162703p:plain


見ての通り、この図形は大きさの違うパーツを組み合わせて作られている(T_{n+1}が2個とT_nが1個)ので、先程の定義は使えません。


しかし、個数の代わりに「ドット絵として描写したときのピクセル数の比」を利用することでフラクタル次元を計算することができます。

例えばシェルピンスキーのギャスケットでは、3個くっつけると図形を構成するドットの個数も3倍になります。


よって、「相似比をm倍にするとピクセル数がm^n倍になるような図形の次元はnである」というようにフラクタル次元を再定義することができます。


詳しい説明は省略しますが、先程の図形は漸化式を1回計算するごとに相似比が\frac{1+\sqrt{5}}{2}倍、ピクセル数の比は1+\sqrt{2}に近づいていきます。


この2つの数値はそれぞれ「黄金数」「白銀数」と呼ばれ、よく「\varphi」「\tau」という記号で表されます。


よって、あの図形のフラクタル次元は\text{log}_{\varphi}\tau=1.83...になります。

金鉱脈

こんなフラクタル図形を見つけました。


f:id:Hassium277:20201025221629p:plain


定義は以下の通りです。


f:id:Hassium277:20201025222854p:plain


見ての通りこのフラクタル図形は長方形の組み合わせでできているので、組み合わせるパーツを回転させることで別の漸化式を作ることができ、そこから別のフラクタル図形を生成することができます。


f:id:Hassium277:20201026195933p:plain

f:id:Hassium277:20201026195948p:plain

f:id:Hassium277:20201026200003p:plain


前回描いた512個もそうですが、私が発見するフラクタル図形はパーツの回転により別の図形が大量に作れることが多いです。


というわけで、パーツの回転の仕方の違いによって生成されるフラクタル図形の集まりのことを、私は「鉱脈」と呼んでいます。


前回採掘した鉱脈は被りが多く、512個発掘して見つけたフラクタル図形は232種類しかありませんでしたが、先程の長方形のやつは被りが一切ありませんでした。


ただし、全パターン(64個)面白い形かというとそんなことは無く、以下のような「ハズレ」もありました。


f:id:Hassium277:20201027212128p:plain

龍と花と蟹

有名なフラクタル図形の一つとして、「ドラゴン曲線」というものがあります。


f:id:Hassium277:20201028211538p:plain
ja.wikipedia.org


先程の長方形のものと異なり、ドラゴン曲線はパーツを「線分」と見做して組み合わせます。


f:id:Hassium277:20201028215210p:plain


同じパーツを2個くっつけて相似比\sqrt{2}倍の図形ができるので、フラクタル次元は\text{log}_{\sqrt{2}}2=2になります。


ところで、フラクタル次元は実は図形の見た目と関係しています。


f:id:Hassium277:20201028231350p:plain:w300 f:id:Hassium277:20201028231511p:plain:w300


上の二つのフラクタル図形は、左が1.83次元、右が1.44次元です。


感覚的な話ですが、フラクタル次元が高いと「密」な感じに、低いと「疎」な感じになります。


白背景に黒で描画する場合、次元が高いほど黒っぽく、低いと白くなります。


前回の記事を書いた時点で発見していたフラクタル図形は次元が低いものが多かったので、フラクタル次元が2に近い図形を描いてみたいと思って試行錯誤した時期がありました。


そんな中、ドラゴン曲線を参考にしてこんな漸化式を考えました。


f:id:Hassium277:20201029191408p:plain


ドラゴン曲線は2個で\sqrt{2}でしたが、これは5個で\sqrt{5}です。


この漸化式を実行すると、こうなりました。


f:id:Hassium277:20201029191946p:plain


なんと、花柄みたいになりました。


また、こんなものも考えました。


f:id:Hassium277:20201029202446p:plain


ドラゴン曲線とよく似ていますが、組み合わせるパーツの向きが違います。


f:id:Hassium277:20201029202545p:plain


配色のせいもありますが、みたいになりました。


どちらのフラクタル図形も描いてみるまでどんな形になるかわからず、完成したときに非常に驚きました。