bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

ボールの衝突をFunctional Reactive Programmingで表現する(2)

3.追突するボール

簡単な問題で本質をつかんで、一般的な問題に進むのが、常套手段である。特に、高校時代に勉強して以来何十年も力学系の問題などは解いたことはないので、その感覚を取り戻すためにも、簡単な問題を解く中でいろいろなことを観察するのがよい。

最初の問題として、追突する二つのボールを扱うことにする。二つのボールは一直線上を同じ方向に等速度運動しているものとし、先行するボールの速度は、後続するボールの速度よりも遅いものとする。先行するボールを青とし、後続するボールを赤とし、時間変化の中で、衝突するまでの様子を、紙芝居で見ると次のようになる(紙芝居での一画面がコンピュータシミュレーションでの画面の移り変わりを大雑把に作り出していると考えれば、紙芝居の一場面を考察しておくことは重要である)。
f:id:bitterharvest:20150927111217p:plain
f:id:bitterharvest:20150927111229p:plain
f:id:bitterharvest:20150927111240p:plain
f:id:bitterharvest:20150927111250p:plain
f:id:bitterharvest:20150927111302p:plain
なお、上記の図は、愛知教育大学数学科の飯島康之先生のGeometric Constructorを使いました。中学生の頃、内接円や外接円を描くとき、かなり、苦労をしたが、このような道具が当時あったならば、さぞかし助かっただろうと思う。

さて、追突したときはどうなるのであろうか?物理には、追突によって一つ一つの運動量は増えたり減ったりするが、全体の運動量は変わらないという法則がある。運動量保存の法則と呼ばれている。先行するボールの質量を\(m_1\)、追突前の速度を\(v_1\)、追突後の速度を\(v'_1\)とする。また、後続するボールの質量を\(m_2\)、追突前の速度を\(v_2\)、追突後の速度を\(v'_2\)とする。このとき、
\(m_1 \times v_1 + m_2 \times v_2 = m_1 \times v'_1 + m_2 \times v'_2\)
が成り立つ。

この法則は次のようにして得られる。
衝突したとき、先行するボールには進行方向に\(F\)の力がかかる。後続するボールには逆方向の力\(-F\)がかかる。衝突の時間はとても瞬間的な時間とする。これを\(dt\)とする。この時間の間に、先行するボールの速度は\(v_1\)から\(v'_1\)へと変化したので、その加速度は、\(\alpha_1 = (v_1-v'_1) / dt\)となる。これより、先行するボールの運動方程式は、\(m_1 \times \alpha_1 = m_1 \times (v_1-v'_1) / dt = F \)となる。同様に、後続するボールの運動方程式は、\(m_2 \times \alpha_2 = m_2 \times (v_2-v'_2) / dt = -F \)となる。両式より、先の運動量保存の法則が導き出される。

少し、遊ぶことにする。今、二つのボールを一つの物体とみなし、その重心の速度\(V_0\)を考える。一つの物体とみなした時の運動量と二つのボールの運動量の和は同じであるので、\((m_1 + m_2) \times V_0 = m_1 \times v_1 + m_2 \times v_2\)となり、重心の速度は\( V_0 = (m_1 \times v_1 + m_2 \times v_2) / (m_1 + m_2)\)となる。重心の速度は、衝突の前でも衝突の後でも変わることはない。重心(緑色の×)の移動を下図に示した(図では大きさの3乗に比例して質量の多くなるものとした。即ち、長さが2倍になれば質量は8倍になるとした)。
f:id:bitterharvest:20150927142926p:plain

さて、地動説ではないが、重心は常に中心に位置していると見なすと、二つのボールの中心は下図のように移動する。
f:id:bitterharvest:20150927151345p:plain
この図から、両方とも重心の方に向かっていることが分かるとともに、質量の小さい方は重心の方に向かって速い速度で、逆に、大きい方は遅い速度で移動していることが分かる。

この関係は式からも検証できる。重心を中心においた座標系(座標系Bと呼ぶことにする。元の座標系をAとする)では重心の速度は0なので、座標系Bでのそれぞれのボールの速度を元の速度から\(V_0\)を引いたものとなり、それぞれ\(u_1=v_1-V_0, u_2=v_2-V_0\)となる。これより、座標系Bでの二つのボールの運動量の和は0、即ち、\((m_1 \times u_1 + m_2 \times u_2) =0\)となり、\(\frac{u_1}{u_2} = - \frac{m_2}{m_1}\)となる。座標系Bからは、衝突した後も重心の位置はそのままなので、ボールはこの重心から、映画の画面を巻き戻すように、離れていくことが予想される。衝突後のそれぞれのボールの速度を\(u'_1, u'_2\)とすると、\((m_1 \times u'_1 + m_2 \times u'_2) =0\)から、\(\frac{u'_1}{u'_2} = - \frac{m_2}{m_1}\)となることからも想像できる。

物体を衝突させると、勢い良く反発するものがあったり、あまり反発しないものがある、ここでは、勢い良く反発するものを考えることにする。物理的な量でいうと、運動エネルギーが保存されるものを考える。衝突前の運動エネルギーと衝突後の運動エネルギーは等しいので、座標系Bで考えると、
\(\frac{1}{2} \times m_1 \times u_1^2 + \frac{1}{2} \times m_2 \times u_2^2 = \frac{1}{2} \times m_1 \times u'{_1}{^2} + \frac{1}{2} \times m_2 \times u'{_2}{^2} \)
となる。先に得られた、\(\frac{u_1}{u_2} = - \frac{m_2}{m_1}\)と\(\frac{u'_1}{u'_2} = - \frac{m_2}{m_1}\)を利用すると、\(u_1=-u'_1, u_2=-u'_2\)が導かれる。即ち、それぞれのボールは壁に当たって反発したかのように、それぞれ反対の方向に同じ速さで遠ざかっていく。

元の座標系Aでは、
\(v'_1 = u'_1 + V_0 = -u_1 + V_0 = -v_1 + 2 \times V_0 = \frac{(m_1 - m_2) \times v_1+2 \times m_2 \times v_2}{m_1+m_2}\),
\( v_2' = \frac{(m_2 - m_1) \times v_2+ 2 \times m_1 \times v_1}{m_1+m_2}\)
となる。