円板の斜衝突

[問題]

なめらかな水平面上で2つの円板A,Bが弾性衝突をしてはねかえる。
Aの質量 M 速度 \boldsymbol{V}=(V_x,V_y) 衝突時の位置 (X,Y)
Bの質量 m 速度 \boldsymbol{v}=(v_x,v_y) 衝突時の位置 (x,y)
とする。衝突面の摩擦はないものとして、衝突後のA,Bの速度 \boldsymbol{V’}=(V’_x,V’_y)\boldsymbol{v'}=(v'_x,v'_y) を求めよ。
f:id:yokkun831:20200110111558p:plain

[解答]

質量中心系に乗ると簡明と思われる。
重心速度 \boldsymbol{V_G} = \displaystyle\frac{M\boldsymbol{V}+m\boldsymbol{v}}{M+m}=\frac{M\boldsymbol{V'}+m\boldsymbol{v'}}{M+m}
衝突前後のA,Bの重心に対する相対速度を \boldsymbol{U}, \boldsymbol{U'}, \boldsymbol{u},  \boldsymbol{u'}
とする。
\boldsymbol{U} = \boldsymbol{V} - \boldsymbol{V_G}, etc.
また、衝突時にAの中心からBの中心に向かうベクトルを \boldsymbol{r} = (x-X,y-Y)
とする。

Aについて考える。
衝突前後の重心に対する速さは等しいから、
U' = U
また、\boldsymbol{U'}\boldsymbol{U} は、衝突面に対して対称になるから
\boldsymbol{U'}\cdot\boldsymbol{r} = -\boldsymbol{U}\cdot\boldsymbol{r}
が成立する。

2式を連立させると、
U'_x = - \displaystyle\frac{({r_x}^2-{r_y}^2)U_x + 2r_x r_y U_y}{{r_x}^2+{r_y}^2}
U'_y = \displaystyle\frac{({r_x}^2-{r_y}^2)U_y - 2r_x r_y U_x}{{r_x}^2+{r_y}^2}

\boldsymbol{V'} = \boldsymbol{U'} + \boldsymbol{V_G}
により、目的を得る。
Bについても全く同様である。

[付記]
Yahoo! 知恵袋から拾った問題である。質問者はおそらくシミュレーションプログラミングでも考えているのだろう。上記の内容で回答したら、直接の答え「のみ」を要求してきた。プログラミングをするならなおさら、分割定義して記述すべきであろうものを。しかしながら、ヒマにまかせて整理してみた。
f:id:yokkun831:20200110163556p:plain

f:id:yokkun831:20200110115929p:plain
Algodooによるシミュレーションで、まずまずの一致をみた。