Voy a ignorar las rotaciones con el fin de simplificar el problema para su comprensión. Usted tiene que cumplir una serie de inelástica relación de la forma
$$\vec{n}_{k}^\top (\vec{v}_i^+-\vec{v}_j^+) = 0 $$
donde $\vec{n}_k$ es la dirección normal de la $k$-ésimo de contacto, y $i$, $j$ son los órganos de este contacto afecta. El superíndice $\phantom{c}^+$ denota condición después del impacto. Aplicar esta relación con una serie de $k$ impulsos $J_k$ tal que
$$ \vec{v}_i^+ = \vec{v}_i + \frac{\vec{n} J_k}{m_i} $$
$$ \vec{v}_j^+ = \vec{v}_j - \frac{\vec{n} J_k}{m_j} $$
Ya que todo tiene que ocurrir al mismo tiempo es la mejor forma el problema de las matrices.
Considere la posibilidad de un Contacto de la matriz $A$ donde cada columna $k$ +1 en el $i$-ésima fila y -1 en el $j$-ésima fila. Por ejemplo, $A = \begin{pmatrix}0&-1 \\ -1 & 0 \\ 0 & 0 \\ 1 & 1 \end{pmatrix}$ significa que hay dos contactos, uno entre el cuerpo, 2 y 4 y otro entre el cuerpo 1 y 4. (en realidad cada 0 y 1 son 2×2 2D o de 3×3 para 3D cero y la identidad de las matrices).
El inelástica las relaciones son
$$N^\top A^\top v^+ =0$$ con el contacto normal bloque diagonal de la matriz
$$ N = \begin{pmatrix} \vec{n}_1 & 0 & \cdots & 0 \\ 0 & \vec{n}_2 & & 0 \\ \vdots & & & \vdots \\ 0 & 0 & \cdots & \vec{n}_K \end{pmatrix} $$ y
$$ v = \begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_N \end{pmatrix} $$
El impulso de cambio es descrito por la relación
$$ M v^+ = M v - A N J $$ where $M$ is the block diagonal mass matrix $M=\begin{pmatrix}m_1& & & \\ &m_2 & & \\& & \ddots & \\ & & & m_N\end{pmatrix}$ and $J$ the vector of impulses $J^\top=(J_1\,J_2\,\cdots J_K)$
Para resolver el problema combinamos el impulso con el inelástica de colisiones para obtener
$$ v^+ = v - M^{-1} A N J $$
$$ N^\top A^\top \left(v - M^{-1} A N J \right) = 0$$
$$ \left(N^\top A^\top M^{-1} A N\right) J = N^\top A v $$
$$ \boxed{ J = \left(N^\top A^\top M^{-1} A N\right)^{-1} N^\top A v }$$
Ejemplo
Con $A$ anterior (4 2D cuerpos, 2 contactos) y $\vec{v}_i = (\dot{x}_i,\dot{y}_i)^\top$, $\vec{n}_1=(1,0)^\top$, $\vec{n}_2 = (0,1)^\top$ entonces
$$ A = \left(\begin{array}{cc|cc} 0 & 0 & -1 & 0\\ 0 & 0 & 0 & -1\\ \hline -1 & 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ \hline 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0\\ \hline 1 & 0 & 1 & 0\\ 0 & 1 & 0 & 1 \end{array}\right) $$
$$ N = \left(\begin{array}{c|c} 1 & 0\\ 0 & 0\\ \hline 0 & 0\\ 0 & 1 \end{array}\right) $$
$$ M = \left(\begin{array}{cc|cc|cc|cc} m_{1} & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & m_{1} & 0 & 0 & 0 & 0 & 0 & 0\\ \hline 0 & 0 & m_{2} & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & m_{2} & 0 & 0 & 0 & 0\\ \hline 0 & 0 & 0 & 0 & m_{3} & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & m_{3} & 0 & 0\\ \hline 0 & 0 & 0 & 0 & 0 & 0 & m_{4} & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & m_{4} \end{array}\right) $$
$$ v = \begin{pmatrix} \dot{x}_1 \\ \dot{y}_1 \\ \hline \dot{x}_2 \\ \dot{y}_2 \\ \hline \dot{x}_3 \\ \dot{y}_3 \\ \hline \dot{x}_4 \\ \dot{y}_4 \end{pmatrix} $$
$$ N^\top A^\top M^{-1} A N = \left(\begin{array}{cc} \frac{1}{m_{1}} + \frac{1}{m_{4}} & 0\\ 0 & \frac{1}{m_{2}} + \frac{1}{m_{4}} \end{array}\right) $$
$$ N^\top A^\top v = \begin{pmatrix} \dot{x}_4-\dot{x}_2 \\ \dot{y}_4 - \dot{y}_2 \end{pmatrix} $$
$$ J = \begin{pmatrix} \frac{\dot{x}_4-\dot{x}_2}{\frac{1}{m_2}+\frac{1}{m_4}}
\\ \frac{\dot{y}_4-\dot{y}_1}{\frac{1}{m_1}+\frac{1}{m_4}} \end{pmatrix} $$
Entonces
$$v^+ = v - M^{-1} N J = \begin{pmatrix}
\dot{x}_1 \\
\frac{m_1 \dot{y}_1 + m_4 \dot{y}_4}{m_1+m_4} \\
\frac{m_2 \dot{x}_2 + m_4 \dot{x}_4}{m_2+m_4} \\
\dot{y}_2 \\
\dot{x}_3 \\
\dot{y}_3 \\
\frac{m_2 \dot{x}_2 + m_4 \dot{x}_4}{m_2+m_4} \\
\frac{m_1 \dot{y}_1 + m_4 \dot{y}_4}{m_1+m_4} \end{pmatrix} $$
Apéndice
Para incluir rotaciones de seguir las directrices aquí: