二重振り子のシミュレーション


二重振り子を例にカオス理論について解説します(オタ芸ではありません。似てるけど)

H﨑  2018/6/28  力学, 二重振り子

二重振り子とは??

普通の振り子の先にもう一つ振り子をつないだだけの簡単な構造なのですが、これがまた興味深い。いわゆるカオスな運動をします。

カオス理論は、力学系の一部に見られる、数的誤差により予測できないとされている複雑な様子を示す現象を扱う理論である。ここで言う予測できないとは、決してランダムということではない。その振る舞いは決定論的法則に従うものの、初期値鋭敏性ゆえに、数値解析の過程での誤差によっても、得られる値と真の値とのずれが増幅される。そのため予測が事実上不可能という意味である。(Wikipediaより引用)

もう少し噛み砕いて説明すると、振り子の動きを運動方程式として書くことができる、つまり振り子はある法則に従って動いているのですが、その運動方程式を使って二重振り子の動きを予測することは不可能であると言うことです。

どれだけ高性能なスパコンを使っても、数十秒後には誤差が指数関数的に増加して、バラバラの動きとなってしまいます。

そのとっても無意味な運動方程式を立ててやる!!というのが今回のお題です。

どうでもいいですけど、二重振り子の動きとオタ芸の腕の動きってなんか似てません?はい、どうでもいいですね。

ひたすら計算

Drawing

二つのおもりで構成される二重振り子について考えてみたいと思います。

おもり1は質量m1で紐の長さはl1で角度をθ1、座標を(x,y)
おもり2は質量m2で紐の長さはl2で角度をθ2、座標を(X,Y)とします。
そうすると

x=l1sinθ1 , y=l1cosθ1
X=l1sinθ1+l2sinθ2 , Y=l1cosθ1l2cosθ2

各座標の速度は時間tで微分して

˙x=l1˙θ1cosθ1 , ˙y=l1˙θ1sinθ1
˙X=l1˙θ1cosθ1+l2˙θ2sinθ2 , ˙Y=l1˙θ1sinθ1+l2˙θ2sinθ2

おもり1の速度をv、おもり2の速度をVとすると

v2=˙x2+˙y2=l21˙θ12
V2=˙X2+˙Y2=(l1˙θ1cosθ1+l2˙θ2cosθ2)2+(l1˙θ1sinθ1+l2˙θ2sinθ2)2=l21˙θ12+l22˙θ22+2l1l2˙θ1˙θ2(cosθ1cosθ2+sinθ1sinθ2)=l21˙θ12+l22˙θ22+2l1l2˙θ1˙θ2cos(θ1θ2)

よって運動エネルギーは

T=12m1v2+12m2V2=12(m1+m2)l21˙(θ1)2+12m2l22˙θ22+m2l1l2˙θ1˙θ2cos(θ1θ2)

位置エネルギーは

U=m1gl1(1cosθ1)+m2g(l1(1cosθ1)+l2(1cosθ2))=(m1+m2)gl1(1cosθ1)+m2gl2(1cosθ2)

ラグランジアンは

L=12(m1+m2)l21˙θ12+12m2l22˙θ22+m2l1l2˙θ1˙θ2cos(θ1θ2)(m1+m2)gl1(1cosθ1)m2gl2(1cosθ2)

簡便のためm1=m2=ml1=l2=lという場合を考えると

L=ml2˙θ12+m2l2˙θ2+ml2˙θ2˙θ2cos(θ1θ2)2mgl(1cosθ1)mgl(2cosθ1+cosθ23)=ml2(˙θ12+12˙θ22+˙θ1˙θ2cos(θ1θ2))+mgl(2cosθ1+cosθ23)

保存力場中でのラグランジュ運動方程式は

ddt(L˙θ1)Lθ1=0
ddt(L˙θ2)Lθ2=0

それぞれの項を計算すると

ddt(L˙θ1)=2ml2¨θ1+ml2(¨θ2cos(θ1θ2)˙θ2(˙θ1˙θ2)sin(θ1θ2))
Lθ1=ml2˙θ1˙θ2sin(θ1θ2)2mglsinθ1
ddt(L˙θ2)=ml2¨θ2+ml2(¨θ1cos(θ1θ2)˙θ1(˙θ1˙θ2)sin(θ1θ2))
Lθ2=ml2˙θ2˙θ2sin(θ1θ2)mglsinθ2

¨θ1¨θ2について整理すると

¨θ1=12(¨θ2cos(θ1θ2)˙θ22sin(θ1θ2)2glsinθ1)
¨θ2=¨θ1cos(θ1θ2)+˙θ12sin(θ1θ2)glsinθ2

まとめ

¨θ1¨θ2に関しての常微分方程式までは導出できたので、次回はルンゲ・クッタ法を用いて数値計算してみたいと思います。

comments powered by Disqus