Hacker News new | past | comments | ask | show | jobs | submit login

This doesn't sound correct to me. The acceleration due to gravity is the same on both balls. However, since the lead ball weighs more than the wood ball, the force of gravity on the lead ball is stronger than the force on the wood ball (F_g = mg).

The effect of air resistance can be modeled by a different force. It is typically modeled as a linear function of velocity rather than mass, and it models the behaviour that the faster an object is traveling the more it is affected by air resistance which acts in the opposite direction as the direction the object is traveling in (F_a = -kv). By adding the two forces together, you get a second-order differential equation that describes how the object behaves (F_g + F_a = F_net = ma).

[1] https://oregonstate.edu/instruct/mth252h/Bogley/w02/resist.h...




> The effect of air resistance can be modeled by a different force. It is typically modeled as a linear function of velocity rather than mass [...]

That's the key. The air resistance force is a function of velocity [1], and it is not a function of mass. Two bodies that are aerodynamically identical (same shape, size, same boundary interactions with the air) experience the same air resistance force at a given velocity, regardless of their masses.

As you note, the falling body has two opposing forces. Gravity, which is proportional to the mass of the body, and air resistance, which depends on velocity and does not depend on mass. The motion of the body is determined by the net force.

The net force on the ball is mg + D(v), where m is the mass of the ball, g is 9.81 m/s^2, and D(v) is the function that gives air resistance of the ball at velocity v. (Note: I'm using a coordinate system where balls fall in the positive direction. In this system D(v) will be negative).

The net acceleration on the ball is net force divided by mass. This is g + D(v)/m.

Note the effect of varying the mass, leaving all else the same. Remember, D(v) is negative, so the effect of the D(v)/m term is to reduce the net acceleration the ball feels. In other words, it is to make the ball fall slower.

If we raise the mass, we reduce the magnitude of D(v)/m. We reduce the amount that air resistance slows down the ball. If we lower the mass, the opposite happens. Air resistance slows down the ball more.

For a given ball, as it falls and picks up speed, the air resistance goes up, becoming more and more effective at countering the gravitation force. This puts an upper limit on how fast the ball can fall--the so-called "terminal velocity". This is the velocity where D(v) = -gm. Note that for balls with larger mass, terminal velocity will be higher.

[1] a linear function at very low speed with no turbulence, a quadratic function in most situations we normally encounter in everyday life. The quadratic is 1/2 p Cd A v^2, where p is the density of the air, Cd is the drag coefficient (0.47 for a sphere), A is the cross sectional area, and v is the speed relative to the air.


You are correct only if all else is the same. However, I take issue with the assumption that you can leave all else the same. The net force on a heavier object is a higher for the lead ball than for the wood ball. The net force for the lead ball is m_l x a, but the net force on the wood ball is m_w x a where m_l>m_w, and the acceleration a depends on the shape of the object and can be thought of as the same.


We were given that the lead ball and the wood ball were the same size. I am assuming that they are both spherical.

The drag force is 1/2 p Cd A v^2 where p is the density of the air, Cd is the coefficient of drag, A is the cross sectional area, and v is the velocity.

If both balls are spheres, Cd is the same for them (0.47). The air density is the same for both. The cross sectional area is that same. Hence, the two balls have the same drag force at the same velocity. Hence, the deceleration from drag is lower for the heavier ball.

Here's an example with a basketball and a bowling ball showing what happens: https://www.youtube.com/watch?v=mGZLuaJ5MOc

Note that you need quite a long drop to see a noticeable difference.

Below is a simple simulator that drops two spherical balls of the same size but different mass, and prints how far they have fallen and how fast they are going each second for the first 10 seconds. I'll give some results first, and then the simulator code if anyone wants to play with it.

Here are the results for a 4 cm diameter lead ball and a 4 cm diameter ping pong ball:

  0.0 (0.0, 0.01) (0.0, 0.01)
  1.0 (4.9, 9.79) (4.11, 6.99)
  2.0 (19.51, 19.38) (12.02, 8.39)
  3.0 (43.54, 28.63) (20.51, 8.54)
  4.0 (76.58, 37.37) (29.06, 8.55)
  5.0 (118.06, 45.5) (37.62, 8.56)
  6.0 (167.34, 52.94) (46.17, 8.56)
  7.0 (223.7, 59.66) (54.73, 8.56)
  8.0 (286.41, 65.64) (63.29, 8.56)
  9.0 (354.74, 70.91) (71.84, 8.56)
  10.0 (428.0, 75.5) (80.4, 8.56)
Numbers in each row are: time in seconds since drop, distance first ball has fallen (in meters), velocity of first ball (meters/second), and the distance and velocity of the second ball.

Here's a pair of 12 cm diameter balls one weighing 16 pounds (maximum weight for a bowling ball), and one about the weight of a basketball:

  0.0 (0.0, 0.01) (0.0, 0.01)
  1.0 (4.9, 9.76) (4.75, 9.2)
  2.0 (19.4, 19.18) (17.42, 15.59)
  3.0 (43.03, 27.97) (34.92, 19.0)
  4.0 (75.04, 35.91) (54.81, 20.56)
  5.0 (114.53, 42.9) (75.76, 21.23)
  6.0 (160.5, 48.88) (97.15, 21.51)
  7.0 (211.96, 53.89) (118.72, 21.62)
  8.0 (267.99, 58.02) (140.37, 21.67)
  9.0 (327.74, 61.37) (162.05, 21.69)
  10.0 (390.51, 64.06) (183.74, 21.69)
The simulator is just doing a simple linear simulation that assumes constant velocity and acceleration during between simulation steps. That's not super accurate, but it is good enough to show the physics.

Simulator code below. Set r to the radius in meters of your spheres. Set m1 and m2 to the masses of your two spheres, in kilograms.

  #!/usr/bin/env python3
  import math
  
  p = 1.225   # kg/m^3
  Cd = 0.47   # for sphere
  r = .12     # m
  
  m1 = 7.2    # kg  mass of 4 cm lead ball
  m2 = .625    # kg mass of 4 cm ping pong ball
  
  def drag(v):    # m/s
      # 1/2 p Cd A v^2
      return 1/2 * p * Cd * math.pi * r**2 * v**2
  
  def sim(m1, m2):
      y1, y2 = 0.0, 0.0   # m
      v1, v2 = 0.0, 0.0   # m/s
      dt = 0.001          # s
  
      for ms in range(0, 10001):
          y1 += v1 * dt
          y2 += v2 * dt
  
          v1 -= drag(v1) * dt / m1
          v2 -= drag(v2) * dt / m2
  
          v1 += 9.81 * dt
          v2 += 9.81 * dt
  
          if ms % 1000 == 0:
              print(ms/1000, (round(y1,2), round(v1,2)), (round(y2,2), round(v2,2)))
  
  sim(m1, m2)


I appreciate your earnestness, but running your code gives:

  0 (0.0, 0.01) (0.0, 0.01)
  1 (4.91, 9.82) (4.91, 9.82)
  2 (19.63, 19.63) (19.63, 19.63)
  3 (44.16, 29.44) (44.16, 29.44)
  4 (78.5, 39.25) (78.5, 39.25)
  5 (122.65, 49.06) (122.65, 49.06)
  6 (176.61, 58.87) (176.61, 58.87)
  7 (240.38, 68.68) (240.38, 68.68)
  8 (313.96, 78.49) (313.96, 78.49)
  9 (397.35, 88.3) (397.35, 88.3)
  10 (490.55, 98.11) (490.55, 98.11)


It's Python 3. You ran it with Python 2. In Python 2, 1/2 == 0. In Python 3, 1/2 == 0.5. That means that in the drag function, this expression:

  1/2 * p * Cd * math.pi * r**2 * v**2
always gives 0 on Python 2 because of that 1/2 factor.

If you want to run it on Python 2, either change the 1/2 in the drag function to 1./2 or 0.5, or add

  from __future__ import division
at the top to tell Python 2 you want to use the Python 3 division behavior.


Then I stand corrected. Thank you for being patient.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: