
マンデルブロ集合(/ ˈmændəlbroʊt , -brɒt / )[ 1 ] [ 2 ]は2次元集合です。複素平面上で複素数として定義されます。関数から始めて反復すると無限大に発散しない言い換えれば、それは次の集合です。シーケンス、など、絶対値は制限されたままである。[ 3 ]
この集合は、1978 年にクライン群の研究の一環として、ロバート W. ブルックスとピーター マテルスキーによって初めて定義され、図示されました。[ 4 ]その後、1980 年に、ブノワ マンデルブロは、ニューヨーク州ヨークタウン ハイツにあるIBMのトーマス J. ワトソン研究所で研究中に、この集合の高品質な視覚化を取得しました。[ 5 ]

マンデルブロ集合の画像は、無限に複雑な境界を示し、拡大率を上げるにつれて、ますます細かい再帰的な詳細が明らかになります。 [ 6 ] [ 7 ]数学的には、マンデルブロ集合の境界はフラクタル曲線です。[ 8 ]この再帰的な詳細の「スタイル」は、集合境界のどの領域を調べるかによって異なります。[ 9 ]マンデルブロ集合の画像は、数列がは、サンプリングされた各複素数c に対して無限大に発散します。[ 10 ]実部と虚部は複素平面上の画像座標としてマッピングされ、シーケンスが任意の閾値を超える。[ 10 ]もしは一定に保たれ、初期値は代わりに、点に対応するジュリア集合が変化する。得られる。[ 11 ]
マンデルブロ集合は、比較的単純な定義にもかかわらず、視覚化して拡大すると複雑なフラクタル構造を示すことで、数学の分野以外でもよく知られており、数学の美しさの例としてよく引用されます。[ 12 ] [13] [ 14 ] [15] [ 16 ]

マンデルブロ集合は、20世紀初頭にフランスの数学者ピエール・ファトゥーとガストン・ジュリアによって初めて研究された複素力学に起源を持つ。フラクタルは、1978年にロバート・W・ブルックスとピーター・マテルスキーによってクライン群の研究の一環として初めて定義され、描かれた。[ 4 ] 1980年3月1日、ニューヨーク州ヨークタウンハイツにあるIBMのトーマス・J・ワトソン研究所で、ブノワ・マンデルブロが初めてこの集合を視覚化した。[ 17 ]
マンデルブロは1980年に発表された論文で二次多項式のパラメータ空間を研究した。 [ 18 ]マンデルブロ集合の数学的研究は、数学者のアドリアン・ドゥアディとジョン・H・ハバード(1985年)の研究から始まった。[ 19 ]彼らはその基本的な性質の多くを確立し、フラクタル幾何学における影響力のある研究に対してマンデルブロに敬意を表してその集合に名前を付けた。
数学者のハインツ=オットー・パイトゲンとペーター・リヒターは、写真、書籍(1986年)[ 20 ]、ドイツのゲーテ・インスティトゥートの国際巡回展(1985年)[ 21 ] [ 22 ]でこの集合を広めたことで有名になった。
1985年8月のサイエンティフィック・アメリカンの表紙記事では、マンデルブロ集合を計算するアルゴリズムが紹介された。表紙はブレーメン大学のペイトゲン、リヒター、ザウペによって作成された。[ 23 ]マンデルブロ集合は、パーソナルコンピュータが高解像度で集合をプロットおよび表示できるほど強力になった1980年代半ばに、コンピュータグラフィックスのデモとして注目を集めた。[ 24 ]
ドゥアディとハバードの研究は、複雑な力学と抽象数学への関心が高まった時期に行われたものであり、[ 25 ]マンデルブロ集合の位相幾何学的研究は、複雑な力学の分野における重要なトピックであり続けている。[ 26 ]

マンデルブロ集合は、複素平面上のcの値の非可算集合であり、臨界点の軌道は二次マップの反復において
は有界のままである。[ 28 ]したがって、複素数cは、開始時に、そして反復を繰り返し適用すると、絶対値はすべての人にとって制限されたまま。
例えば、c = 1 の場合、数列は 0, 1, 2, 5, 26, ..., ( OEISの数列A003095 )となり、無限大に発散するため、1 はマンデルブロ集合の要素ではありません。一方、数列は 0, −1, 0, −1, 0, ... であり、これは有界であるため、−1 は集合に含まれます。
マンデルブロ集合は、二次多項式の族の連結性軌跡としても定義できる。パラメータ空間の部分集合対応する多項式のジュリア集合が連結集合を形成する。[ 29 ]同様に、マンデルブロ集合の境界は、この二次族の分岐軌跡、つまり多項式の動的挙動(繰り返し実行された場合)が劇的に変化するパラメータのサブセットとして定義できる。
マンデルブロ集合は、閉じた集合であり、原点を中心とする半径2の閉円盤内に含まれるため、コンパクト集合である。マンデルブロ集合に属するのは、すべての人々のために言い換えれば、絶対値は2以下を維持する必要がありますマンデルブロ集合に含まれること、、そしてその絶対値が2を超えると、数列は無限に逃げます。したがって、確立する常に原点を中心とした半径2の閉円盤内に存在する。[ 30 ]


交差点実軸との間隔はこの区間に沿ったパラメータは、実際のロジスティック族のパラメータと1対1に対応させることができます。
対応関係は
これにより、ロジスティック族のパラメータ空間全体とマンデルブロ集合のパラメータ空間との間に対応関係が示される。[ 31 ]
ドゥアディとハバードは、マンデルブロ集合が連結であることを示した。彼らは、マンデルブロ集合の補集合と閉じた単位円盤の補集合との間に明示的な等角同型を構築した。マンデルブロは当初、マンデルブロ集合は非連結であると予想していた。この予想は、マンデルブロ集合の異なる部分をつなぐ細いフィラメントを検出できないプログラムによって生成されたコンピュータ画像に基づいていた。さらなる実験の結果、彼は自分の推測を修正し、連結しているはずである。連結性の位相的証明は、2001年にジェレミー・カーンによって発見された。[ 32 ]

マンデルブロ集合の補集合の均一化のための動的公式は、ドゥアディとハバードの連結性の証明から生じる。マンデルブロ集合の外部光線を生み出す。これらの光線は、組み合わせ論的な観点からマンデルブロ集合を研究するために使用でき、ヨッコズパラパズルの骨格を形成する。[ 33 ]
マンデルブロ集合の境界は、二次多項式の族の分岐軌跡である。言い換えれば、マンデルブロ集合の境界は、すべてのパラメータの集合である。二次写像のダイナミクス敏感な依存性を示すすなわち、任意に小さな変化の下で急激に変化するこれは、多項式レムニスケートとして知られる一般的なタイプの平面代数曲線列、マンデルブロ曲線の極限集合として構成することができる。マンデルブロ曲線は、次のように定義される。そして、点の集合を解釈する複素平面上で、次数 の実デカルト平面上の曲線としてxとyにおいて。[ 34 ]各曲線半径 2 の初期円のマッピングはこれらの代数曲線は、後述する「脱出時間アルゴリズム」を用いて計算されたマンデルブロ集合の画像に現れる。

主心臓形は周期1大陸である。[ 35 ]これはパラメータの領域である。その地図は吸引固定点を持つ。[ 36 ]この集合は、次の形式のすべてのパラメータを含む。どこ開放ユニットディスク内に位置する。[ 37 ]
主心臓形の左側の点に取り付けられている周期2の電球が見える。[ 37 ]この領域は、そのために周期2の吸引サイクルを持つ。それは−1を中心とする半径1/4の塗りつぶされた円である。[ 37 ]

より一般的には、すべての正の整数に対して、 がある主心臓形に接する円形球は周期q球と呼ばれます(はオイラーのφ関数を表し、パラメータから構成されます。そのために魅力的な周期があるより具体的には、各プリミティブ1の根(どこ) 周期 q の電球が 1 つあり、バルブは、パラメータで主心臓形に接しているパラメータを含む組み合わせ回転数を持つサイクル[ 38 ]周期的なファトゥ成分は、吸引サイクルを含み、-固定点。これらが反時計回りにラベル付けされている場合コンポーネントマッピングされるコンポーネントへ[ 37 ]

マンデルブロ集合の内部構成要素である球状部分では、引きつける周期的なサイクルを持つものは双曲成分と呼ばれる。[ 39 ]
これらは、 そしてそれらは密集しているこの問題は双曲性の密度として知られており、複素力学における最も重要な未解決問題の一つである。[ 40 ]マンデルブロ集合の仮説上の非双曲成分は、「奇妙な」成分またはゴースト成分と呼ばれることが多い。[ 41 ] [ 42 ]実二次多項式については、この問題は1990年代にLyubichとGraczykおよびŚwiątekによって独立に証明された。 (実軸と交差する双曲成分は、 Feigenbaum図の周期的な窓に正確に対応することに注意。したがって、この結果は、図のすべてのパラメータの近くにそのような窓が存在することを示している。)
すべての双曲成分が、マンデルブロ集合の主心臓形からの直接分岐の連続によって到達できるとは限りません。そのような成分は、小さなマンデルブロ集合の主心臓形からの直接分岐の連続によって到達できます(下記参照)。

双曲成分のそれぞれには中心があり、それは、内側のファトゥ領域がとなるような点cである。超吸引サイクルを持つ、つまり吸引力が無限である。これは、サイクルが臨界点 0 を含み、0 が数回の反復後に自身に戻ることを意味する。したがって、あるnに対して。この多項式を( zではなくcに依存するようにすると)次のようになる。そしてその程度はしたがって、双曲成分の中心は、方程式を順次解くことによって構築できる。各ステップで生成される新しいセンターの数は、スローン(OEISのシーケンスA000740)によって与えられます。
マンデルブロ集合は局所的に連結であると推測されている。この推測はMLC(マンデルブロ集合は局所的に連結である)として知られている。アドリアン・ドゥアディとジョン・H・ハバードの研究によれば、この推測はマンデルブロ集合の単純な抽象的な「ピンチディスク」モデルをもたらすことになる。特に、これは上述の重要な双曲性予想を意味する。 [ 43 ]
ジャン=クリストフ・ヨッコズの研究により、有限個の再正規化可能なパラメータすべてにおいてマンデルブロ集合の局所連結性が確立されました。つまり、大まかに言えば、有限個の小さなマンデルブロ集合のコピーにのみ含まれるパラメータです。[ 44 ]それ以来、局所連結性は他の多くの点でも証明されています。しかし、その推測の全容はまだ解明されていない。

マンデルブロ集合は、ミシュレヴィッチ点の近傍では拡大しても自己相似である。また、極限集合に収束するという意味で、一般化されたファイゲンバウム点(例えば、-1.401155 または -0.1528 + 1.0397 i ) の周りでも自己相似であると推測されている。 [ 45 ] [ 46 ]一般に、マンデルブロ集合は準自己相似であり、任意の小さなスケールで、それ自身のわずかに異なる小さなバージョンを見つけることができる。これらのマンデルブロ集合のコピーはすべてわずかに異なっているが、これは主に、それらを集合の本体に接続する細い糸によるものである。[ 47 ]
マンデルブロ集合の境界のハウスドルフ次元は、宍倉光弘の結果により 2 と決定されています。[ 48 ]この値が位相次元である 1 より整数倍大きいという事実は、マンデルブロ集合の境界の極めてフラクタルな性質を反映しています。大まかに言えば、宍倉の結果は、マンデルブロ集合の境界が非常に「波打っている」ため、局所的に2 次元の平面領域と同じくらい効率的に空間を埋め尽くすことを示しています。ハウスドルフ次元が 2 の曲線は、(位相的には) 1 次元であるにもかかわらず、しばしばゼロでない面積 (より厳密には、ゼロでない平面ルベーグ測度) を持つことができます。これがマンデルブロ集合の境界にも当てはまるかどうかは、未解決の問題です。
高次元超複素数空間(すなわちべき乗が反復変数の無限大に近づく) は単位に収束する (−1)-球。[ 49 ]
実計算のBlum–Shub–Smaleモデルでは、マンデルブロ集合は計算可能ではないが、その補集合は計算可能列挙可能である。多くの単純なオブジェクト (例えば、べき乗のグラフ) も BSS モデルでは計算不可能である。現在、マンデルブロ集合が計算可能かどうかは不明である。計算可能解析に基づく実計算モデルは、「コンピュータで集合をプロットする」という直感的な概念により近い。Hertling は、双曲性予想が真であれば、このモデルではマンデルブロ集合が計算可能であることを示した。[ 50 ]

マンデルブロ集合の定義の結果として、ある点におけるマンデルブロ集合の幾何学と、対応するジュリア集合の構造との間に密接な対応関係が存在する。例えば、c の値がマンデルブロ集合に属するのは、対応するジュリア集合が連結である場合に限る。したがって、マンデルブロ集合は連結ジュリア集合の写像と見なすことができる。[ 51 ]
この原理は、マンデルブロ集合に関するほぼすべての深遠な結果で利用されています。たとえば、宍倉は、マンデルブロ集合の境界にあるパラメータの密な集合に対して、ジュリア集合のハウスドルフ次元が2であることを証明し、この情報をパラメータ平面に転送しました。[ 48 ]同様に、ヨッコズは、対応するパラメータでマンデルブロ集合について確立する前に、まずジュリア集合の局所連結性を証明しました。[ 44 ]
すべての有理数に対してここで、pとqは互いに素であり、周期qの双曲成分は、内角に対応するカージオイドの端の点で主カージオイドから分岐する。[ 52 ]この分岐点で主心臓形に接続されたマンデルブロ集合の部分は、p / q-リムと呼ばれる。コンピュータ実験によると、リムの直径は次のようにゼロに近づく。現在知られている最良の推定値はヨッコズ不等式であり、サイズは次のようにゼロに近づくと述べている。。
周期q肢にはその枝の先端にある「アンテナ」。特定のバルブの周期は、これらのアンテナの数を数えることによって決定されます。回転数pの分子は、枝から反時計回りに各アンテナを 1 から まで番号付けすることによって求められます。そして、どのアンテナが最も短いかを見つける。[ 52 ]
マンデルブロ集合には、数の発生につながる興味深い実験がある。パラメータの場合と確認するマンデルブロ集合に含まれないということは、シーケンスを反復することを意味しますからシーケンスがディスクから離れるまで任意の半径これは、実数部の垂直線が実数直線から離れた点でマンデルブロ集合と交差する。必要な反復回数は、は π に収束する。例えば、= 0.0000001、反復回数は31415928で、積は3.1415928です。[ 53 ]この実験は、1990年代初頭、あるいはそれ以前に、多くの人々によって独立して行われました。例えば、David Bollによるものです。
同様の観測結果は、以下のパラメータでも得られている。そして(後者の場合、必要な修正を加える)。2001年、アーロン・クレバノフはこの現象の(概念的ではない)証明を以下に掲載した。[ 54 ]
2023年、ポール・シーヴェルトは学士論文で、値の概念的証明も展開した。円周率πがなぜ出現するのか(幾何学的には単位円の円周の半分として)を説明している。[ 55 ]
2025年、高校生のティース・ブロックメラー、オスカー・シェルツ、ネディム・スルカロヴィッチの3人は、理論と概念的証明をマンデルブロ集合の無限に多くの分岐点すべてに拡張した。[ 56 ]
マンデルブロ集合は、多数の球状部分が直接取り付けられた基本的な心臓形を特徴としています。[ 57 ]これらの球状部分の配置を理解するには、マンデルブロ集合の境界を詳細に調べる必要があります。幾何学的な視点から特定の部分を拡大すると、境界内の位置と、関連する球状部分から得られるパラメータに対応する動的挙動に関する正確な推論情報が現れます。[ 58 ]
二次多項式の反復、 どこ は、マンデルブロ集合内の主心臓形に取り付けられた球状部分のいずれかから抽出されたパラメータであり、特定の周期の吸引サイクルを特徴とするマップを生み出す。 そして回転数この文脈では、吸引サイクルは 中心の固定点の周りを回転運動し、平均して 各反復での回転数。[ 58 ] [ 59 ]
マンデルブロ集合内の球状部分は、その吸引サイクルと構造の幾何学的特徴の両方によって区別されます。各球状部分は、接合点から伸びるアンテナが取り付けられており、その周期を示す一定数のスポークを備えています。例えば、電球は回転数による吸引サイクルによって識別されます。その特徴的なアンテナ状構造は、5本のスポークが伸びる接合点から構成されている。これらのスポークのうち、主スポークと呼ばれるものは、電球、そして「最小」の非主スポークはおよそ主スポークから反時計回りに回転することで、独特の識別が可能になります。-bulb. [ 60 ]ここで疑問が生じる。これらのスポークのうちどれが「最小」であるかをどのように判別するのか?[ 57 ] [ 60 ] DouadyとHubbardによって開発された外部光線の理論では、[ 61 ]マンデルブロ集合の衛星双曲成分の根点に着地する外部光線は正確に2本存在する。これらの光線はそれぞれ、角度倍増写像の下で倍増する外部角を持つ。この定理によれば、2本の光線が同じ点に着地する場合、それらの間の他の光線は交差しない。したがって、この領域の「大きさ」は、2つの角度間の弧の長さを決定することによって測定される。[ 58 ]
主心臓形の根点が尖点である場合すると、主心臓形は-バルブ。他のバルブのルートポイントは、このバルブがメインカーディオイドに取り付けられている点です。これにより、次の疑問が生じます。そして-電球?明らかに-電球。そして、次の点に注意してください。は、前の2つの分数をファレイ加算、つまり分子同士を足し、分母同士を足すことによって得られる。
同様に、そして-電球は-bulb、これもFareyの追加によって与えられます。
最大の球根はそして-電球は-電球、一方、最大の電球はそして-電球は-電球、など。[ 58 ] [ 62 ]マンデルブロ集合内の電球の配置は、ファレイ木によって支配される注目すべきパターンに従います。ファレイ木は、すべての有理数を包含する構造です。そしてこの順序付けにより、球状部は主心臓形の境界に沿って、単位区間内の有理数に正確に一致するように配置される。[ 60 ]

まず上部の球根から円の中で、シーケンスは体系的に展開されます。最大の球根はそしては、 間そしてはなど。[ 63 ]興味深いことに、マンデルブロ集合の連続するスケールでの円形球の周期の分母は、前の 2 つの項を足し合わせて作られる数列であるフィボナッチ数列(1、2、3、5、8、13、21...)に一致します。 [ 64 ] [ 65 ]
フィボナッチ数列は、マンデルブロ集合の特定の場所に螺旋状の腕の数として現れ、上部と下部の両方で鏡像になっています。この特徴的な場所では、 詳細なフラクタルの視覚化のために最も多くの反復が必要となり、ズームインすると複雑な詳細が繰り返されます。[ 66 ]
マンデルブロ集合の境界は、画像を拡大してよく見ると、より複雑な詳細が明らかになります。以下は、選択したc値にズームインした画像シーケンスの例です。表示されている領域は「タツノオトシゴの谷」として知られており、これは点 −0.75 + 0.1 iを中心とするマンデルブロ集合の領域です。[ 67 ]
最後の画像の拡大率は、最初の画像と比較して約10対10である。一般的なコンピューターモニターに換算すると、これは直径400万キロメートルのマンデルブロ集合の一部を表している。
タツノオトシゴの「本体」は、それぞれ 12 本の「スポーク」からなる 2 つのグループ[ 69 ]と、主心臓形に接続する 1 本の「スポーク」からなる 25 本の「スポーク」で構成されています。これらの 2 つのグループは、変形によってマンデルブロ集合の「上側の手」の 2 つの「指」に帰属させることができます。したがって、「スポーク」の数は、1 つの「タツノオトシゴ」から次の「タツノオトシゴ」まで 2 ずつ増加します。「ハブ」はミシュレヴィッチ点です。「本体の上部」と「尾」の間には、マンデルブロ集合の歪んだコピーがあり、「衛星」と呼ばれています。
最後から3番目のステップの島々は、対応するジュリア集合の場合と同様に、無限に多くの部分から構成されているように見える。それらは微小な構造でつながっており、全体としては単連結集合を形成している。微小な構造は、この拡大率では小さすぎて認識できない中央の衛星で互いに接している。対応するは画像の中心ではありませんが、マンデルブロ集合の本体に対して、6番目のステップで示された衛星に対するこの画像の中心と同じ位置にあります。
マンデルブロ集合は通常、境界の外側の詳細を表示してレンダリングされますが、境界内の構造も明らかにすることができます。[ 71 ] [ 72 ] [ 73 ]例えば、与えられた c 値が境界内にあるか境界外にあるかを計算する際に、境界内にある限り、この数値が到達する最大値をその位置の c 値と比較することができます。二乗和法を使用する場合、計算された数値は max:(実数^2 + 虚数^2) − c:(実数^2 + 虚数^2) となります。この計算の大きさは、グラデーション上の値としてレンダリングできます。
これにより、以下のような結果が得られます。境界に近づくにつれて、明確なエッジと輪郭を持つグラデーションが形成されます。アニメーションは、グラデーションの境界を強調する役割を果たします。

マルチブロ集合は、一般的な単変数多項式族の再帰の要素に対して複素平面上に見出される有界集合である。
整数dに対して、これらの集合は同じ式から構築されたジュリア集合の連結性軌跡です。完全な三次連結性軌跡も研究されています。ここでは、2 パラメータの漸化式を検討します。2 つの臨界点は、パラメータkの複素平方根である。両方の臨界点が安定している場合、パラメータは 3 次連結性軌跡にある。[ 75 ]一般的な正則関数の族の場合、マンデルブロ集合の境界は分岐軌跡に一般化される。
マルチブロ集合は、指数dの値を変化させることによって得られます。記事には、 d = 0から 7 までの変化を示すビデオがあり、その時点で 6 個のマルチブロ集合が存在します。周囲にローブがある。一般に、d が正の整数の場合、これらの各集合の中心領域は常にエピサイクロイドである。尖点。負の整数指数を用いた同様の展開は、リングの内側に裂け目があり、セットの中央の主要領域はハイポサイクロイドである。尖点。
マンデルブロ集合を3次元に完全に拡張することはできません。なぜなら、反復処理の対象となる複素数の3次元版が存在しないからです。複素数を4次元に拡張した四元数があり、これによってマンデルブロ集合とジュリア集合を4次元に完全に拡張することができます。[ 76 ]これらは、断面化したり、 3次元構造に投影したりすることができます。四元数(4次元)マンデルブロ集合は、 2次元マンデルブロ集合(jk平面内)の回転体であるため、興味深いものではありません。[ 76 ] 3次元断面をとその結果、2次元マンデルブロ集合が実軸を中心に回転する立体が得られる。
トリコーンフラクタル(マンデルバー集合とも呼ばれる)は、反正則族の連結性軌跡である。[ 77 ] [ 78 ]これは、ミルナーが実数三次多項式のパラメータスライスを研究した際に遭遇したものです。局所的に連結ではありません。[ 77 ]この性質は、実数三次多項式の連結性軌跡に受け継がれています。
もう一つの非解析的な一般化は、バーニングシップ・フラクタルであり、これは以下の手順を繰り返すことによって得られます。
コンピュータデバイスを介してマンデルブロ集合をプロットするためのさまざまなアルゴリズムが多数存在します。ここでは、最も一般的で[ 80 ]、最も単純なアルゴリズムの 1 つである素朴な[ 79 ] 「エスケープタイムアルゴリズム」を示します。 [ 81 ]エスケープタイムアルゴリズムでは、プロット領域の各x、y点に対して繰り返し計算が実行され、その計算の挙動に基づいて、そのピクセルの色が選択されます。[ 82 ] [ 83 ]
各点のx座標とy座標は、繰り返し計算(詳細は後述)の開始値として使用されます。各反復の結果は、次の反復の開始値として使用されます。各反復中に、値が重大な「脱出」条件、つまり「緊急脱出」条件に達したかどうかがチェックされます。その条件に達した場合、計算は停止され、ピクセルが描画され、次のx、y座標が調べられます。
各点の色は、値がエスケープポイントに到達するまでの速さを表しています。反復回数の制限に達する前にエスケープできなかった値は黒で示され、エスケープした点は徐々に明るい色で示されます。これにより、エスケープ条件に達するまでに要したサイクル数を視覚的に把握できます。
このような画像をレンダリングするために、検討対象の複素平面の領域を一定数のピクセルに分割します。そのようなピクセルに色を付けるには、そのピクセルの中点とする。臨界点0を反復する各ステップで軌道点の半径が2より大きいかどうかを確認します。この場合、マンデルブロ集合に属さない場合は、その判定に使用した反復回数に応じてピクセルを着色します。そうでない場合は、固定ステップ数まで反復を続け、その後、パラメータが「おそらく」マンデルブロ集合内にあるか、少なくとも非常に近いと判断し、ピクセルを黒色に着色します。
擬似コードで表すと、このアルゴリズムは次のようになります。このアルゴリズムは複素数を使用せず、複素数データ型を持たないユーザーのために、2つの実数を用いて複素数演算を手動でシミュレートします。プログラミング言語に複素数データ型演算が含まれている場合は、プログラムを簡略化できます。
画面上の各ピクセル(Px、Py)に対して、 x0 := ピクセルのスケーリングされたx座標(マンデルブロ集合のXスケール(-2.00、0.47)内に収まるようにスケーリング済み) y0 := ピクセルのスケーリングされたy座標(マンデルブロYスケール(-1.12, 1.12)に収まるようにスケーリング済み) x := 0.0 y := 0.0 反復回数 := 0 max_iteration := 1000 while (x^2 + y^2 ≤ 2^2 AND iteration < max_iteration) do xtemp := x^2 - y^2 + x0 y := 2*x*y + y0 x := xtemp 反復回数 := 反復回数 + 1 color := palette[iteration] plot(Px, Py, color)
ここで、擬似コードを関連付けて、そして:
したがって、 xとyの計算における擬似コードに見られるように、次のようになります。
集合のカラフルな画像を取得するには、実行された反復回数の各値に色を割り当てる際に、さまざまな関数(線形、指数など)のいずれかを使用できます。
上記アルゴリズムをPythonで実装したコードは以下のとおりです。[ 84 ]
import numpy as np import matplotlib.pyplot as plt# パラメータの設定(これらの値は変更可能)x_domain 、y_domain = np . linspace ( - 2 、2 、500 )、np . linspace ( - 2 、2 、500 ) bound = 2 max_iterations = 50 # 任意の正の整数colormap = "nipy_spectral" # matplotlib で有効な任意のカラーマップに設定func = lambda z , p , c : z ** p + c# マンデルブロ集合を表す 2D 配列を計算iteration_array = [] for y in y_domain : row = [] for x in x_domain : z = 0 p = 2 c = complex ( x , y ) for iteration_number in range ( max_iterations ): if abs ( z ) >= bound : row . append ( iteration_number ) break else : try : z = func ( z , p , c ) except ( ValueError , ZeroDivisionError ): z = c else : row . append ( 0 )iteration_array.append ( row )#データのプロットax = plt.axes ( ) ax.set_aspect ( " equal " ) graph = ax.pcolormesh ( x_domain , y_domain , iteration_array , cmap = colormap ) plt.colorbar ( graph ) plt.xlabel ( "実軸" ) plt.ylabel ( "虚軸" ) plt.show ( )
変数の値を変更することで、同等のマルチブロッツ集合powerの画像を生成することができます() 例えば、設定すると、p = 2関連付けられた画像が生成されます。
マンデルブロ集合は、そのさまざまな領域において非常に多様である。