フーコーの振り子 体感キット?


概要

フーコーの振り子の動き(振動面が回転する様子)を体感する? 簡単な紙細工とGIFアニメを作ってみました。

紙細工の作り方

  • 画像を印刷、紙を太線で切り抜いて、まんなかの開いた円板を作る
  • 0°の左の太線にもハサミを入れる
  • 0°の線を例えば 50°の破線の上に重なるように紙を曲げて、クリップなどで固定する。上部を切り取った円錐面ができる
    • 目盛は緯度(北緯)を示す。緯度をかえて試してみてください
    • まんなかが開いているのは単に曲げやすくするためです
組み立て 完成写真

(あんまり面白くないけど)見方・遊び方

静止系から見た動き

作った円錐の上部(北)を上から見て、左回り(西から東)で順に矢印を見ていきます。
緯度 = 50°では一周すると、矢印は左回りに約90°回転することが分かります。

  • 正確には $2 \pi (1-sin(緯度)) ラジアン$ で 84.2°
  • なお一周したあとは、上にある0°の面でなくて下に隠れている面に続きます(すぐ終わっちゃうけど)

これが静止系から見たフーコーの振り子の回転の様子です。

みかけの動き

こんどは円錐を固定し、自分が左回り(西から東)に回りながら、正面にくる矢印を見ていきます。
(不精な方は、自分は動かずに円錐を右回り(東から西)に回して、正面にくる矢印を見ていく)

緯度 = 50°では一周すると、矢印は右回りに約270°回転することが分かります。

  • 正確には $- 2 \pi sin(緯度) ラジアン$ で -275.8° (マイナスは右回りを示す)
  • ちなみに、フーコーの振り子の公開実験が行われたパリの緯度は北緯48度51分44秒

これが地表に固定された観測者から見たときのフーコーの振り子の回転の様子、すなわちみかけの動きです。

3D アニメ

北緯50°での振り子の回転の様子の GIF アニメです。(描画は2周だけ、あとは繰り返しなので境目で不連続になる)

アニメが止まっている場合は「画像だけを別タブ/ウインドウに表示」して、リロードしてみてください。

説明

緯度=90°(北極) の場合

  • 北極では地面は地軸と直交した平面内で回転する
  • 慣性により振動面の向きが保たれるので、振り子は静止系に対しては回転せず、
  • 単に平行移動 する

一般の緯度の場合

  • 一般の緯度では、地面は地軸に対して一定の角度(90° - 緯度)だけ傾いて地軸のまわりを回転する
  • 従って振り子は円錐面内で動いていく

  • 振り子はこの円錐面内で 平行移動 していく、と考えられる
    • もちろん力学的な現象であるフーコーの振り子の動きと、数学・微分幾何学でいう平行移動 が対応するかは検証する必要がありますが、それはまたの機会に。。。

でも 曲面上の平行移動 は難しい

  • 曲面上の平行移動は、移動させる経路に依存する
  • 測地線とか共変微分とか接続とか。。。

でも、実は円錐面は曲がっていない!

  • 円錐面は平面に展開できる(可展面というらしい、要するにガウス曲率 0)
  • というわけで、矢印を展開図(扇形)上で平行移動させて、それを円錐面に変換したのが上の紙細工とアニメです
扇形上で平行移動 それを円錐にすると
50°
30°

扇形・円錐面変換

上の紙細工は以下のように、平たい扇形から円錐面への変換(変形)をやっていることになります。

  • 扇形の半径を $R$、中心角を $\Theta$
  • これを絞ってできる円錐 の底面の中心角を $\Theta' (> \Theta)$ とする
    • $\Theta'=2 \pi$ のときちょうど隙間のない円錐面になる
  • 扇形上の点の極座標を $(r,\theta)$
  • それに対応する円錐面上の点を円柱座標で $(r', \theta', z')$

とすると

  • $a = \Theta/\Theta' (< 1)$
  • $r' = a r$
  • $\theta' = \theta / a$
  • $z' = (R - r) \sqrt{1 - a^2}$

この変換は等長変換(長さも角度も変えない変換、伸縮のない変換)なので、扇形状の平行線は円錐面上の平行線に変換されることになります。

To Do:(いつになるか分からへんけど)続編予定

  • 角度欠損(デカルトの不足角の定理)とガウス・ボネの定理(数学)
  • 角度・角速度ベクトル(力学)
  • フーコーの振り子 or ジャイロスコープの運動(力学)

参考

  • en.wikipedia "Foucault pendulum"
  • Oprea, John (1995). "Geometry and the Foucault Pendulum" . Amer. Math. Monthly 102: 515–522.
    • これは上の最初の Reference だけど 球面 で説明している
    • でも基本的な理解には 円錐面 で十分、微分も積分も不要なのだ

蛇足

図とアニメは sage で作りました。
sage も python も初心者で、まだいろいろ分からない。。。

  • 3Dアニメで view point を回転するのはどうすりゃいいの ??
    • やむなくモデルのほうを回転したが、今度は回転でサイズが変わってしまう
      • しなたないので、フレームサイズを固定するために2点を追加して描画。。。
  • アニメの外枠(frame) が取れない、 奥の円錐面にへんな影。。。なんでやろ?

なおこのアニメには、実はまだ微妙なバグがあって。。。

  • 振り子の最初の向きを「横向き」にすると、へんな動きをします
  • 原因は苦労の上分かったけど、どう直すか悩み中。。

5/14 修正済み

(原因)

  • 平行移動した線分を描くために、以前は2点を展開図上の x,y 座標で求め、それを $r, \theta$ にして円錐面上の2点を求めていた
  • これだと $\theta$ を求めるのに arc tangent など必要で、どこかで位相 $\theta$ が $2 \pi$ だけ飛んでしまう
  • ところが $\theta$ の周期は $2 \pi$ だが、$\theta'$ の周期は $2 \pi/a$ なので、ときどきおかしくなっていた

(修正)

  • 2点の x,y 座標でなく、円錐面上の接ベクトルで線分を描くように修正。接ベクトルの計算は sage 君がやってくれる
    • それくらい手で計算しなよな、簡単なんだから。ボケるぞ!
    # 円錐面上の線分の plot を得る。 r, len, phiを一定にして th を変化させると緯度上を平行移動した線分が得られる
    # surf: 円錐面の ParametrizedSurface3D
    # r, th: 平面上の極座標での位置
   # len, phi: 線分の長さの半分と、線分とX軸とのなす角度
    def pline(self, surf, r, th, len, phi, **args):
        at = (r,th)     # 平面上の極座標での位置ベクトル
        dir = (cos(phi-th), sin(phi-th))  # 平面上の極座標での phi方向のベクトル
        t1 = surf.tangent_vector(at, dir) # 円錐面の接ベクトルの (x,y,z) 座標
        t1 = t1 / abs(t1)  # 規格化
        p0 = self.xyz0(at)  # 中心点の  (x,y,z) 座標
        p1 = p0 + len*t1    # 線分の開始点
        p2 = p0 - len*t1    # 線分の終了点
        t = var('t')
        eq = p1*t + p2*(1-t) # (x,y,z) 座標での線分の方程式
        a = parametric_plot3d(eq, (0,0.5), color='red', thickness=5, **args)
        b = parametric_plot3d(eq, (0.5,1), color='green', thickness=5, **args)
        return a+b;