連投失礼します。
上の手法を自分でも試してみたのですが、イマイチ満足いく結果にならなかったので、次のような代案を考えてみました。
数学は全く必要なく、「絵を複雑にしたい」という目的をそのままコードに起こし込むものです。
まず「複雑度」を定義します。
どのような定義でも構いませんが、例えば次のようなものが簡便かと思います。
あるピクセルが集合の中(漸化式が収束する点)だったとします。
仮にとなりあう四ピクセルが全て同様に集合の中であれば周辺の複雑度は低いと考えます。
なぜならその周囲では構造変化が乏しく、絵的には面白くない点と考えられるからです。
一方で集合の外(漸化式が発散する点)がすぐ周囲に存在すれば、その点の周りには細かい構造が存在する、すなわち複雑度の高い点と考えられます。
着目するピクセルが集合外であった場合も全く同様で、プログラム的にはXOR演算に相当します。
これを元にしたアルゴリズムを以下に示します。
- 与えられた範囲に対して、よくマンデルブロ集合に対して行う内外処理を行い、収束すれば1、しなければ0のフラグを立てます(逆でも構いません)。
- 範囲を四等分(縦横にそれぞれ二等分)し、上のステップで計算したフラグを用いてそれぞれの範囲における複雑度の和を計算します。
- 四つの矩形うち一番複雑度の和が高い部分を取り出し、これを新しい範囲としてステップ1から繰り返します。
初期の集合全体を含む範囲からある程度の回数この操作を繰り返すことで、おそらく確実に境界を含む一部分を取り出すことができます。
なお繰り返しすぎると浮動小数点誤差が顕著になるため注意が必要かもしれません。
中心が求まればあとは範囲(ズーム)を適当に設定してお好みの着色をしていただければと思います。
蛇足かとも思いますが、上のアルゴリズムで中心点を決定した後12桁ほど拡大していった様子および使用したコードを以下に示します。