動物の斑模様をpythonを用いて描くプログラムが検索するとたくさん見つかります。以前紹介したGoogleの「Colaboratory」にコピペするだけで動作するpythonのプログラムを見つけました。以下のWebsiteの「Colabコード」をコピーしてColaboratoryにペースト後、Runするとキリンの縞模様が変化するアニメーションを見ることができます。Googleの「Colaboratory」の使い方は以前のブログ「機械学習やpythonが簡単に使えるドライブ」を参照ください。
キリン模様のプログラムのWebsiteはこちら → https://vigne-cla.com/17-5/
プログラムの原理、計算式を知りたい方のために資料にしました。
資料はこちら → チューリングパターンその2
p.1 Gray-Scottモデルが有名です。先日の「2つの話題がリンクした」にも登場しました。u成分とv成分がある場合の式です。ここでは、u成分の拡散項の式について説明します。左下のxy座標平面の中心のu成分濃度をuxyとします。x方向あるいはy方向に距離h離れた箇所のu成分濃度を示しています。右2つのグラフは横軸が距離、縦軸がx方向のu成分濃度変化とy成分の濃度変化を示しています。中心及び中心から距離hだけ左右(x軸)前後(y軸)に離れた地点のu成分の濃度を用いて勾配を算出します。緑が前進差分、ピンクが後進差分と呼びます。hをゼロにした時が中心における勾配になります。この前進差分と後進差分の平均の勾配が青線で、2階微分(ラプラシアン)と呼びます。 Gray-Scottモデル式のΔuはx方向とy方向のラプラシアンの和ですので、拡散項の( )のような差分方程式で書くことができます。この差分方程式は、微分方程式を数値的なシミュレーションするのに好都合な式です。差分方程式の説明は、以前のブログ「情報の積み重ねで未来を予測する」を参照ください。
P.2 プログラムの中では、3×3の番地の数値に中心に-4、前後左右に1、対角に0という重み係数を掛けて数値計算することを意味します。