我が日常の裏・表

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

【数学】PythonでTuringパターンを作ろう その3;2次元反応拡散系の解として,ADI法でTuringパターンを描く

あけましておめでとうございます。

連載「PythonでTuringパターンを作ろう」第3弾(最終回)です。

 

 欲を言えば昨年のうちに完結させたかったのですが,どうしても時間がかかってしまうもので,こんな時期になってしまいました。今日は12月40日ですね。

kubinaga1230.hatenablog.com

 前回実装した方程式がコチラでした。

 \displaystyle{\dfrac{\partial}{\partial t}}u(t,x) = d \displaystyle{\frac{\partial^2}{\partial x^2}} u(t,x)

そのため空間  x方向の2回微分を克服し,さらに解をアニメーションとして表示する方法を中心に説明を行っていたのでした。(偏微分であると宣いながら,上記の式がナチュラルに常微分の「 d」となっていたので「 \partial」に修正しました。とんでもないミスをしていたものです。2023.01.20)

 

 さて,今回はいよいよ本丸であるこの方程式に取り組んでいきます。

 \displaystyle{\dfrac{\partial}{\partial t}}u(t,x,y) = d_u \Delta u - u v^2 + f(1 - u)

 \displaystyle{\dfrac{\partial}{\partial t}}v(t,x,y) = d_v \Delta v + u v^2 - v(f + k)

ここで, \Delta = \displaystyle{\frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2}}とします。

この方程式の解が,この模様として浮かび上がってくるというわけです。

  u(t,x,y) v(t,x,y)に関して2つの方程式を同時に扱うこと,2次元平面上で xyの2方向について2回偏微分をしなければいけないことが特にネックですね。

 今回もまたPDFを準備しています。少々長いですが,お付き合いいただけると幸いです。よろしくお願いいたします。

長くなりました。前回の記事と比べて大体2倍です。

 

 例にもれず,PDFの原本を下記のフォルダに追加しておきますね。

www.dropbox.com

 

 

 最後に,参考文献を幾つか提示しておきます。

 

 まず,maplotlibの設定に関してです。

カラーバーに関する設定はこちらで参照できます。

プログラムで使った「winter」以外にも様々なものがあります。

matplotlib.org

 さらに,「interpolation」についてもこちらに様々な物が掲載されています。

「bicubic」などは水に滲んだようなぼやけ方をしていますよね。

matplotlib.org

 

 また,ほかの模様を描かせるための設定はこちらのブログに多く載っています。

ebi-works.com

勿論,事の発端となったこの書籍にも。

www.oreilly.co.jp

というわけで,書籍とは別のアプローチで何とかプログラムを完成させることができました。

 

 長くなってしまいましたが,ここまでお読みくださりありがとうございました。

当ブログをこれからも,どうぞよろしくお願いいたします。