Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Simple conservation of momentum question

  1. Jul 26, 2006 #1

    i have a question....

    I have two objects going towards each other (in 2 dimensions)

    I know the mass, initial speed and direction....

    I want to know how to figure out what the final speed and direction of the two objects will be after a collision assuming there is not friction....

    thnakyou for any help...
  2. jcsd
  3. Jul 26, 2006 #2


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    A good place to start would be writing an equation for the conservation of momentum;

    [tex]m_{1}\vec{v_{1i}} + m_{2}\vec{v_{2i}} = m_{1}\vec{v_{1f}} + m_{2}\vec{v_{2f}}[/tex]

    Perhaps if you post the full question and outline the steps you have taken and where your difficulties lie, we could be of more use.
  4. Jul 26, 2006 #3
    I'm assuming it's an elastic collision, i.e. they don't stick together and there's no loss of energy due to deformation?
  5. Jul 26, 2006 #4
    well....The question is for a friend who is doing a simple simulation/program thing. during the course of the simulation he has two objects travelling towards each other...and wants a way of figuring out what direction and speed the objects move in after they hit....

    so if it makes it easier...assume this is an elastic collision

    it is just a simple program and so it doesn't need to be super realistic...

    (also i knew the equation Hootenanny posted above here already....but i only know how to get the final velocity of one of the objects (using this equation) if i either know the final velocity of the other or if i know they will both have the same final velocity, neither which occur here)

  6. Jul 26, 2006 #5


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    If we assume that the collision is elastic, then we can also use conservation of energy thus;

    [tex]\frac{1}{2}m_{1}v_{1i}^{2} + \frac{1}{2}m_{2}v_{2i}^{2} = \frac{1}{2}m_{1}v_{1f}^{2} + \frac{1}{2}m_{2}v_{2f}^{2}[/tex]

    Now, we have two equations with two unknowns, namely [itex]v_{1f}[/itex] and [itex]v_{2f}[/itex]. The two equations (conservation of energy and momentum) can be solved simultaneously to yield the values of the unknowns. Do you (and your friend) follow?
  7. Jul 26, 2006 #6
    my friend left school in year 10 so didn't do physics...but i stayed at school and did physics in year 11 and currently in year 12...hence he asked for my help....

    so my friend is completely lost :D

    but to me, what u just said makes sense....

    thankyou very much for that....i will tell you if i have any troubles...
  8. Jul 26, 2006 #7

    1. An elastic collision is one where both momentum and kinetic energy are conserved (e.g., billiard balls, air molecules, etc.). To solve a collision problem with this situation we use both equations:

    [tex]m_{1}\vec{v_{1i}} + m_{2}\vec{v_{2i}} = m_{1}\vec{v_{1f}} + m_{2}\vec{v_{2f}}[/tex]

    [tex]\frac{1}{2}m_{1}v_{1i}^{2} + \frac{1}{2}m_{2}v_{2i}^{2} = \frac{1}{2}m_{1}v_{1f}^{2} + \frac{1}{2}m_{2}v_{2f}^{2}[/tex]

    2. An inelastic collision is one in which momentum is conserved but kinetic energy is not. Then, to solve problems with such collisions you just use:

    [tex]m_{1}\vec{v_{1i}} + m_{2}\vec{v_{2i}} = m_{1}\vec{v_{1f}} + m_{2}\vec{v_{2f}}[/tex]

    3. If the two objects stick together during a collision, it is called a perfectly inelastic collision. For such a collision, the conservation of momentum, becomes:

    [tex]m_{1}\vec{v_{1i}} + m_{2}\vec{v_{2i}} = (m_{1} + m_{2} )\vec{v_{f}}[/tex]
  9. Jul 26, 2006 #8
    we're gonna use an elastic collision

    but i am at a loss as to how to do this....:(

    especially since the two objects are not likely to be in line with each other....

    are u able to explain how to come up with the final velocities a bit more in depth?

    that would be really cool if u could.....:D

  10. Jul 26, 2006 #9
    • Define a 2-D coordinate system and identify the masses and velocities of the objects. I advise you to make your x-axis coincide with one of the initial velocities direction.
    • Make sketches of the situations for both before and after the collision with respect to your coordinate systhem.
    • Write the equations for the total momentum before and after the collision for both coordinates (x and y), since the momentum is conserved in both directions.
      NOTE:Decompose the velocities given in their x and y components.
    • Then, when you find the x and y components of the final velocities, to calculate the magnitude of the velocities use the Pythagorean Theorem:

      [tex]v = \sqrt{{v_x}^2 + {v_y}^2}[/tex]

      To calculate the angle the velocity makes with the horizontal use:

      [tex]\alpha = \tan^{-1}(\frac{v_y}{v_x})[/tex]

    These are the main points, the rest depends on the data given and the variables to determine.

    Hope I could help. :smile:
  11. Jul 26, 2006 #10


    User Avatar

    Staff: Mentor

    Since this is a two-dimensional problem, you need more than conservation of energy and conservation of momentum to determine a unique solution. To see this in a real-world situation, consider shooting a billiard ball against a stationary one. Even if you use the same initial velocity for the moving ball, you can get the balls to recoil at different directions and speeds, by aiming for a glancing collision, or a head-on collision, or something in between.

    To see this mathematically, note that conservation of momentum gives you two equations (one for x-components and one for y-components). Conservation of energy gives you a third equation. So you have three equations that you can solve together. But you have four unknown quantities: the x and y components of velocity of each of the two balls, after the collision. You need as many equations as you have unknowns.

    For spherical objects, if you can ignore their spin, you can get a fourth equation involving the "impact parameter" that describes how glancing the collision is. If you Google around with search phrases like "two dimensional collision impact parameter" you can probably find lecture notes with the detailed solution.
  12. Jul 26, 2006 #11


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    Ahh, thanks jtbell, I didn't spot that the OP needed a direction also, my bad.
  13. Jul 26, 2006 #12
    Thank you jtbell! :approve:
    Sorry, delfick for my incomplete explanation. :blushing:
  14. Jul 27, 2006 #13
    thankyou all!

    i won't be able to think about this properly to see if i really understand it for a few days from now due to school and such..... (i think it makes sense...probably won't :p)

    so basically expect my cries for help in a few days !

    (please note that i will try hard to understand it myself first :D)

  15. Jul 31, 2006 #14
    What we need

    Hello, this is Delficks friend.

    I'll try to explain the problem as best i can.

    We have two 2D objects, which in order to make it easier for the computers running this simulation, are treated as circles.

    We have the velocity and mass of each object, and can add any other data needed. As this is a computer simulation, I am not limited by what goes into the equation, so if we need to for instance know the friction, i can always go back and make up values for the objects. Although in that case, friction will probably just complicate the situation.

    Ok, so the two objects collide, and we can know any information we want about the objects before the collision. Then i want to be able to calculate the new velocity of both objects, at the very minimum taking into account the mass of each object.

    So, i have this:

    x, y value of each object at the time of collision.
    radius of each object.
    direction each object is heading. This is in this format:
    0 = right, 90 = down, and so on
    velocity of the object in meters per second
    mass of the object in kilograms

    I obviously know the mass, velocity and direction of each object at the collision, as they are stored as variables in my program (becoming the known values?)

    It doesnt matter how many equations i have to run, but as im not that good with maths, it would be helpfull if you could help me (translate?) the equation so that only one variable is on one side of the equation
    Velocity Of Object 1 = ...
    Some variable needed for Direction calulation =
    Direction of Object 1 = ...
    Velocity Of Object 2 = ...
    Direction of Object 2 = ...

    P.S. Oh, i can determine the angle of the collision easily (good ol' trigonometry)
  16. Feb 8, 2007 #15
    collision problem

    I came across this thread while trying to do basically the same kind of computer simulation. I found an algorithm that seems to work for billiard balls that have the same mass and am trying to figure out how to modify it to take differing masses into account.

    I understand that impact parameter basically gives an angle to the glancing collision which I think would be useful to know that precise angle for attempting to solve these kinds of problems using trigonometry but not so useful for a vector solution which would be preferable for a computer solution. The half-solution I found essentially defines a collision plane as the plane tangent to both spheres on impact and from that gives the spheres a normal component (to the plane) and tangential components (to each other).

    Below is the algorithm that appears to work for objects of the same mass. Can anyone help modify it to take differing masses into account? This isn't a homework problem, it is just something I'm attempting for my amusement.

    # mag() is a function to calculate magnitude of a vector
    # dot() is a function to calculate the dot product of two vectors
    # pos stands for a position vector
    # anything with velocity stands for a velocity vector

    # Step 1: Find the unit normal to the collision plane.
    unitNormal = (ball1.pos - ball2.pos) / mag(ball1.pos - ball2.pos)

    # Step 2: Find the normal component and tangential component of each velocity vector.
    ball1.normalVelocity = -1 * unitNormal * dot(ball1.velocity,-unitNormal)
    ball2.normalVelocity = unitNormal * dot(ball2.velocity,unitNormal)
    ball1.tangentialVelocity = ball1.velocity - ball1.normalVelocity
    ball2.tangentialVelocity = ball2.velocity - ball2.normalVelocity

    # Step3: Calculate New Velocities
    ball1.velocity = ball1.tangentialVelocity + ball2.normalVelocity
    ball2.velocity = ball2.tangentialVelocity + ball1.normalVelocity
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook