# Simultaneous equation - momentum and kinetic energy

1. Oct 4, 2009

### andythecc

I'm trying to work out elastic collision equations for some small game development.

In any body, p is momentum, m mass, KE kinetic energy:

Code (Text):
p = mv
KE = m v² /2
Therefore

Code (Text):
KE = p² / 2m  (also confirmed in many textbooks and resources)
So, two colliding bodies, A and B, where A.m is the mass of A, B.p the momentum of B and so on, T is total, so T.E being total energy and T.p being total momentum:

(after collision)

A.E + B.E = T.E

So

Code (Text):
A.p²     B.p²
----  +  ----  =  T.E
2A.m     2B.m
Since A.p + B.p = T.p ; A.p = T.p - B.p:

Code (Text):
A.p²     (T.p-A.p)²
----  +  ----------  =  T.E
2A.m        2B.m

Code (Text):

A.p² 2B.m      (T.p-A.p)² 2A.m
----------  +  ----------------  =  T.E
2A.m 2B.m      2B.m       2A.m

A.p² 2B.m   +  2A.m  (T.p-A.p)²
------------------------------- = T.E
4A.m B.m
Expanded the bracket:

Code (Text):
A.p² 2B.m   +  2A.m  (T.p² - 2A.p T.p + A.p²)
---------------------------------------------- = T.E
4A.m B.m
Multiplied by the denominator:

Code (Text):
T.E * 4 A.m B.m = A.p² 2B.m   +  2A.m  (T.p² - 2A.p T.p + A.p²)
Expanded the remaining bracket:

Code (Text):
T.E * 4 A.m B.m = A.p² 2B.m   +  2A.m T.p² - 4A.m A.p T.p + 2A.m A.p²

Code (Text):
T.E * 4 A.m B.m - 2A.m T.p²  =  A.p² (2B.m) - A.p(4A.m T.p) + A.p² (2A.m)
Collect up:

Code (Text):
T.E * 4 A.m B.m - 2A.m T.p²  =  A.p² (2B.m+2A.m) - A.p (4A.m T.p)
Make equal to zero:

Code (Text):
0  =  A.p² (2B.m+2A.m) + A.p (-4A.m T.p) - (T.E * 4 A.m B.m - 2A.m T.p²)
Now we should be able to apply the quadratic equation, since 0 = ax² + bx + c. However, calculating the final momentum and E of A by this method and calculating the remaining momentum and E for B, the final energy is always many times greater than the initial input energy. Help >__<

I've taken

Code (Text):
a = (2B.m+2A.m) + A.p (-4A.m T.p)
b =  -4A.m T.p
c = - (T.E * 4 A.m B.m - 2A.m T.p²)

Used x = -b ± sqrt(b²-4ac), both plus and minus come out vastly incorrect
Thanks :)