$ \DeclareMathOperator{\arccosh}{arccosh} \DeclareMathOperator{\arcsinh}{arcsinh} \DeclareMathOperator{\rank}{rank} \DeclareMathOperator{\rot}{rot} \DeclareMathOperator{\grad}{grad} \DeclareMathOperator{\diver}{div} $

ばね振り子

ばね振り子 - スクリーンショット
ばね振り子とはその名の通り、ばねと振り子を組み合わせた物で、ばねにおもりを付けたものです。
ばね振り子のおもりの運動方程式を Lagrange 運動方程式から導出する課程を解説します。
なお、最下部に Java による物理シミュレーションを載せておきます。

1装置

ばね振り子の装置
座標は上の図のようにとることとします。
ばねはフックの法則に従うものとし、ばねの自然長は $l_0$、ばね定数は $k$、おもりの重さは $m$ とします。 $g$ は重力定数です。
また、
\begin{equation} \begin{cases} x = l \sin \theta \\ y = l \cos \theta \end{cases} \therefore \begin{cases} \dot{x} = \dot{l} \sin \theta + l \dot\theta \cos \theta \\ \dot{y} = \dot{l} \cos \theta - l \dot\theta \sin \theta \end{cases} \end{equation}
(1)
に注意します。

2Lagrangian の導出

まずは Lagrangian を計算しましょう。
まず、運動エネルギー $T$ は、
\begin{eqnarray*} T & = & \frac{1}{2} m v^2 \\ & = & \frac{1}{2} m (\dot{x}^2 + \dot{y}^2) \\ & = & \frac{1}{2} m (\dot{l}^2 + l^2 \dot\theta^2) \end{eqnarray*}
(2)
つぎにポテンシャルエネルギー $V$ は、
\begin{equation} V = \frac{1}{2} k (l - l_0)^2 - mgl\cos\theta \\ \end{equation}
(3)
です。
以上から Lagrangian $L$ は、
\begin{eqnarray*} L & = & T - V \\ & = & \frac{1}{2} m (\dot{l}^2 + l^2 \dot\theta^2) - \frac{1}{2} k (l - l_0)^2 + mgl\cos\theta \end{eqnarray*}
(4)
となります。

3運動方程式の導出

Lagrangian が求まったので、運動方程式を計算していきましょう。 変数が $l, \theta$ の二つあるので、運動方程式は二個たてることができます。

3.1l から

\begin{eqnarray*} \frac{d}{dt}\left(\frac{\partial L}{\partial \dot{l}}\right) & = & \frac{\partial L}{\partial l} \\ \frac{d}{dt}(m \dot{l}) & = & ml\dot\theta^2 - k(l-l_0) + mg\cos\theta \\ m\ddot{l} & = & ml\dot\theta^2 - k(l-l_0) + mg\cos\theta \\ \ddot{l} & = & l\dot\theta^2 - \frac{k}{m}(l-l_0) + g\cos\theta \end{eqnarray*}
(5)

3.2θ から

\begin{eqnarray*} \frac{d}{dt}\left(\frac{\partial L}{\partial \dot\theta}\right) & = & \frac{\partial L}{\partial \theta} \\ \frac{d}{dy}(ml^2\dot\theta) & = & - mgl\sin\theta \\ 2ml\dot{l}\dot\theta + ml^2\ddot\theta & = & - mgl\sin\theta \\ \ddot\theta & = & \frac{-g\sin\theta - 2\dot{l}\dot\theta}{l} \end{eqnarray*}
(6)

以上で、
\begin{equation} \ddot{l} = l\dot\theta^2 - \frac{k}{m}(l-l_0) + g\cos\theta \\ \end{equation}
(7)
\begin{equation} \ddot\theta = \frac{-g\sin\theta - 2\dot{l}\dot\theta}{l} \end{equation}
(8)
という二本の運動方程式を得ることができました。

4シミュレータ

Java アプレットによるばね振り子のシミュレータです。

4.1アプレット

4.2説明

4.2.1左上の表示

  • FPS
    FPS です。60 が標準です。 これは画面の再描画間隔であり、内部での計算はもっと多くやっています。
  • l
    ばねの長さです。
  • dl/dt
    $\frac{dl}{dt}$です。
  • s
    $\theta$ のことです。
  • ds/dt
    $\frac{ds}{dt}$です。

4.2.2装置

青い玉がおもりです。
とてもばねには見えませんが、青い玉から生えている黒い線がばねです。
丸い大きな黒い円は、おもりを静かにつるしたときに釣り合う場所を表しています。

4.3使い方

画面上をクリックすると、そこからおもりが出発します。 ただしあまり遠いところから手を離すと(理論上は)ばねの長さが $0$ になる状況が出てきてしまい、 バグるので、そのような場所からはスタートできないようにしてあります。

4.4近似法について

Runge-Kutta 法を用いています。 Runge-Kutta 法についてはここから。