我が日常の裏・表

いろはす/芭蕉(Twitter:Irohasu1230)のTwitterに収まらない話

【数学】PythonでTuringパターンを作ろう その1;ドラパルトモデル再考

神秘性すら感じるこの模様、実は数学的に描画できます――。

 先日のドラパルトの記事は読んでいただけたでしょうか。ドラパルト一族の個体数の変化について、数理モデルを作ってシミュレーションして遊んでみるというものでした。そのシミュレーションを極めていくとこのような模様まで描かせることができます。こちらの模様はTuringパターンと呼ばれる模様の一種です。Turingパターンについては以下の書籍「作って動かすALife」に詳しく掲載されています。

www.oreilly.co.jp

 そこで、本ブログでは連載として上記の書籍に掲載されたチューリングパターンを描かせるプログラムを,書籍の方法とは別のアプローチで実装することを目指していきます。本記事はその初回として,先日のドラパルトのシミュレーションを行わせるプログラムの作り方について,詳しく説明してみたいと思います。

 

 先日の記事「【ポケモン×数学?】ドラパルトで数理モデルを作ってシミュレーションをやってみた」

【ポケモン×数学?】ドラパルトで数理モデルを作ってシミュレーションをやってみた - 我が日常の裏・表

にて提唱したモデルは下記の通りでした。

 \displaystyle{\frac{d}{dt}d_1(t) = \beta d_1(t) + \alpha_2 d_2(t)}

 \displaystyle{\frac{d}{dt}d_2(t) = \alpha_1 d_1(t) - \alpha_2 d_2(t)}

 \displaystyle{\frac{d}{dt}d_3(t) = \alpha_2 d_2(t)}

 

tを時間を表す変数, \alpha_1 \alpha_2 \betaをパラメータとして,ドラメシヤ,ドロンチ,ドラパルトの個体数をそれぞれ d_1(t) d_2(t)d_3(t)とおいています。

そして、このシミュレーションをコンピュータにて実行した結果が以下の通りなのでした。

 

そのプログラムの各行について解説を加えていくことにしましょう。

PDFを画像化したものを貼り付けています。

PDFファイルそのものは下記のフォルダにて共有しています。よろしければそちらもご参照ください。

www.dropbox.com

Turingパターンに向けて長旅になるかと思いますが、よしなにお願いします。