見出し画像

Ultra Fractal で遊ぶ #3 [トリコーン / バッファロー]

今回も Ultra Fractal(以下 UF)を使ってhhayyatto さんの記事で遊びます。

今回は「トリコーン(Tricorn)」だそうです。
名称の由来は、Google先生によると「三角帽子(トリコーン)に似ている」からだそうで、別名「マンデルバー (Mandelbar)」とも言うそうです。ガンダム世代的には「トンガリ帽子」ですね。

以下が漸化式だそうです。

$$
\begin{cases}
z_{n+1} = \overline{z_n}^2 + c \\
z_0 = 0
\end{cases}
$$

$${z}$$の部分にバーが付いているのは「複素共役」というらしく、$${z}$$の虚部の符号を入れ替える、という意味になるようです。例えば、$${z}$$が$${3+4i}$$の場合、複素共役は$${3-4i}$$だと。

UF では、Standard.ufm にトリコーンは無いです。
Tricorn で検索すると sp.ufm の Tricorn(たぶん Switch が JuliaTricorn)。
Mandelbar で検索すると jlb.ufm の Mandelbar がありました。
調整できるパラメータは、名前は違うけど Starting point と Power の 2 つなので、Mandelbar を使ってみます。
Gemini にも聞いてみたのですが、km.ufm とか mt.ufm とか、パブリックフォーミュラには無いファイルを教えられました。高速モードじゃ駄目かな。

以下は、ノーマルなトリコーンの描画。

mapping: center=-0.5/0 magn=1.1
formula: maxiter=168 filename="jlb.ufm" entry="Mandelbar" start=0/0 power=2/0 bailout=4
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

次は先端部分の拡大。

mapping: center=-1.672/0 magn=12.1
formula: maxiter=3169 filename="jlb.ufm" entry="Mandelbar" start=0/0 power=2/0 bailout=4
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

本体に近い側の切り替わり部分を拡大。
中央より少し右側に切替わりポイントがありそうですね。

mapping: center=-1.5518/0 magn=45
formula: maxiter=14132 filename="jlb.ufm" entry="Mandelbar" start=0/0 power=2/0 bailout=4
inside: transfer=none
outside: density=0.25 transfer=linear entry="Smooth" power=2/0 bailout=4

先端側の切り替わりポイントを拡大。
図ではわかりにくいですが、ここも中央より少し右側に切替わりポイントがありそう。

mapping: center=-1.8961/0 magn=310
formula: maxiter=14420 filename="jlb.ufm" entry="Mandelbar" start=0/0 power=2/0 bailout=4
inside: transfer=none
outside: density=4 transfer=linear offset=100 entry="Smooth" power=2/0 bailout=4

次はトリコーンに対応したジュリア集合の描画ですね。
Switch モードで探そうと思ったのですが、jlb.ufm の Mandelbar では無理でした。たぶん、対応するジュリアのスクリプトが無いとか、Switch の指定が無いとかでしょうね。sp.ufm の Tricorn は JuliaTricorn が書かれているので Switch が使えました。

hhayyatto 氏の記事では、画像の設定値は書かれていないので自分で探します。

mapping: center=0/0 magn=1.7 angle=-15
formula: maxiter=327 filename="sp.ufm" entry="JuliaTricorn" bailout=100.0 n=2/0 fu=ident seed=0.5529/-0.7574
inside: transfer=none
outside: density=0.15 transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=0/0 magn=1.9 angle=-15
formula: maxiter=343 filename="sp.ufm" entry="JuliaTricorn" bailout=100.0 n=2/0 fu=ident seed=0.2536/-0.52763
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

以下は自分の設定です。

mapping: center=0/0 magn=1.9 angle=-15
formula: maxiter=343 filename="sp.ufm" entry="JuliaTricorn" bailout=100.0 n=2/0 fu=ident seed=0.189/-0.498
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

以下は、hhayyatto さんは遊んでいませんが、3 乗のトリコーンに対応するジュリア集合です。
この「くるくる」が好きなんですよねぇ。

mapping: center=-0.13/0.02 magn=1.85
formula: maxiter=168 filename="sp.ufm" entry="JuliaTricorn" bailout=100.0 n=3/0 fu=ident seed=0.388/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

次は「Perpendicular Mandelbrot Set(垂直マンデルブロ集合)」だそうです。あまり馴染みが無いです。
とりあえず UF で探してみると、ahm.ufm の中に「Perpendicular Mandelbrot」と「Perpendicular Julia」がありました。ということは、おそらく Switch が使えると思います。

hhayyatto さんが書いている漸化式は以下の式ですが、虚部の符号がマイナスというのか気になって調べてみました。

$$
\begin{cases}
z_{n+1} = (|\operatorname{Re}(z_n)| - i\operatorname{Im}(z_n))^2 + c \\
z_0 = 0
\end{cases}
$$

Gemini の回答は$${z_{n+1} = (\operatorname{Re}(z_n) + i|\operatorname{Im}(z_n)|)^2 + c}$$。
虚部の符号はプラス、絶対値は虚部。
これは Claude も同じでしたが、どうも解せないので、符号について確認したところ、符号は図形の対称性に影響するとのことで、どちらでも構わないと。ふむ、言われてみればそうですね。虚部の符号だから上下方向の対称性なのだろうか。
絶対値がどちらかについては、Gemini は「虚部のみが標準で実部のみは鏡像バージョン」、Claude は「虚部が標準で実部のみは横方向版」、ということでした。ま、何はともあれ、さきに進みましょう。

まずは標準の図形ですね。
hhayyatto さんと同じ結果なので安心です。

mapping: center=-0.48/0 magn=1.3
formula: maxiter=250 filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 Perturbation=0/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

フラクタルの探索は美味しいところだけいただきます。
面白そうなのは「谷っぽい部分や本体から遠く離れた場所」と書かれている部分です。残念ながら情報は何も書かれていないので自分で探すしかないようです。探しましょう!

と気合を入れたのですが、案外さっくりと見つかっちゃいました。

mapping: center=-0.74969/0.049523 magn=5700
formula: maxiter=1677 adjust=yes filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 Perturbation=0/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.7545/0.0552 magn=3500
formula: maxiter=1677 adjust=yes filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 Perturbation=0/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

以下は結構探した。

mapping: center=0.48/1.005 magn=750
formula: maxiter=6637 filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 Perturbation=0/0
inside: transfer=none
outside: density=0.25 transfer=linear entry="Smooth" power=2/0 bailout=4

で、コッホ曲線っぽいのは見つけることができず。屈辱。
なんとなく「この領域かなぁ」みたいな部分はあるんだけど…。

以下は、探索中に見つけたお気に入りです。

mapping: center=-0.0062/0.9257 magn=660
formula: maxiter=1785 filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 erturbation=0/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.7773/0.1346 magn=920
formula: maxiter=2551 filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 Perturbation=0/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-1.94026568705938218748/-0.000122363541441572081176 magn=1.7027806E11
formula: maxiter=6592 filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 Perturbation=0/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.79995/0.17725 magn=8500
formula: maxiter=6582 filename="ahm.ufm" entry="PerpendicularMSet" Bailout=4 Perturbation=0/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

ジュリアも少し見てみます。

mapping: center=0/0 magn=1.7 angle=45
formula: maxiter=250 filename="ahm.ufm" entry="PerpendicularJulia" Bailout=4 Start=-0.89/-0.24
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=0/-0.24 magn=2 angle=45
formula: maxiter=250 filename="ahm.ufm" entry="PerpendicularJulia" Bailout=4 Start=-0.4/-0.8
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

次は漸化式が変わります。でも、今はフォーミュラスクリプトを改変したくないので省略します。

なので Buffalo Fractal に進みます。
漸化式は以下のようです。

$$
\begin{cases}
z_{n+1} = |{z_n}^2| + c \\
z_0 = 0
\end{cases}
$$

が…。残念ながら UF には無いようで、Gemini に聞いても誤情報ばかりです。NotebookLM を利用すれば正確な情報を得られるかもしれませんが、無料でアップできるファイル数は 50 なので、パブリックフォルダ内のファイルを加工せずに全て食わせるのは無理ですね。

で、パブリックフォルダ内を Buffalo で検索してヒットしたのが Buffalo
Ballet というフォーミュラ。Gemini 先生によると、漸化式は以下のようになるとのこと。

$$
z_{n+1} = \left| (p_1 \cdot \text{fn2}(z_n) + p_2)^2 - (p_1 \cdot \text{fn2}(z_n) + p_2) + \text{fn3}(\text{c}) \right|^2 + p_3
$$

初期値 : $${z_0 = \text{fn1}(\text{c})}$$
関数のデフォルト: fn1, fn2, fn3 は ident() (恒等関数 $${f(z)=z}$$) に設定されるため、単に $${z}$$ や $${c}$$ として扱われる。

Gemini

意味を理解できませんが、そういうことなのでしょう。
確かに、パラメータとファンクションはユーザーが指定できて、値を調整すると割と大きく形状が変化するので、なかなか遊べそうな印象があります。

それでは全体像を見てみましょう。

mapping: center=-0.03/-0.04 magn=1.7
formula: maxiter=703 filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

Buffalo Fractal とは違いますね。
せっかくなので、少し探索してみようと思います。

mapping: center=-0.253005/-0.333065 magn=24000
formula: maxiter=3078 adjust=yes filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=none
outside: density=2 transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.2851/-0.12387 magn=2050
formula: maxiter=3084 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.28300/-0.10220 magn=6800 angle=15
formula: maxiter=3088 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=none
outside: transfer=linear entry="Smooth" p_power=2/0 bailout=4
mapping: center=-0.79428726/-0.08767649 magn=2300000
formula: maxiter=3092 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 p_bailout=4
mapping: center=-0.78293/-0.07920 magn=1590
formula: maxiter=3115 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.937485/-0.02724 magn=6400 angle=-19
formula: maxiter=3076 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.21222/0.823835 magn=20000
formula: maxiter=4446 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=-0.2115/0.834 magn=187
formula: maxiter=4325 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 _fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=0.49731/0.71831 magn=4540
formula: maxiter=4790 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=0.46261/0.82833 magn=1550
formula: maxiter=4369 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=0.47384/0.82656 magn=570
formula: maxiter=4333 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

ちなみに、以下の図は大好物です。

mapping: center=0.66562/0.46686 magn=1200
formula: maxiter=4380 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=1.06629/-0.108214 magn=15000
formula: maxiter=4366 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

以下は、コッホ曲線で遊んでいると出てくるパターンだったと思いますが(違ったかな)、大好物です。

mapping: center=1.05493/-0.3296 magn=8500
formula: maxiter=4452 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4
mapping: center=1.054361978/-0.256131249 magn=1.8553398E8
formula: maxiter=4325 percheck=off filename="om.ufm" entry="BuffaloBallet" vers=1 V=1 iter=7 p1=1/0 p2=0/0 p3=0/0 fn1=ident fn2=ident fn3=ident bail=4.0
inside: transfer=linear entry="Default"
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

次は以下の式。

$$
\begin{cases}
z_{n+1} = 2^{z_n} + c \\
z_n = 0
\end{cases}
$$

さっぱりわからないので UF のパブリックフォーミュラを見た目で総当たりするしかないです。

で、なんとなく似た感じだなと思ったのが、vdb.ufm の Who4 フォーミュラ。すべてを確認していないので、他にあるかは不明です。

mapping: center=-3/0 magn=0.2 angle=90
formula: maxiter=727 filename="vdb.ufm" entry="Who4" start=1/0 bailout=4 seed=1.7/0
inside: transfer=none
outside: transfer=linear entry="Smooth" power=2/0 bailout=4

漸化式は、スクリプトから Gemini に表示してもらうと以下のようです。

$${z_{n+1} = s^{(z_n - z_{n-1})} + c}$$
(ただし $${n \ge 1}$$ とし、$${z_1 = s^{(z_0 - z_0)} + c = 1 + c}$$ となります)

Gemini

なんかちょっと違いそうですね。
探索の余地はなさそうなので、今回は以上です。

以下は、試せていない漸化式のまとめです。宿題ですね。

・垂直マンデルブロの式の改造
どのみち、垂直マンデルブロについては実部と虚部の絶対値の違いを試してみないとしっくりこないです。

$$
\begin{cases}
z_{n+1} = (|\operatorname{Re}(z_n)| + i\operatorname{Im}(z_n))^2 + c \\
z_0 = 0
\end{cases}
$$

・Buffalo Fractal の漸化式

$$
\begin{cases}
z_{n+1} = |{z_n}^2| + c \\
z_0 = 0
\end{cases}
$$

・以下が無限に発散しない c の集合

$$
\begin{cases}
z_{n+1} = sin{(z_n)} + c \\
z_n = 0
\end{cases}
$$

・特異点のやつ

$$
\begin{cases}
z_{n+1} = 2^{z_n} + c \\
z_n = 0
\end{cases}
$$

いいなと思ったら応援しよう!