どうも、108Hassiumです。
バーニングシップフラクタルと同じような「z2+cに絶対値関数を混ぜてできるフラクタル図形」をひたすら紹介する記事、第5弾(内容的には実質第4弾)の続きです。
00110101
☝((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)のマンデルブロ集合00110110
☝(-(x+|y|)|x+|y||+a,-2|x|y+b)のマンデルブロ集合
☝(-(x+|y|)|x-|y||+a,2|x|y+b)のマンデルブロ集合
☝(-(x+|y|)|x-|y||+a,-2|x|y+b)のマンデルブロ集合
☝((x-|y|)|x+|y||+a,2|x|y+b)のマンデルブロ集合
☝((x-|y|)|x+|y||+a,-2|x|y+b)のマンデルブロ集合
☝((x-|y|)|x-|y||+a,2|x|y+b)のマンデルブロ集合
☝((x-|y|)|x-|y||+a,-2|x|y+b)のマンデルブロ集合
☝(-(x-|y|)|x-|y||+a,2|x|y+b)のマンデルブロ集合00111001
☝(-(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)のマンデルブロ集合00111010
☝(-(x+|y|)||x|+y|+a,2|x|y+b)のマンデルブロ集合
☝(-(x+|y|)||x|-y|+a,2|x|y+b)のマンデルブロ集合
☝((x-|y|)||x|+y|+a,2|x|y+b)のマンデルブロ集合
☝((x-|y|)||x|-y|+a,-2|x|y+b)のマンデルブロ集合00111100
☝((x+|y|)||x|-|y||+a,2xy+b)のマンデルブロ集合
☝((x-|y|)||x|-|y||+a,2xy+b)のマンデルブロ集合
☝(-(x-|y|)||x|-|y||+a,2xy+b)のマンデルブロ集合
☝(-(x-|y|)||x|-|y||+a,-2xy+b)のマンデルブロ集合01001011
☝((|x|+y)(|x|+y)+a,2|x||y|+b)のマンデルブロ集合
☝((|x|+y)(|x|+y)+a,-2|x||y|+b)のマンデルブロ集合01001101
☝((|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)のマンデルブロ集合01001110
☝((|x|+y)(|x|+|y|)+a,2|x|y+b)のマンデルブロ集合
☝((|x|+y)(|x|-|y|)+a,2|x|y+b)のマンデルブロ集合
☝((|x|+y)(|x|-|y|)+a,-2|x|y+b)のマンデルブロ集合
☝((|x|-y)(|x|+|y|)+a,-2|x|y+b)のマンデルブロ集合01010011
☝((|x|+y)|x+y|+a,2|x||y|+b)のマンデルブロ集合
☝((|x|+y)|x-y|+a,2|x||y|+b)のマンデルブロ集合
☝((|x|-y)|x+y|+a,2|x||y|+b)のマンデルブロ集合
☝((|x|-y)|x-y|+a,2|x||y|+b)のマンデルブロ集合01010101
☝((|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)のマンデルブロ集合マンデルブロ集合の合同・相似変換
以前、こんな記事を書きました。
この記事ではジュリア集合の平行移動や、回転・拡大・縮小を数式で表す方法を解説しました。
今回は、この話のマンデルブロ集合版をしたいと思います。
まず、2変数複素関数f(z,c)について、zn+1=f(zn,c)という数列が無限大に発散しないような定数cの集合を、「z0を初期値とするf(z,c)のマンデルブロ集合」(z0はcの関数)と呼ぶことにします。
このとき、z0を初期値とするf(z,c)のマンデルブロ集合は、g−1(z0)(g(z)は1次関数)を初期値とするg−1(f(g(z),c))のマンデルブロ集合と合同になります。
☝((2z+i)^2+c-i)/2のz_0=-i/2のマンデルブロ集合(f(z,c)=z^2+c,g(z)=2z+i)結果こそ違いますが、これが成り立つ仕組みはジュリア集合の場合と全く同じです。
g−1(f(g(z),c))の場合の数列は内側のg(z)とg−1(z)が打ち消し合うためf(z,c)の場合の数列と実質的に同じような数列になり、発散・収束性も同じになるためマンデルブロ集合が合同になる、という感じです。
では相似変換をするにはどうすればいいのかというと、f(z,g(c))が相似変換に対応します。(初期値は変えなくてOKです)
例えばf(z,c)=z2+cとすると、z2+icの(同じ初期値の)マンデルブロ集合はf(z,c)のものを90度回転させたものになり、z2+c+iからは−i方向へ平行移動したマンデルブロ集合が生成されます。
☝z^2+icのz_0=0のマンデルブロ集合
☝z^2+c+iのz_0=0のマンデルブロ集合この2つの関係を利用すると、非自明な合同・相似関係を発見することができます。
例えば「f(z,c)=z2+cのz0=0のマンデルブロ集合」を180度回転させたものは、相似変換を用いると「z2−cのz0=0のマンデルブロ集合」になることがわかりますが、これにg(z)=−zによる合同変換を適用したものも同じ形になるはずです。
実際に計算してみると以下のようになります。
g−1(f(g(z),−c))=−((−z)2−c)=−z2+c
g−1(0)=0なので、「−z2+cのz0=0のマンデルブロ集合」もz2+cのものを180度回転した形になることがわかります。
さて、ここまでの話ではg(z)は1次関数に限定していましたが、複素共役con(z)についても同じ性質が成り立ちます。
con(f(con(z),c))のマンデルブロ集合はf(z,c)のもの(初期値も変換する必要がありますが)と合同になり、f(z,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)、
((|x|-y)(|x|-|y|)+a,-2x|y|+b)、-((|x|+y)(|x|-|y|)+a,-2x|y|+b)
のマンデルブロ集合この計算をすることで、どの式が同じマンデルブロ集合を生成するか判別したり、どのマンデルブロ集合がどんな対称性を持つかを描画前に知ることができ、パターン数の完璧な数え上げができたり描画の作業時間が短縮できる可能性もあったのですが、面倒なのでやりませんでした。