What’s the terminal velocity of someone falling with a parachute? (this is our system)
Assumptions
Let’s say we have a model for this problem:
\[\frac{dv}{dt} = g -\frac{c}{m}v\]
where \(g\) is gravitational acceleration, \(c\) is a drag coefficient, \(m\) is the parachutist’s mass, and \(v\) is their velocity. The solution to this differential equation is:
\[ v(t) = \frac{gm}{c}(1 - e^{ct/m})\]
Use the following parameters for the parachutist:
Parameter
Value
Mass
70 kg
Drag coefficient
12 kg/s
Summarize the goal(s) of the problem in your own words.
Use one or more of the equations given and the parameters (mass = 70 kg; drag coeff = 12 kg/s) to find the terminal velocity of a parachutist.
Describe your plan to solve the problem.
It looks like the second equation give the velocity directly so I’ll just use that one. If I plug a big value for \(t\) into the equation, it will probably show the terminal velocity. But I want to be able to check that, so I’ll calculate velocity for several values of \(t\) and confirm that the velocity stops changing (i.e., reaches its terminal value).
Steps * assign values to known parameters * use a for loop to calculate and print the velocity for several (maybe 10?) time values from 0 to 100.
Write Python code to carry out your solution
# assign values to known parametersg =9.81# gravitational acceleration in m/s^2m =70# mass in kgc =12# drag coefficient in kg/s# calculate gm/c once since it is used in the formulagm_over_c = (g * m) / c# use a for loop to calculate and print the velocity for several time values from 0 to 100# we'll use 11 time values: 0, 10, 20, ..., 100print("Time (s) Velocity (m/s)")for t inrange(0, 101, 10):# calculate the exponent part: -c * t / m exponent =-c * t / m# calculate e^(exponent) using the built-in pow() function exp_value =pow(2.71828, exponent) # 2.71828 is an approximation for e# calculate velocity using the formula v = gm_over_c * (1- exp_value)# print the time and velocity, rounded to 2 decimal placesprint(str(t).ljust(10), round(v, 2))
Looking back at your code and the resulting output, reflect on whether your code achieved the problem goal(s). To the extent the problem models a physical system, how realistic does the behavior seem? Are there any changes you would make to your approach if you were to solve this problem again (e.g., to make your code more re-usable or to avoid dead ends)?