みたにっき@はてな

三谷純のブログ

ローレンツ アトラクタ

この二重振り子の話をTwitterで見かけて、面白いなぁと思いました。

 

その後、別の方のこのようなツイートも。

 

うわー。楽しい。

初期値がほんの少し違うだけで、その後の挙動が大きく変化するような現象は、カオスの分野でよく研究されています。

カオス理論 - Wikipedia

 

 

私の場合、カオスと言ってすぐに思い当たるのがロジスティック写像とローレンツ方程式で、ローレンツ方程式だったらすぐに実装できるでしょうと思ったので、さっそくJavaScriptでアニメーション表示してみました。

 

 個々の点をローレンツ アトラクタと呼ぶみたいですね。しばらく一緒に動作しながらも、ある一定時間たつと、バラバラになって、それぞれが独立して渦を描くように動き出します。

 

Wikipediaに掲載されている微分方程式は次の通り。

f:id:JunMitani:20170531231349p:plain

それぞれの微分値を微小時間 dt の値だけ掛けて加算すればよいので、簡単に計算できます。

プログラムコードはこんな感じ。

Lorenz attractor

 

精度よく計算するために、ルンゲクッタ法を使用する方法が紹介されていることもありますが、今回は精度は気にしていません。初期値の設定もかなり適当ですので、いろいろいじってみると、面白い結果がえられるかもしれません。