ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

ボールの弾性衝突

2010年04月28日 20時38分49秒 | ソフト開発日記
物理エンジンもどきを作る課題がだされたので、
まずは基本っぽいボールの弾性衝突の勉強から復習を兼ねてコツコツと

パラメータ
ボール1・・・質量 m1, 衝突前の速度 v1, 衝突後の速度 v'1
ボール2・・・質量 m2, 衝突前の速度 v2, 衝突後の速度 v'2

エネルギー保存則より
(1/2)*m1v1^2 + (1/2)*m2v2^2 = (1/2)*m1v'1^2 + (1/2)*m2v'2^2

運動量保存則より
m1v1 + m2v2 = m1v'1 + m2v'2

この2つの式を解いて、衝突後のそれぞれの速度を求めると
v'1 = v1*(m1-m2)/(m1+m2) + 2*m2v2/(m1+m2)
v'2 = 2*m1v1/(m1+m2) + v2*(m2-m1)/(m1+m2)

となる。弾性体のボールの場合はこれでOK。
次に、非弾性衝突について考えると(衝突の際エネルギーが失われるため)
エネルギー保存則が使えないので、跳ね返り係数を導入。

跳ね返り係数Eは相対速度比であらわされ,v1, v'1, v2, v'2が既知のとき
E = -(v'1 - v'2)/(v1 - v2)
となる。

跳ね返り係数が既知であれば、運動量保存則と連立させて解くことができ、
v'1 = v1*(m1-Em2)/(m1+m2) + (1+E)*m2v2/(m1+m2)
v'2 = (1+E)*m1v1/(m1+m2) + v2*(m2-Em1)/(m1+m2)
となる。
跳ね返り係数E=1のとき、弾性衝突と同じ式になる。

・・・式書くのが面倒くさい&解りにくいなぁ。
以降どうやって書いていこう