Raindrops

Part 1. Background: Falling Bodies

Enter the following line to load the necessary package.

<< Graphics`PlotField`

g  =  32.2;
DE1 =  g;
PlotVectorField[{1, DE1}, {t, 0, 3}, {v, 0, 60},  
        HeadWidth -> 0, ScaleFunction -> (1 &), 
        AspectRatio -> 1,  Axes -> True, 
        AxesLabel -> {"t", "v[t]"}];

Enter the solution of (dv/dt)= g, v(0) = 0 in the cell below.

Answer:

Enter your formula for v and generate the direction field for s = s[t].  Note that we do not want to place "v[t]" directly into PlotVectorField, else Mathematica will treat v as an independent variable instead of a function.

v[t_] :=  ?;
DE2  =  v[t];
PlotVectorField[{1, DE2}, {t, 0, 3}, {v, 0, 60},  
        HeadWidth -> 0, ScaleFunction -> (1 &), 
        AspectRatio -> 1,  Axes -> True, 
        AxesLabel -> {"t", "s[t]"}];

Write down an appropriate initial condition for s, and enter your formula for s[t] in the text cell below.

Answer:

For a raindrop falling from 3000 feet, enter your calculations and answers in the cell below.

Mathematica Tip.  The NSolve command might be handy for this exercise: NSolve[lrs == rhs, var].  This solves an equation numerically for the indicated variable.

Answers:

Part 2. Falling Bodies with Air Resistance

Why must the units for c be (sec^(-1))?

Answer:

Enter your formula for the derivative, and construct a direction field.

c  =  52.6;
DE3  =  ?;
dirField  =  
        PlotVectorField[{1, DE3}, {t, 0, 0.1}, {v, 0, 1},  
          HeadWidth -> 0,  ScaleFunction -> (1 &), 
          AspectRatio -> 1,  Axes -> True,  
          PlotPoints -> 20, 
          AxesLabel -> {"t", "v[t]"}];

Enter your guess for a solution function (or the actual solution if you know it) in the text cell below.  Does your proposed solution satisfy the initial condition?

Answer:

Part 3. Euler's Method (No response is required here.)

Part 4. Modeling Small Raindrops

The constants g and c are already defined.  Enter definitions for n, Delta, and v[0].

n  =  100;
Delta_t  =  0.2/n;
v[0]  = 0;

As we did in the Limited Population module, we will define both t[k] and v[k] as functions of the index k running from 0 to n, rather than as subscripted variables.  Carry out the first few steps here, replacing indices to obtain v[2], v[3], etc..

v[1]  = v[0] + (g - c*v[0])*Delta_t;

We now automate the process that you just implemented manually.  Define the specific time values t[0], t[1], t[2], t[3].  (Remember that the distance between consecutive t values is Delta_t).

t[0]  =  ?;
t[1]  =  ?;
t[2]  =  ?;
t[3]  =  ?;

Complete and enter the general formula for t[k] in terms of k and Delta_t.

t[k_] :=  ?;

Complete and enter the following definition for a procedure to compute v[k] as a function of k.

v[k_] := v[k] =  ?;

First test your procedure by activating the following command.  Your result should be a list of three numbers that match values you computed earlier.  Important!!!  If anything else appears, then do not calculate v[k] for k larger than 3 until you fix the problem!!

Table[v[k], {k, 3}]

We now create a list of data points {t, v} for velocity v[k] as a function of time t[k] by using the Table command.  We call this list solution.  Enter the following command:

solution  =  Table[{t[k], v[k]}, {k, 0, n}];

Create a scatter plot of the list solution by entering the following plot command:

solPlot  =  
        ListPlot[solution, PlotRange -> {{0, 0.1}, {0, 1}}, 
          PlotStyle -> {RGBColor[0, 0, 1], PointSize[0.015]}, 
          AxesLabel -> {"t", "v"}];

Overlay the approximate solution on the slope field.

Show[dirField, solPlot,  
        PlotRange -> {{0, 0.1}, {0, 1}}];

Answer to the question in step 6:

Estimate the terminal velocity.  (Hint: You can get the k-th point on the curve by entering solution[[k]], where k is a specific number.)  Do your calculations in the input cell below and place your answers into the following text cell.

Answer:

What is the terminal velocity of small rain drops, in both feet/sec and miles/hour?  Is this reasonable?

Answer:

Answers to the remaining questions in Part 4:

Part 5. Modeling Large Raindrops

The constants g and n are already defined.  Clear v and t, and enter definitions for a and Delta:

Clear[v, t];
a  =  0.115;
Delta_t  =  2/n;

What are the units for a?

Answer:

Enter the derivative formula, and construct a direction field.

DE4  =  ?;
dirField2  =  
        PlotVectorField[{1, DE4}, {t, 0, 2}, {v, 0, 25},  
          HeadWidth -> 0, ScaleFunction -> (3 &), 
          AspectRatio -> 1,  Axes -> True,  
          PlotPoints -> 20, 
          AxesLabel -> {"t", "v[t]"}];

Answer to the question in step 2:

Estimate the terminal velocity.  Do your calculations in the input cell below.

As you did in Part 4, carry out the first few Euler steps in the input cell below.

v[0] =  0;
v[1] = v[0] + (g - a*v[0]^2)*Delta_t;

We now automate the solution process.  Enter the general formula for t[k] in terms of k and Delta.

t[k_] :=  ?;

Complete and enter the following definition for a procedure to compute v[k] as a function of k.

v[k_] := v[k]  =  ?;

Test your procedure by entering the following command.  Your result should be a list of three numbers that match values you computed earlier.Important!!!  If anything else appears, then do not calculate v[k] for k larger than 3 until you fix the problem!!

Table[v[k], {k, 3}]

We now create a list of data points {t, v} for velocity v[k] as a function of time t[k] by using the Table command.  We call this list solution2.  Enter the following command.

solution2  =  Table[{t[k], v[k]}, {k, 0, n}];

Create a scatter plot of the list solution2 by entering the following plot command:

sol2Plot  =  
        ListPlot[solution2, PlotRange -> {0, 25}, 
          PlotStyle -> RGBColor[0, 0, 1],  
          Prolog -> {PointSize[0.015]}, 
          AxesLabel -> {"t", "v"}];

Overlay the approximate solution on the slope field.

Show[dirField2, sol2Plot];

Estimate the terminal velocity from the computed solution.

Answer:

Answers to the remaining questions in Part 5:

Part 6. Summary