二重振り子シミュレータ in Python

Pocket
LinkedIn にシェア
LINEで送る

二重振り子とは、1つの振り子の先にもう1つ振り子を連結したものである。1つの振り子は周期Tの規則的な運動をするが、二重振り子は非周期的で極めて複雑な運動をすることが知られている。これは身近な道具から観察できるカオスの代表例であり、カオス理論の初学者に実演してみせるには最適な実験である。

今回、この二重振り子をコンピュータ上で表現するためのコードを作成した。実験の振り子は糸が剛体である場合を想定し、質点はそれぞれの糸の先端に存在している。

以下、変数の一覧

g … 重力加速度

m1 … 質点1の質量

m2 … 質点2の質量

l1 … 糸1の長さ

l2 … 糸2の長さ

dt … 微小時間間隔

theta1 … 糸1がy軸となす角度(初期角度)

theta2 … 糸2がy軸となす角度(初期角度)

v_theta1 … 糸1がy軸となす角速度(初速度)

v_theta2 … 糸2がy軸となす角速度(初速度)

起動方法は、コマンドラインから

python double_pendulum.py none

と呼び出す。引数noneをtrajectoryに変更すると、質点2の軌跡を表示する。

Pocket
LinkedIn にシェア
LINEで送る

神経科学を研究している博士学生。Rust, Python, C/C++, Unityを活用して、世界の様々な現象を分析・シミュレートしています。理系分野だけでなく、政治学や社会学も、もちろん分析対象です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です