[物理] 物体の同士の衝突

物体同士が衝突したときの動きについてのメモ書きです。

例えば、以下のように物体A、Bが衝突したとします。

ball-collide

衝突後の物体A、Bの動きについて考えてみたいと思います。
衝突は上のように真正面から衝突するパターンはまれで斜めから衝突する場面が大半でしょう。
しかし、簡単のため真正面の場合で考えたいと思います。

物体A、Bの質量をm_am_b、速度をv_av_bとします。
このとき、運動量保存の法則により以下の関係式が成り立ちます。

m_a v_a + m_b v_b = m_a v_a' + m_b v_b'

上記のv_a'v_b'を求めることが今回の目的です。
物体同士が衝突するとき、弾性係数eにより以下のように表現できます。

e = -\cfrac{v_a' - v_b'}{v_a - v_b}

これは衝突前と衝突後の物体Aに対する物体Bの相対速度の比です。
eの取りうる範囲は0 \le e < 1です。

ここで、式1、2で連立方程式が立つため、自然とv_a'v_b'が解けることになります。
実際に解いてみると以下の答えが求まります。

v_a' = \cfrac{(1+e)m_b v_b + m_a v_a - e m_b v_a}{m_a + m_b}
v_b' = \cfrac{(1+e)m_a v_a + m_b v_b - e m_a v_b}{m_a + m_b}

これで真正面からの物体の衝突の動きを求めることができました。
この応用として任意の向きで物体A、Bが衝突する場合も考えてみます。

ball-collide-diag

基本的な考え方はxyz成分でベクトル分解し、それぞれのベクトル上での2物体の正面衝突とすることです。
したがって、以下のベクトルの方程式が導かれます。

m_a \vec{v_a} + m_b \vec{v_b} = m_a \vec{v_a}' + m_b \vec{v_b}'
e = -\cfrac{\vec{v_a}' - \vec{v_b}'}{\vec{v_a} - \vec{v_b}}

各成分の正面衝突には上の答えがそのまま適用できます。

\vec{v_a}' = \cfrac{(1+e)m_b \vec{v_b} + m_a \vec{v_a} - e m_b \vec{v_a}}{m_a + m_b}
\vec{v_b}' = \cfrac{(1+e)m_a \vec{v_a} + m_b \vec{v_b} - e m_a \vec{v_b}}{m_a + m_b}

これで斜めのパターンについも動きが求められました。