A ball is shot directly upward, and then it comes back to the place where it was shot. Suppose we have air resistance. Suppose $t_1$ is the time period from the moment that the ball was shot to the moment that it reached its highest altitude, and $t_2$ is the time period from the moment it reached its highest altitude to the moment it reached its original position. Is $t_1=t_2$? Why or why not?
Newtonian Mechanics – Calculating the Time of a Ball Going Up and Down with Air Resistance
dragnewtonian-mechanicsprojectile
Related Solutions
With drag force $- \alpha \left|{\dot{\bf r}}\right| {\dot{\bf r}}$ and gravitational force $-mg {\bf {\hat{y}}}$, the equations of motion are (see my answer to this question) $$ \begin{align} {\ddot{x}} &= - \beta {\dot{x}} \sqrt{{\dot x}^2+{\dot y}^2} \\ {\ddot{y}} &= - g - \beta {\dot{y}} \sqrt{{\dot x}^2+{\dot y}^2} \end{align} $$ where $\beta = \alpha / m$, $\alpha = \rho C_d A / 2$, $\rho$ is the air density, $C_d$ is the drag coefficient, and $A$ is the cross-sectional area of the projectile.
I've never seen the above equations solved analytically. Here's some Python code that plots the solution with and without air resistance. To run, copy into a text file myFile.py and run
python myFile.py
from the command line.
from pylab import *
import math
# Physical constants
g = 9.8
m = 1.0
rho = 1.0
Cd = 1.0
A = math.pi * pow(0.01,2.0)
alpha = rho * Cd * A / 2.0
beta = alpha / m
# Initial conditions
X0 = 1.0
Y0 = 0.0
Vx0 = 70.0
Vy0 = 80.0
# Time steps
steps = 1000
t_HIT = 2.0*Vy0/g
dt = t_HIT / steps
# No drag
X_ND = list()
Y_ND = list()
for i in xrange(steps+1):
X_ND.append(X0 + Vx0 * dt * i)
Y_ND.append(Y0 + Vy0 * dt * i - 0.5 * g * pow(dt * i,2.0))
# With drag
X_WD = list()
Y_WD = list()
Vx_WD = list()
Vy_WD = list()
for i in xrange(steps+1):
X_ND.append(X0 + Vx0 * dt * i)
Y_ND.append(Y0 + Vy0 * dt * i - 0.5 * g * pow(dt * i,2.0))
# With drag
X_WD = list()
Y_WD = list()
Vx_WD = list()
Vy_WD = list()
X_WD.append(X0)
Y_WD.append(Y0)
Vx_WD.append(Vx0)
Vy_WD.append(Vy0)
stop = 0
for i in range(1,steps+1):
if stop != 1:
speed = pow(pow(Vx_WD[i-1],2.0)+pow(Vy_WD[i-1],2.0),0.5)
# First calculate velocity
Vx_WD.append(Vx_WD[i-1] * (1.0 - beta * speed * dt))
Vy_WD.append(Vy_WD[i-1] + ( - g - beta * Vy_WD[i-1] * speed) * dt)
# Now calculate position
X_WD.append(X_WD[i-1] + Vx_WD[i-1] * dt)
Y_WD.append(Y_WD[i-1] + Vy_WD[i-1] * dt)
# Stop if hits ground
if Y_WD[i] <= 0.0:
stop = 1
# Plot results
plot(X_ND, Y_ND)
plot(X_WD, Y_WD)
show()
The ball will always return to the ground at a lower speed than it was launched. This is simply because it must lose energy to air resistance during its flight.
The ball starts off with a kinetic energy $E_0$. Some of this energy is "spent" in lifting the ball (i.e. it is converted into potential energy) and some of it is spent on moving the air out of the way (i.e. air resistance - it is converted to kinetic energy in the air molecules it pushes away). At the top, the ball stops and now has $E_p < E_0$.
It starts back down again, converting $E_p$ back into kinetic energy, but also losing some more energy as it pushes the air away again. It finally arrives back where it started with $E_f < E_p < E_0$. So it is moving slower than when it left.
Note also, that if it is launched high enough, the air resistance on the way down (which increases as its speed increases) will eventually balance the acceleration due to gravity and it will reach terminal velocity. So not only is the final speed at the bottom always lower than the launch speed, it tends towards a maximum value. Beyond a certain launch speed, it always lands at the same speed.
Best Answer
Let us consider the velocities of the ball at some interim height $h$ on the ball's way up and down. The absolute value of the velocity is higher on the ball's way up, as the potential energy of the ball is the same and the total energy is less on its way down due to air resistance. As this applies to any height $h$, the conclusion is that the time the ball goes up $t_1$ is less than the time the ball goes down $t_2$.