振り子というと、物理の中でもかなり退屈なものに見えます。糸の先に重りを付けて、左右に揺れるだけ。周期も学校で習う公式で簡単に計算できます。
そこで私は、1つのプログラムの中に6種類の振り子を実装してみました。この記事では、それらを8本の動画で紹介します。
実際に作ってみると、「単純な振り子」と呼べるものはほとんどありませんでした。しかも、一番普通の振り子でさえ、よく見ると学校で習った公式から少しずつ外れていきます。
単振り子 — 学校の公式はいつまで正しいのか
まずは最も普通の振り子です。学校では周期を
T = 2π√(L/g)
と習います。しかし、この公式が正確なのは振れ角が小さい場合だけです。およそ数度程度なら非常によく一致しますが、振り子を大きく持ち上げると周期は少しずつ長くなります。90度近くまで持ち上げると、その差はすでに無視できなくなり、170度近くになると周期は学校の公式から大きく外れます。理由は単純です。振り子を元に戻そうとする力は角度そのものに比例するのではなく、
sin θ
に比例します。小さい角度では
sin θ ≈ θ
とみなせるため、学校の公式が使えます。しかし角度が大きくなると、この近似はだんだん成立しなくなります。私のプログラムでは、小角近似による周期と、楕円積分を使って求めたより正確な周期の両方を表示しています。「単純な振り子」でも、実際には完全には単純ではありません。
二重振り子 — 方程式は決定論的なのに未来が読めない
次は、振り子の先にもう1つ振り子を取り付けます。 これだけで状況は一気に変わります。
ほとんど同じ初期条件を持つ振り子を何個も同時に動かしてみます。最初の角度の違いは、ほんの千分の一度程度です。
最初はすべてほぼ同じように動きます。しかし少し時間が経つと軌道がずれ始め、さらに時間が経つと、それぞれがまったく別の運動をするようになります。これがカオスです。ここで重要なのは、プログラムの中に乱数を入れているわけではないことです。運動方程式そのものは完全に決定論的です。同じ初期条件なら、必ず同じ結果になります。問題は、初期条件のごく小さな違いが時間とともに指数関数的に増幅されることです。最初はほとんど測定できないような誤差でも、十分な時間が経つと運動そのものと同じくらい大きな違いになります。カオスとは「ランダムに動く」という意味ではありません。方程式は決まっているのに、未来を長期間予測することが事実上できなくなる現象です。
ばね振り子 — 揺れと上下運動の間をエネルギーが行き来する
次は、糸の代わりにばねを使った振り子です。この振り子には2種類の運動があります。普通の振り子のように左右へ揺れる運動と、ばねが伸び縮みして上下する運動です。この2つの運動の周波数が特定の関係になるようにばねの硬さを調整すると、面白いことが起こります。左右の振れが大きくなったあと、今度はその振れが小さくなり、その代わりに上下運動が大きくなります。そしてしばらくすると、また逆になります。外から新しいエネルギーを与えているわけではありません。エネルギーが「左右の振動」と「上下の振動」の間を行ったり来たりしているだけです。1つの振り子の中で、2つの異なる運動モードがエネルギーを交換しているわけです。
強制振動と共振 — なぜ特定の周波数だけが危険なのか
次は振り子を外部から周期的に揺らします。ゆっくり揺らすと、振り子はそれについていくだけです。逆に非常に速く揺らすと、振り子はほとんど反応しません。ところが、外から加える振動の周波数が振り子自身の固有周波数に近づくと、振幅が急激に大きくなります。これが共振です。どれくらい大きくなるかは摩擦によって変わります。摩擦が強ければ共振のピークは低く広くなります。摩擦が小さければ、ピークは高く、細くなります。プログラムでは、この関係を共振曲線として同時に表示しています。周波数を変えていくと、ある狭い領域だけで振幅が大きくなる様子がそのまま見えます。橋の上で兵士が足並みをそろえて行進しないよう指示される理由も、基本的には同じです。外力そのものが非常に大きくなくても、構造物の固有振動数と一致すれば、振動は少しずつ蓄積されて大きくなる可能性があります。
円錐振り子 — 左右には揺れず、円を描く
円錐振り子は、普通の振り子とは見た目からして違います。重りに横向きの速度を与えると、左右に往復する代わりに、水平方向に円を描いて動きます。そのとき糸全体は空間の中で円錐を描きます。ただし、どんな速度でもきれいな円になるわけではありません。一定の角度を保ちながら完全な円運動をするためには、その角度に対応する特定の速度が必要です。速度が少し大きすぎたり小さすぎたりすると、重りは円を描きながら上下にも動き始めます。上から見ると円に近くても、横から見ると軌道は波打っています。完全に単純な円運動になる条件は、実はかなり限定されています。
フーコーの振り子 — 振り子ではなく地球が回っている
最後は、最も有名な振り子の1つであるフーコーの振り子です。振り子そのものは、ほぼ同じ平面の中で揺れ続けます。しかし地上から見ると、その振動面がゆっくり回転しているように見えます。実際には振り子の面が積極的に回っているのではありません。地球のほうが、その下で回転しています。この回転速度は緯度によって変わります。北極や南極では、およそ1日で振動面が一周します。中緯度ではもっと時間がかかり、赤道ではこの効果は消えます。1851年、レオン・フーコーはパリのパンテオンに巨大な振り子を設置しました。当時の人々は、その場に立ったまま、地球が自転していることを目で見ることができました。天体を観測する必要もありません。巨大な振り子がゆっくりと軌道の向きを変えていく。それだけで、自分たちが立っている地面そのものが動いていることが分かります。
すべて同じプログラムの中で計算しています
これらの運動は、あらかじめ作っておいたアニメーションを再生しているわけではありません。単振り子、二重振り子、ばね振り子、強制振動、円錐振り子、フーコーの振り子。それぞれについて運動方程式を数値的に解き、その結果をリアルタイムで描画しています。画面には軌道だけでなく、周期、周波数、エネルギー、振幅など、そのモデルで意味のある物理量も表示されます。そして、モデルが計算できないものについては、それらしい数字を作って表示するのではなく、「このモデルでは求めていない」と分かるようにしています。振り子は、一見すると「重りが左右に揺れるだけ」の単純な系です。しかし、条件を少し変えるだけで、非線形振動、カオス、エネルギー交換、共振、円運動、そして地球の自転まで見えてきます。単純なのは振り子ではなく、最初に学校で習う近似のほうなのかもしれません。
このモジュールは、私が開発している Makarov Physics Suite の一部です。