バーニングシップフラクタルと仲間たち5-6
どうも、108Hassiumです。
バーニングシップフラクタルと同じような「$${z^2+c}$$に絶対値関数を混ぜてできるフラクタル図形」をひたすら紹介する記事、第5弾(内容的には実質第4弾)の続きです。
00110101




00110110








00111001




00111010




00111100




01001011


01001101




01001110




01010011




01010101




マンデルブロ集合の合同・相似変換
以前、こんな記事を書きました。
この記事ではジュリア集合の平行移動や、回転・拡大・縮小を数式で表す方法を解説しました。
今回は、この話のマンデルブロ集合版をしたいと思います。
まず、2変数複素関数$${f(z,c)}$$について、$${z_{n+1}=f(z_n,c)}$$という数列が無限大に発散しないような定数$${c}$$の集合を、「$${z_0}$$を初期値とする$${f(z,c)}$$のマンデルブロ集合」($${z_0}$$は$${c}$$の関数)と呼ぶことにします。
このとき、$${z_0}$$を初期値とする$${f(z,c)}$$のマンデルブロ集合は、$${g^{-1}(z_0)}$$($${g(z)は1次関数}$$)を初期値とする$${g^{-1}(f(g(z),c))}$$のマンデルブロ集合と合同になります。

結果こそ違いますが、これが成り立つ仕組みはジュリア集合の場合と全く同じです。
$${g^{-1}(f(g(z),c))}$$の場合の数列は内側の$${g(z)}$$と$${g^{-1}(z)}$$が打ち消し合うため$${f(z,c)}$$の場合の数列と実質的に同じような数列になり、発散・収束性も同じになるためマンデルブロ集合が合同になる、という感じです。
では相似変換をするにはどうすればいいのかというと、$${f(z,g(c))}$$が相似変換に対応します。(初期値は変えなくてOKです)
例えば$${f(z,c)=z^2+c}$$とすると、$${z^2+ic}$$の(同じ初期値の)マンデルブロ集合は$${f(z,c)}$$のものを90度回転させたものになり、$${z^2+c+i}$$からは$${-i}$$方向へ平行移動したマンデルブロ集合が生成されます。


この2つの関係を利用すると、非自明な合同・相似関係を発見することができます。
例えば「$${f(z,c)=z^2+c}$$の$${z_0=0}$$のマンデルブロ集合」を180度回転させたものは、相似変換を用いると「$${z^2-c}$$の$${z_0=0}$$のマンデルブロ集合」になることがわかりますが、これに$${g(z)=-z}$$による合同変換を適用したものも同じ形になるはずです。
実際に計算してみると以下のようになります。
$${g^{-1}(f(g(z),-c))\\=-((-z)^2-c)\\=-z^2+c}$$
$${g^{-1}(0)=0}$$なので、「$${-z^2+c}$$の$${z_0=0}$$のマンデルブロ集合」も$${z^2+c}$$のものを180度回転した形になることがわかります。
さて、ここまでの話では$${g(z)}$$は1次関数に限定していましたが、複素共役$${\text{con}(z)}$$についても同じ性質が成り立ちます。
$${\text{con}(f(\text{con}(z),c))}$$のマンデルブロ集合は$${f(z,c)}$$のもの(初期値も変換する必要がありますが)と合同になり、$${f(z,\text{con}(c))}$$のマンデルブロ集合は元の関数のものを実軸で反転させたものになります。
これを利用すると、これまで扱っていたバーニングシップ系マンデルブロ集合に対してそれを鏡映・回転させたものの生成関数を列挙することができるようになります。
元となる関数を$${(X(x,y)+a,Y(x,y)+b)}$$(3変数実関数のペア)とすると、180度回転、上下反転、左右反転はそれぞれ以下のように表せます。
180度回転:$${(-X(-x,-y)+a,-Y(-x,-y)+b)}$$
上下反転:$${(X(x,-y)+a,-Y(x,-y)+b)}$$
左右反転:$${(-X(-x,y)+a,Y(-x,y)+b)}$$
例えば$${(X(x,y)+a,Y(x,y)+b)=((|x|+y)(|x|-|y|)+a,2x|y|+b)}$$の場合は、以下のようになります。
180度回転:$${(-(|x|-y)(|x|-|y|)+a,2x|y|+b)}$$
上下反転:$${((|x|-y)(|x|-|y|)+a,-2x|y|+b)}$$
左右反転:$${(-(|x|+y)(|x|-|y|)+a,-2x|y|+b)}$$

((|x|-y)(|x|-|y|)+a,-2x|y|+b)、-((|x|+y)(|x|-|y|)+a,-2x|y|+b)
のマンデルブロ集合
この計算をすることで、どの式が同じマンデルブロ集合を生成するか判別したり、どのマンデルブロ集合がどんな対称性を持つかを描画前に知ることができ、パターン数の完璧な数え上げができたり描画の作業時間が短縮できる可能性もあったのですが、面倒なのでやりませんでした。
