プログラムの実行結果
アプレットの実行画面の全体は省略し、得られた結果のみを示します。
エノン写像
エノン写像の基本式に使われる関数はですが、これを変えることによって、図形が変わります。図1で、(a)と(b)は、基本式そのままですが、それ以外は、変化させてあります。αは、その時の設定値です。
基本式のでは、いかにもカオスらしい不規則な図形が現れます。とでは、対象性のある幾何学的な模様が得られます。は、一番面白い図形が得られるような気がします。
グモウスキー・ミラ写像
グモウスキー・ミラ写像の基本式での関数はですが、これを変えることによって、図形が変わります。図2は基本式そのままの場合のカオス図形を示しています。aは、その時の設定値です。
筆者が対象性のある図形を美しいと感じたせいか、似たような図形が集まっていますが、他にも面白い図形が得られます。
グモウスキー・ミラ写像の基本式の関数を変形してを使ってみました。図3は変形式によるカオス図形を示しています。aは、その時の設定値です。
グモウスキー・ミラ写像の基本式の関数を変形してを使ってみました。図4は変形式によるカオス図形を示しています。aは、その時の設定値です。
まとめ
カオスを描画するソフトウエアは、有償無償を含めて多数あります。またこれらを解説したサイトや「カオス・ギャラリー」もネット上に多数あります。このような状況下でカオスの描画方法を紹介するために、それなりの努力をしました。
カオス図形を描画するプログラム自体は非常に簡単です。高速化のテクニックは必要ですが、常識的な範囲です。しかし、「どの式を使うか」「どのパラメータを使うか」は、今回、数多くの探索によって得たノウハウです。実際のプログラム開発の現場において、プログラムの実装よりも、その仕様の基本設計の方がはるかに困難で時間がかかるのと同じです。
エノン写像は、よりカオス的で、不定形の図形が多く見られます。一方、グモウスキー・ミラ写像は、花弁に似た図形が多く見られます。細かい部分に注目するとカオス的ですが、全体として統一が取れた形をしています。
今回採り上げたのは、面積保存型写像(Area-preserving Mapping)ですが、面積縮小型にすると良く知られた鳥の翼や笹の葉のような図形が得られます。ただし、あまり美的には感じませんでしたので、本稿では省略しました。参考資料により、本稿で紹介したプログラムを修正して試みて下さい。
参考資料
本稿のきっかけは、筆者のウエブサイト『Visual C++の易しい使い方(15)-微分方程式の数値解法の色々とカオス図形の描画-(ただし、現在はVisual C++ 2005 Express Edition版に改定)』ですが、ここではRunge-Kutta法による微分方程式の解法に主眼を置き、応用として、3次元カオスのローレンツ・アトラクタを紹介しているに過ぎません。カオスの3次元モデルに関心のある方は参照して下さい。
ネット上には、多くの優れた資料が公開されています。下記は、その一例です。
- The Chaos Hypertextbook
- Wikipedia 『Henon map』
- Les attracteurs etranges
- Galerie de Fractales du Chaos esthetique de C.Mira
カオス図形の美しさに注目し、プログラムと併せて紹介した書籍は次の通りです。
- 『カオスCGコレクション』 川上博 著、サイエンス社、1990年9月
- 『CによるカオスCG』 川上博・上田哲史 著、サイエンス社、1994年4月
- 『初めてのフラクタル-数学とプログラミング-』 Hans Lauwerier 著、西川利男 訳、丸善、1996年8月