Water Rockets: A for Calculus Courses

advertisement
Water Rockets in Flight: Calculus in Action
George Ashline
Department of Mathematics
St. Michael’s College, Colchester, VT 05439
gashline@smcvt.edu
Alain Brizard
Department of Chemistry and Physics
St. Michael’s College, Colchester, VT 05439
abrizard@smcvt.edu
Joanna Ellis-Monaghan
Department of Mathematics
St. Michael’s College, Colchester, VT 05439
jellis-monaghan@smcvt.edu
MATHEMATICAL FIELD:
APPLICATION FIELD:
TARGET AUDIENCE:
PREREQUISITES:
Calculus.
Elementary rocketry.
Students in either single or multivariable calculus.
Trigonometry. Vector calculus for three-dimensional space
curves; single-variable calculus for the simpler heightversus-time model. Use of a computer algebra system or
graphing calculator for curve fitting.
ABSTRACT
We describe an easy and fun experiment using water rockets to demonstrate some
of the concepts of multivariable calculus. After using video stills from a single water
rocket launch to generate the raw data, we develop a model to analyze the rocket flight.
Because of factors such as rocket propulsion and wind effects, the water rocket does not
follow the parabolic projectile trajectory commonly found in textbooks. Instead, we use
polynomial interpolation to calculate the X, Y, and Z coordinate functions of the rocket as
a function of time during its entire flight. We then use methods from multivariable
calculus to analyze the flight and to estimate quantities such as the maximum height
reached by the rocket and curvature of the flight path that are not apparent from direct
observation. Examination of first and second time derivatives of the rocket coordinates
allows us to identify the thrusting, coasting, and recovery stages of the rocket flight, and
comparison to the parabolic model shows the effects of the wind.
We also offer two variations of the module. One is very similar to that described
above, but uses a least-squares fit instead of polynomial interpolation to determine the
coordinate functions. The other is a simpler model based on a one-variable polynomial
fit giving the height of the rocket as a function of time, suitable for a first-semester
Water Rockets in Flight
Page 1 of 60
2/13/16
calculus course. The appendices include an optional overview of the curve-fitting
techniques using linear algebra, a supplies list and procedure to launch and videotape a
water rocket, an auxiliary set of video stills, and a complete Maple8 code for generating
the results.
Table of Contents
1. INTRODUCTION………………………………………………………………….
2. SUPPLIES AND PROCEDURE………………………………………………...……
2.1 SUPPLIES NEEDED………………………………………………………….
2.2 LAUNCHING PROCEDURE…………….……………………………………
2.3 RECORDING PROCEDURE…………….…………………………………….
3. THE WATER ROCKET FLIGHT……………………………………………………
3.1 BUILDING BLUEPRINT AND VIDEO STILLS………………………………..…
3.2 APPARENT POSITION OF DATA POINTS…………………...………………....
3.3 GROUND AND ELEVATION DIAGRAMS……………………………………...
4. DEVELOPING AND ANALYZING THE MODEL……………………………………..
4.1 ESTIMATING ROCKET COORDINATES……………………………………….
4.2 MODELING THE FLIGHT PATH USING POLYNOMIAL INTERPOLATION……….
4.3 ANALYSIS OF THE FLIGHT………………………………………………….
5. MODEL VARIATIONS…………………………………………………………….
5.1 MODELING THE FLIGHT PATH USING LEAST SQUARES FIT…………………..
5.2 SIMPLER HEIGHT VERSUS TIME MODEL…………………………………….
6. SOME COMMENTS ON THE MODELING…………………………………………...
7. APPENDICES …………………………………………………………………….
7.1 ADDITIONAL VIDEO STILLS………………………………………...………
7.2 MAPLE 8 CODE……………...…………………………………………….
7.3 CURVE FITTING………...………………………………………………….
7.4 RESOURCES……………...………………………………………………..
1.
2
6
6
7
8
8
8
12
12
14
14
17
18
29
29
30
35
39
39
42
56
59
Introduction
Water rockets are cheap, re-usable, easy to launch, and have a very high fun-tonuisance ratio. They also provide a simple example of some of the fundamental aspects
of a model rocket flight. Because of factors such as rocket propulsion and wind effects
(which can be classified as systematic if the wind is steady or random if the wind is
gusty), their flight paths are more complex than those of simple projectiles. The goal of
this module is to model the flight path of a single water rocket launch and then use the
tools of calculus to analyze the rocket’s performance.
Most standard calculus textbooks include both one and two-dimensional parabolic
models describing the flight of a projectile. In the one-dimensional case, the function
Water Rockets in Flight
Page 2 of 60
2/13/16
1
s  t   vt  gt 2 models the vertical position of a projectile with respect to time t, where
2
g (= 9.81 meters/sec2) is the gravitational constant and v is the initial velocity. In the
1
two-dimensional case, the vector-valued function r  t    S cos  t ,  S sin   t  gt 2
2
models the planar trajectory of a projectile, where S is the initial speed and  is the initial
launch angle as measured from the ground. In both cases, it is assumed that, other than
the initial boost acceleration, gravity is the only force acting on the rocket (e.g., ari
resistance and Coriolis effects associated with the rotation of the Earth are ignored).
We originally wanted a simple and engaging experiment that would provide the
raw data for using these models. However, we did not have ready access to a large
windless space (such as a hangar) nor a mechanism to measure the initial velocity needed
to illustrate these standard models.
Rather than trying to fit the experimental data to a parabolic model, we chose
instead to generate and analyze a single data set, and explore the vagaries introduced by
wind and variable thrust. We then needed a suitable projectile. On the one hand, tossing
a ball vertically into the air did not seem exciting enough. On the other hand, anything
involving rocket propulsion by fuel combustion seemed a little too exciting and hence
logistically too difficult. We wanted something cheap, easy, and safe. Although there is
a lot of information about combustible-fuel model rockets (see Section 7.4), they move
too fast for easy measurements and are too expensive. Water rockets are the perfect
solution. Furthermore, their behavior is more varied than that of projectiles modeled by
the parabolic functions. They have just enough complexity in their flight paths to provide
an opportunity to put the skills and concepts learned in calculus to work in a substantial
way.
A water rocket consists of a tapered plastic chamber about 13 centimeters long
with small fins and a little hole in the base. The chamber is partially filled with water,
and then air is forced into the chamber with a manual air pump that clamps onto the base.
This clamp is also the launch mechanism. See Figure 1.
Water Rockets in Flight
Page 3 of 60
2/13/16
Figure 1
compressed
air
water
launch trigger
(seals rocket to air
pump while pumping,
then pulls back to
release the rocket)
air
pump
When the rocket is released, the air and water escapes rapidly through the small
hole in the base of the rocket, providing the power for the first stage of the rocket’s flight,
the thrusting (or boost) stage. The rocket then continues to soar upwards, although more
and more slowly, with now its acceleration only affected by gravity, air resistance and
(possibly) wind; this second stage of the rocket’s flight is the coasting stage. The rocket
then returns to the ground in the recovery stage (defined as the part of the rocket flight
path from the time it reaches its maximum height until it lands). This terminology is
borrowed from more sophisticated rockets that often have a recovery mechanism such as
a parachute to minimize damage to the rocket upon landing. Water rockets, however, do
not need parachutes since they are quite sturdy and, as long as they land on a soft surface
such as turf, will be undamaged. Water rockets are quite lightweight, and hence even a
slight crosswind can significantly affect their flight paths. We note that only cross-wind
effects can cause the path of the rocket to exhibit non-planar features since gravity, thrust,
and air resistance are all planar forces.
Because of the additional forces acting on a water rocket, simple projectile
models are inadequate for analyzing its flight path. We did find excellent papers by J.M.
Prusa, “Hydrodynamics of a Water Rocket”, SIAM Review, 42, No. 4, 719-726, (2000),
and G.A. Finney, “Analysis of a water-propelled rocket: A problem in honors physics”,
Am. J. Phys., 68, 223-227 (2000), giving well-developed models for the flight path of a
generic water rocket. However, the former is beyond the scope of a typical
undergraduate calculus sequence, and the latter considers only height vs. time rather than
the three-dimensional space curve which we wanted to consider. Furthermore, since
these models require ideal launch conditions (e.g., windless conditions and perfectly
vertical launches) that are very difficult to achieve in practice, we chose instead to
Water Rockets in Flight
Page 4 of 60
2/13/16
analyze a specific rocket-flight data set simply by fitting a smooth curve to a finite
number of data points along the flight path.
To get the raw data for the experiment, we videotaped the flight of a water rocket,
with a building of known height in the background. On the day of the rocket launch,
there was gusting wind of perhaps eight to twenty-four kilometers per hour (five to
fifteen miles per hour), so naturally the rocket was blown off its planar (and parabolic)
course. We noted the position of the rocket against the building in the video stills and
then used building blueprints to measure the rocket’s horizontal and vertical positions
with respect to the building. With basic trigonometry and the ground distances, we
converted this information into estimates for the three-dimensional position of the rocket.
Having found these coordinates, we then applied the curve-fitting capabilities of the
computer algebra system Maple to construct a model of the flight path. Note that from
the vantage point of a single video camera position, information concerning the depth
position of the rocket is not available and, thus, non-planar cross-wind effects are not
directly observable through the present analysis. Since we expect wind gusts to
generically possess planar components, wind effects are expected to be characterized by
segments of the flight path with zero curvature (i.e., with parallel velocity and
acceleration vectors).
With this model, we can use the tools of calculus to answer questions that could
not be addressed just by watching the launch. For example, how high did the rocket go?
How far did it travel? How sharp was its turn around? How long did the thrusting stage
last? To what extent did wind effects modify the action of gravity? How far was the
rocket blown off course by the wind? Answering these questions requires computing and
analyzing the derivatives of the spatial coordinates (i.e., analyzing the velocity and
acceleration vectors) and finding the Frenet-Serret curvature of the flight path (here, our
model explicitly assumes a zero-torsion flight path). Although a planar parabolic-path
model does not provide a good approximation of the rocket flight path, a comparison to
our curve gives a good sense of the effects of the wind and thrust on the behavior of the
rocket.
Our decision to use 6th degree polynomials in our model came from a combination
of common sense and experimentation. An even degree polynomial certainly is
appropriate for modeling the height of a rocket flight. However, we found that 2nd and 4th
degree polynomials did not capture the wind effects and did not fit the data points well.
Polynomials of degree greater than six, as might be expected, fit the data points quite
well, but were poor models for the flight. They varied too much laterally and “flattened
out” at the top. Thus, for example, they could not be used to get good estimates of the
maximum height. In the absence of air resistance and wind effects, there is no lateral
acceleration, so the X(t) and Y(t) coordinate functions are expected to be linear in time t.
However, we did observe wind effects, and hence used sixth degree polynomials for
these coordinate functions as well to capture this phenomenon. This experimentation
with different curves can be quite instructive though, and we highly recommend doing it
to see the effects of the various parameters on a model.
While most of this paper involves a three-dimensional space curve created with
polynomial interpolation, we also include two possible ways of modifying the module.
Water Rockets in Flight
Page 5 of 60
2/13/16
One uses the least-squares fitting method instead of polynomial interpolation to fit the
coordinate functions. This gives slightly different answers in the analysis, but this
version is not substantially different from the polynomial-interpolation model. The other
variation is a simpler model, a one-variable polynomial fit giving the height of the rocket
as a function of time, suitable for a first semester calculus course.
The remainder of this paper is organized as follows. In Section 2, we provide a
list of supplies needed to carry out this experiment and a description of the launch
procedure. In Section 3, we present the nine video stills used to generate the raw data for
our model and introduce the ground and elevation diagrams needed to convert the
apparent position of the rocket as observed from a fixed background. In Section 4, we
introduce the trigonometric formulas needed to convert the apparent position of the
rocket into the three-dimensional coordinates X(t), Y(t), and Z(t) as a function of time (as
measured by the video camera). To generate smooth functions of time for the rocket
coordinates, we used Maple8 CAS (although this module could easily be adapted to any
computer algebra system or graphing calculator with curve fitting capabilities) and, thus,
we are able to compute the three components of the velocity and acceleration of the
rocket. From these components, we proceed with the calculation of the curvature of the
rocket path as a function of time, which exhibits the expected peak near the turn-around
point (when the rocket has reached its maximum height). Near the end of the rocket
flight, we note, however, an unusual feature in the graph of the curvature, which is
explained by a strong gust of wind affecting the path of the rocket near the end of the
flight. In Section 5, we briefly discuss modifications of the curve-fitting model used in
Section 4, while in Section 6 we make several comments concerning the validity of the
zero-torsion model itself and suggest possible augmentation of this experiment. Lastly,
in Section 7, we present several appendices containing additional video stills (7.1), the
Maple code used in the present work (7.2), an introduction to curve-fitting techniques for
those familiar with basic linear algebra (7.3), and a few Internet resources for exploring
the mathematics of model rockets in general (7.4).
2.
Supplies and Procedure
2.1
Supplies needed
water rockets (obtain extra in case of defective rockets or cracking on
landing); buy “water-powered rockets” from a local toy or hobby store, or order
them on the Internet, e.g., from the homepage of Dave’s Cool Toys (see Section
7.4 for details about this and other useful rocket sites).
a metric tape measure or a laser telemetry device (if available)
blueprints for a nearby 3-story building (if available—at least the basic
dimensions of the building must be known)
camcorder with videotape
editing software to view the video frame by frame if available, or at least VCR
with a pause button
stopwatch if unable to view the video frame by frame






Water Rockets in Flight
Page 6 of 60
2/13/16
2.2
Launching procedure

Commercially available water rockets are fun little toys made of “high-tech
shatter resistant plastic”, which have the advantage of being cheap, safe,
foolproof, and reusable (if launched over soft ground).

Choose an appropriate backdrop, such a building with known height. This project
is more interesting if the building is only about 3 stories tall. The rocket will then
appear to rise above the building so that the maximum height has to be estimated
by using calculus.

Before launching the rocket, measure ground distances from the camcorder site to
the launch site and from the launch site to the building. The camcorder and
launch site should be in line with an easily identifiable location on the building.
Measure the distance from the center of the camera lens to ground level. Check
that “ground level” at the base of the camera and “ground level” at the base of the
building are the same and adjust if necessary.

Launch the rocket and record the flight on the camcorder. Preview a flight to be
sure that the rocket is visible against the building in the video stills. A successful
launch is one in which the rocket appears in front of the building both at the
beginning and end of the flight and appears to rise above the roofline at its
maximum height. Several launches may be necessary to achieve this. Having
someone say, for example, “This is the third trial” as you begin to record the
launch will help identify the different trials when viewing the tape later.

Once the rocket has landed, measure the ground distances from the camcorder to
the landing site and from the launch site to the landing site.

View the videotape of the successful launches, decide which one to model, and
then gather at least nine data points on the path of the rocket, including the
launching and landing points. Although an approximating curve could be
determined from fewer points, more data gives greater flexibility in choosing
which points to generate the curve in the case of the polynomial interpolation fit,
and a more accurate curve in the case of the least squares fit. The blueprints of
the building in the background will help determine the position of the rocket with
respect to the building. If blueprints are unavailable, then make estimates based
on the known height of the building, and take measurements for the horizontal
distances. If you are able to view the tape frame-by-frame, the fact that most
camcorders record at about 30 frames per second can be used to determine timing.
Otherwise, use a stopwatch and the pause button to estimate as well as possible.
Note 1: Measurement error can be significant in this experiment. If possible, take each
measurement twice and average. Since measurement error is likely, the number of
significant digits permissible with the present procedure is most likely limited to three.
Thus, each measurement has an implicit measurement uncertainty between one and ten
percent.
Water Rockets in Flight
Page 7 of 60
2/13/16
Note 2: The more exact standard color video rate is 29.97 frames/sec, which is taken to
three significant digits in our computations as 30.0 frames per second. For more
information about this rate, see pp. 61 and 431 of Ronald J. Compesi’s text, Video Field
Production and Editing (sixth edition). Boston: Allyn and Bacon, 2003.
2.3
Recording Procedure

Once the experiment is completed, and a launch chosen, view the videotape frame
by frame and extract information about the apparent position of the water rocket
during the entire flight path.

Construct Table 1 with careful attention to proper labeling, significant digits, and
units.

Determine the entries for Tables 2 through 3 and present in a similar form.

Develop a model for the rocket flight using either polynomial interpolation, least
squares fit, or the one-dimensional model.

Analyze the model, being sure to address all the questions raised in Section 4.2.
3.
The Water Rocket Flight
3.1
Building Blueprint and Video Stills
Figure 2 is a collection of the nine video stills that provide the raw data for the
model. The rocket was launched from ground level. The camcorder was at a height of
1.52 meters above ground level.
Figure 3 shows the exterior blueprints of the library on our campus that we used
as a backdrop for our experiment. The scale of blueprints enabled us to estimate the
rocket’s horizontal and vertical position at various points during its flight. The initial and
terminal positions of the rocket launch, as well as seven in-flight data points that were
extracted from the video stills, are indicated on the blueprints.
Water Rockets in Flight
Page 8 of 60
2/13/16
Figure 2
0th launch frame
7th frame
11th frame
15th frame
50th frame
55th frame
Water Rockets in Flight
Page 9 of 60
2/13/16
59th frame
63re frame
71st landing frame
Water Rockets in Flight
Page 10 of 60
2/13/16
Figure 3
Water Rockets in Flight
Page 11 of 60
2/13/16
3.2
Apparent Position of Data Points
The apparent locations of the rocket against the building from the point of view of
the camcorder operator are listed in Table 1 below. The heights Vi are measured up from
ground level, and the horizontal distances Hi are measured to the right of the point at the
intersection of a perpendicular from the camcorder to the building. This point is marked
P in Figure 4 of Section 3.3. Also, the times ti are determined using the color video rate
of 30.0 frames/sec.
Frame
0
7
11
15
50
55
59
63
71
3.3
i
1
2
3
4
5
6
7
8
9
Table 1 Observed Data
ti (secs)
Hi (meters)
0.000
0.000
0.233
0.610
0.367
1.22
0.500
1.83
1.67
8.53
1.83
9.14
1.97
9.75
2.10
10.4
2.37
16.7
Vi (meters)
0.000
5.49
9.45
12.8
13.1
10.1
7.32
4.57
0.000
Ground and Elevation Diagrams
Figure 4 below is an aerial view of the rocket launch, showing the relative
positions of the camcorder, building, and rocket launch and landing sites.
The data in Table 1 gives only the apparent position of the rocket against the
building. We use the similar triangles illustrated in Figure 5 to find the actual heights zi
of the rocket from the perceived heights Vi of the rocket against the building.
Water Rockets in Flight
Page 12 of 60
2/13/16
Building
P
Figure 4
Ground Diagram for the Rocket Launch
Measurements are in meters.
Drawing is not to scale.
Building
Distance =
24.8 m
Rocket Launch Site
distA = 4.52 m
Rocket Landing Site
distC =
7.32 m
distB = 4.11 m
Camcorder Location
Figure 5
Elevation Diagram
Rocket in flight
Measurements are in meters.
Drawing is not to scale.
zi
Camcorder
CamHeight =
1.52 m
ni
mi
Vi = perceived height against the building
Water Rockets in Flight
Ground level at height 0 m
Page 13 of 60
2/13/16
4.
Developing and Analyzing the Model
4.1
Estimating Rocket Coordinates
We now use basic trigonometry to estimate the three-dimensional coordinates
(xi, yi, zi) of the rocket from the perceived positions (Hi,Vi) of the rocket relative to the
building. Figure 6 illustrates the quantities that we must determine to approximate the xi
and yi ground coordinates of the rocket at time ti. Note again that our zero-torsion model
places the depth coordinate y on the straight line joining the launch site and the landing
site.
H9
Building
Hi
P
ni
Building
Distance =
24.8 m
Rocket Launch
Site
distA =
4.52 m
B
Figure 6
Location Diagram
(xi , yi)
distC =
7.32 m
Measurements are in meters.
Drawing is not to scale.
m
i
Ai
A
Rocket Landing Site
distB = 4.11 m
Camcorder Location
Water Rockets in Flight
Page 14 of 60
2/13/16
Refer to Figures 5 and 6 above for the locations of the quantities determined in
Tables 2 and 3. Table 2 gives the quantities used to compute the coordinates shown in
Table 3.
Table 2 Intermediate Values
i
Ai
ni
mi
(rads)
(meters) (meters)
1
0.000
24.8
7.32
2 0.0245
24.8
7.02
3 0.0490
24.9
6.76
4 0.0735
24.9
6.52
5
0.331
26.3
4.88
6
0.353
26.5
4.79
7
0.374
26.7
4.71
8
0.395
26.9
4.64
9
0.591
29.9
4.11
i
1
2
3
4
5
6
7
8
9
Table 3 Estimated Coordinates
ti
xi
yi
zi
(secs)
(meters)
(meters)
(meters)
0.000
0.000
7.32
0.000
0.233
0.172
7.02
2.64
0.367
0.331
6.75
3.68
0.500
0.479
6.50
4.48
1.67
1.59
4.62
3.68
1.83
1.66
4.50
3.07
1.97
1.72
4.39
2.55
2.10
1.79
4.28
2.05
2.37
2.29
3.42
0.000
To generate the values contained in Tables 2 and 3, first find the times ti in Table
3 by dividing the frame number by 30.0 frames/sec. Also, record the perceived in-flight
heights Vi and horizontal distances Hi (see Table 1). At the moment of launch (t = 0
sec), the horizontal and vertical distances are 0. Next, use the law of cosines to find angle
A, the angle at the camcorder between the rocket launch and landing sites:
 (distB)2  (distC )2  (distA)2 
A  arccos 
  0.591 radians (67.7 degrees).
2(distB)(distC )


Since the line from the camcorder through the launch site forms a right angle with
the building, this angle can be used to find the horizontal distance H9 along the building
at landing:
H 9  ( BuildingDistance) tan( A)  16.7 meters.
Use the horizontal distances Hi to find the ground angles between the launch site
and the rocket position at each time (see Figure 6). Then, to find the other angles listed in
Table 2, use:
Ai 
arctan( H i )
radians.
BuildingDistance
Also, use A and the fact that the line from the camcorder through the launch site to the
building is perpendicular to the building to find the hypotenuses ni (see Figure 6):
ni 
Water Rockets in Flight
BuildingDistance
meters.
cos( Ai )
Page 15 of 60
2/13/16
Next, use the law of cosines to find B, the angle at the launch site from the camcorder to
the landing site:
 (distA)2  (distC )2  (distB)2 
B  arccos 
  0.532 radians (60.9 degrees).
2(distA)(distC )


Use the proportions from the law of sines to find the lengths of mi (see Figure 6):
mi 
sin( B)( distC )
meters.
sin(  ( B  Ai ))
Assuming that the rocket's path remains in the vertical plane containing its launch
and landing sites (i.e., the zero-torsion model), the Ai and mi values give the angles and
magnitudes for the projection into the X-Y plane of the position vectors for the rocket at
time ti:


y  m sin   A  meters.
2
xi  mi cos   Ai meters,
2
i
i
i
Now, use similar triangles to approximate the actual rocket heights from the
perceived heights against the building (see Figure 5). First, define z1  0.000 meters and
z9  0.000 meters, as the launch and landing heights. Next, estimate the remaining
actual heights using similar triangles. Remember to subtract the camcorder height from
the Vi, and then add it back in to get the actual rocket heights zi. Thus, we get:
zi  CamHeight 
(Vi  CamHeight )(mi )
meters.
ni
Now, plot these points in three-dimensional space:
Water Rockets in Flight
Page 16 of 60
2/13/16
4.2
Modeling the Flight Path Using Polynomial Interpolation
With estimates of the three-dimensional coordinates for the rocket at nine
different times during its flight, we can create a space curve modeling the flight path.
First, we can plot this data in three dimensions. Then, after specifying the various ti, xi,
yi, and zi values, we can use 7 of the 9 data points (omitting the in-flight points at times t3
and t6) to create a 6th degree interpolating polynomial in the X, Y, and Z components (note
that the number of points used in the polynomial-interpolation fit must be exactly one
more than the degree of the polynomial). Higher order polynomials are needed to capture
the varying effects of rocket propulsion and wind (as can be seen in the Figures below).
We chose the 3rd and 6th data points simply by experimentation with omitting different
pairs of points to see which yielded the best model. In the absence of more sophisticated
curve fitting techniques, this experimentation is an important part of the modeling
process.
The resulting 6th degree interpolating polynomials obtained from our zero-torsion
model for the X, Y, and Z coordinates (expressed in units of meters with time measured in
seconds) are:
X (t )  0.0412t  4.65t 2  8.73t 3  7.63t 4  3.12t 5  0.480t 6 ,
Y (t )  7.32  0.0701t  7.90t 2  14.8t 3  13.0t 4  5.31t 5  0.816t 6 , and
Z (t )  15.0t  20.8t 2  27.3t 3  24.3t 4  10.3t 5  1.59t 6 .
Next, we use these parameterized coordinate functions to create a space curve modeling
the rocket flight.
Water Rockets in Flight
Page 17 of 60
2/13/16
Note that, as in each separate coordinate, the interpolating curve fits all of the data points
well, even the points corresponding to times t3 and t6. It is important to note here that the
coefficients of the sixth-degree interpolating polynomial are not required to possess
physical interpretations, in contrast to, for example, a least-squares fit of the flight path
based on a parabolic model.
The polynomial fit curve shows the effect of the gusting wind on the empty (and
hence light) rocket toward the end of its flight. It also gives a means of estimating the
maximum height attained by the rocket, a quantity which could not be determined from
the raw data alone. This and other applications of the model will be addressed in next
section.
4.3
Analysis of the Flight
Many questions naturally arise about the rocket flight path. How high did the
rocket go? How fast was it going at different times? How much of that speed was due
to vertical motion, and how much to lateral motion? What was its acceleration at
different times? How far did the rocket travel during its flight? How sharply did it turn
around when it reached its apex? Was that the tightest turn it made during the flight?
When did the three stages (thrusting, coasting, recovery) of the flight occur? To what
extent did the wind counteract gravity? How much did the wind blow the rocket off the
parabolic path predicted by the standard model?
If we look only at the video stills, we simply cannot address any of these
questions just from that raw data. However, now that we have a model approximating
the rocket flight, we can apply the concepts of calculus to find reasonable solutions for
these questions.
The analysis below illustrates the ways that our curve may be physically
interpreted. Another rocket flight will undoubtedly lead to a different shaped curve with
different physical properties. For example, in question 6 below, the graph shows that a
wind gust with considerable horizontal strength actually lifted our rocket toward the end
Water Rockets in Flight
Page 18 of 60
2/13/16
of its flight. A significantly different curve may result from other wind effects, or a
windless day, and consequently must be considered in its own right rather than just
mimicking our analysis.
To address these questions, we will use the space curve R(t) modeling the rocket
flight that we found using 6th degree polynomial interpolation:
R(t )  X (t ), Y (t ), Z (t ) ,
where X(t), Y(t), and Z(t) are the coordinate functions given above. We will also need the
velocity vector Rprime(t) (with units of meters/sec) and acceleration vector R2prime(t)
(with units of meters/sec2), vector-valued curves that can be found by taking the
component-wise first and second directives of R(t), respectively:
Rprime(t )  X (t ), Y (t ), Z (t ) and R2prime(t )  X (t ), Y (t ), Z (t ) .
Specifically,
X (t )  0.0412  9.29t  26.2t 2  30.5t 3  15.6t 4  2.88t 5 ,
Y (t )  0.0701  15.8t  44.5t 2  51.9t 3  26.6t 4  4.90t 5 ,
Z (t )  15.0  41.6t  81.8t 2  97.4t 3  51.4t 4  9.57t 5 ;
and
X (t )  9.29  52.4t  91.6t 2  62.5t 3  14.4t 4 ,
Y (t )  15.8  89.0t  156t 2  106t 3  24.5t 4 ,
Z (t )  41.6  164t  292t 2  206t 3  47.8t 4 .
The velocity and acceleration vectors will also be used to calculate the Frenet-Serret
curvature for the three-dimensional parametrized space curve.
1. How high did the rocket go?
This is perhaps the most natural question to ask that cannot be readily answered
simply by watching the videotape. However, now that we have a smooth flight-path
curve, finding the maximum height of the rocket is easily done by setting the vertical
component of the velocity equal to zero and solving for t = tmax. This gives the time
when the rocket reached its apex. We then find the maximum height by substituting this
time, t  tmax , into Z(t):
Z (t )  15.0  41.6t  81.8t 2  97.4t 3  51.4t 4  9.57t 5 ;
Z (t )  0 when t  tmax  0.974 seconds, and Z (0.974)  5.81 meters.
A maximum height of about 5.81 meters is not bad for a water-propelled rocket with a
fluorescent green plastic chamber about 13 centimeters long! Note, however, that in the
absence of air resistance with an initial vertical speed of 15.0 meters/sec, the rocket
should have reached a maximum height of (15.0)2/(19.6) = 11.5 meters, or almost twice
Water Rockets in Flight
Page 19 of 60
2/13/16
as high as our model predicts. One can readily see the effect of air resistance on the
maximum height.
2. How fast was the rocket going at the launch, apex and landing times? How much of
that speed was due to vertical motion, and how much to lateral motion? What was its
acceleration at those times?
To address these questions we can find and analyze the velocity and acceleration
vectors and their magnitudes. We begin first with the components of the velocity vectors,
with each component measured in meters/sec:
R (0)  0.0412,  0.0701, 15.0 ,
R (tmax)  0.937,  1.59, 0 ,
R (tland )  3.88,  6.59,  13.5
Here, tland  t8  2.37 seconds. Note that the signs of the components of each velocity
vector indicate direction, information which is lost when we compute the overall speed
below. Also notice that at the launch the derivatives in the X and Y components are very
small (in absolute value), reflecting the fact that we actually did a pretty good job of
launching the rocket vertically (i.e., the initial launch angle is   89.7 degrees as
measured from the horizontal), and that the later lateral motion must have been due to the
wind. At the apex of the flight path, even though the Z(t) derivative is zero, the X(t) and
Y(t) derivatives indicate that the rocket was still moving laterally (in a rather significant
amount). Upon impact, although the rocket hit the ground with nearly the same vertical
velocity as it left the ground, it was still moving quite fast laterally.
To see the overall speed at these three times, we need the magnitudes of the
velocity vectors. We find that their magnitudes in meters/sec are:
speed (0)  R(0)  15.0,
speed (tmax)  R(tmax)  1.85,
speed (tland )  R(tland )  15.5 .
Comparing these speeds to the values of the individual components shows that the speed
at launch was almost entirely in the vertical direction, whereas when the rocket landed,
because of the lateral motion, it was moving faster.
Using the fact that 1 mile/hour is equivalent to 0.447 meters/sec, we can convert
these speeds to miles/hour as:
speed (0)  R(0)  33.5,
speed (tmax)  R(tmax)  4.14,
speed (tland )  R(tland )  34.6 .
Water Rockets in Flight
Page 20 of 60
2/13/16
Now, consider the acceleration vectors at these three times, with each component
measured in meters/sec2:
R (0)  9.29,  15.8,  41.6 ,
R (tmax)  0.418,  0.711,  12.4 ,
R (tland )  21.8,  37.1,  65.3
The negative value of the acceleration in each Z component illustrates the general
property that when an object is slowing down the acceleration is in the opposite direction
of the motion and when it is speeding up the acceleration is in the same direction of the
motion. Thus, when rising and slowing down, the rocket has negative acceleration (in
opposite direction to its ascent), and when falling and speeding up, the rocket also has
negative acceleration (in the same direction as its descent).
Next, find the lengths of the acceleration vectors at these three times, each again
measured in meter/sec2. We can then compare these values to some common known
accelerations.
acceleration(0)  R(0)  45.4,
acceleration(tmax)  R(tmax)  12.4,
acceleration(tland )  R(tland )  78.2.
The starting acceleration is about 50% more than that of a Space Shuttle at take off (29
meter/ sec2), the apex acceleration is about 50% more than that of a cheetah at take off
(7.8 meter/ sec2), and the landing acceleration is about twice as much as that of a
parachute at landing (35 meter/sec2); these common accelerations were found at the
Internet site of Dr. Richard Vawter of the Dept. of Physics and Astronomy at Western
Washington University:
http://www.ac.wwu.edu/~vawter/PhysicsNet/Topics/Kinematics/AccelerationValues.html
We quickly point out, however, that although the acceleration at apex is relatively close
to the theoretical prediction of 9.8 meters/sec2 for g, the landing acceleration indicates the
rocket hit the ground with an acceleration of about 8 g’s, which is physically impossible!
We must stress at this point that the numerical values associated with the velocity
and acceleration vectors calculated above are in no way meant to be interpreted
physically. Instead, they are to be used to provide a semi-quantitative description of the
path of the rocket. For example, considering the effects of air resistance and gravity
alone, we conclude on physical grounds that the magnitude of the vertical component of
the acceleration should be larger than the gravitational acceleration (g = 9.81 m/s2) on its
ascent (when gravity and air resistance are in the same direction) while it should be less
than the gravitational acceleration on its descent (when gravity and air resistance are in
opposite direction). Although the numerical results for the acceleration show a vertical
component relatively close to g at the apex, we readily observe that the values at launch
and landing times raise serious doubts about the numerical validity of the model.
3. How far did the rocket travel during its flight? Looking at the flight path, it seems
that the rocket went further coming down than going up, but how much further?
Water Rockets in Flight
Page 21 of 60
2/13/16
We can answer this question by finding and interpreting the arc length of the
flight path, over various time intervals. First, determine the length over the entire flight:
tland

R(t ) dt 
tland

0
X (t ) 2  Y (t ) 2  Z (t ) 2 dt  12.8 meters.
0
Then, determine the lengths over the rising and falling parts of the flight:
tmax

R(t ) dt 
0
tmax

X (t ) 2  Y (t ) 2  Z (t ) 2 dt  6.26 meters, and
0
tland

tmax
R(t ) dt 
tland

X (t ) 2  Y (t ) 2  Z (t ) 2 dt  6.54 meters.
tmax
Thus, we can see that the distance traveled by the rocket during its flight was about 12.8
meters. About 6.26 meters were traversed during the first part of the flight, and 6.54
meters during the second part of the flight when the rocket was lighter and the wind blew
it more off course. In fact, taking into account the effects of air resistance and gravity
alone we would expect on physical grounds that the distance covered during the second
half of the flight path of the rocket (i.e., during its descent) should be shorter than the
distance covered during the first half of the flight path (i.e., during its ascent). Hence, the
longer distance during the descent is indeed an indication of a wind gust with significant
in-plane strength.
4. How sharply did the rocket turn around when it reached its apex? Is this the tightest
turn it made during its flight?
The Frenet-Serret curvature function,  (t ) , will help answer this question. Recall
that the radius of the osculating circle is the reciprocal of  , so the bigger  is, the
tighter the curve.
R(t )  R(t )
Curvature   (t ) 
3
R(t )
The curvature at the apex, when t  tmax  0.974 seconds, is  (tmax)  3.62 meters-1.
1
Thus, the osculating circle has radius
 0.276 meters, which is about the size of
 (tmax)
an extra large pizza.
But is this necessarily the maximum curvature?
curvature:
Water Rockets in Flight
Page 22 of 60
Consider the graph of the
2/13/16
Since  (t )  0 when t  0.963 seconds, then the maximum curvature is
 (0.963)  3.65 meters-1, with osculating circle radius of 0.274 meters. Therefore, it
looks like the maximum curvature occurred slightly after the rocket turned around at its
apex. Since the values are so close, it is difficult to determine if this is due to the wind
pushing sideways as the rocket slowed, and thus "loosening" the curve, or whether it is
due to the vagaries of the model.
We notice a remarkable feature of curvature versus time near the 1.9 sec mark.
There, the curvature becomes very small indicating that the velocity and acceleration
become nearly parallel for a short time. This is possible if a wind gust with significant
planar strength appeared at that time.
5. When did the three stages of thrusting, coasting, and recovery of the rocket flight
occur?
While it would be quite difficult to determine this by watching the videotape
(especially the transition from thrusting to coasting), and almost impossible to determine
from the nine data points, the stages can be quite clearly seen from the plots of the
magnitudes of the velocity and acceleration functions.
First, plot the three components of the velocity curve.
Then, find the speed (magnitude of the velocity), and plot the resulting curve.
Water Rockets in Flight
Page 23 of 60
2/13/16
Speed  R(t )  X (t )2  Y (t )2  Z (t )2
The speed curve gives a preliminary indication of the stages. We already know the
transition point between the coasting and recovery stages, since that is just the time the
rocket reached it maximum height at t  tmax  0.974 seconds.
The more subtle question is the transition between the thrusting and coasting
stages. Note that the rocket starts out going quite fast, and then the speed decreases.
There is a slight bend in the speed curve around 0.3 seconds, but it is hard to see exactly
what is happening when. The magnitude of the acceleration will give us more
information. First, plot the three components of the acceleration curve.
Then, find and plot the acceleration magnitude curve.
Acceleration  R(t )  X (t )2  Y (t )2  Z (t )2
Water Rockets in Flight
Page 24 of 60
2/13/16
We can see the transition from the thrusting stage to the coasting stage more clearly in the
acceleration magnitude graph. The rocket was accelerating (although less and less as it
lost water and pressure) from launching to somewhere around 0.5 seconds, and then
leveled off somewhat during the coasting stage. More specifically,
d
d
Acceleration 
R(t )  0 , when t  0.518 seconds.
dt
dt
Observe that between 1.8 and 2 seconds apparently a strong gust of wind caught
the rocket and forced it sideways and down. The end of the coasting stage is when the
rocket turns around, which we determined above to be at t  tmax , and the rest of the
flight is the recovery.
Therefore, the thrusting went from t  0 to t  0.518 seconds, the coasting went
from t  0.518 to t  tmax seconds, and the recovery went from t  tmax to t  tland .
6. To what extent did the wind counteract gravity?
Since gravity is in the vertical direction, it suffices to consider just the vertical
component of the acceleration vector, and we need to compare this to the constant
acceleration due to gravity ( 9.81 meters/sec2) which otherwise would be the only force
acting on the rocket after the thrusting stage finished.
Water Rockets in Flight
Page 25 of 60
2/13/16
In the absence of wind effects or air resistance, we would have expected Z"(t) to
increase to –9.81 meters/sec2 during the thrusting stage, and then remain constant for the
rest of the flight. Any deviation from this thus must reflect the effects of wind gusts
and/or air resistance. Notice that the graph of Z (t ) indicates that the upward force from
the wind actually exceeded the downward force of gravity. Setting Z (t )  0 , we find
that t  1.57 to t  1.90 seconds was the interval during which this occurred. Also,
toward the end of the flight, a gust of wind actually pushed the rocket fairly hard into the
ground. However, there was comparatively little wind effect during the coasting stage as
evidenced by the curve staying fairly close to the gravitational constant. Also, compare
the two times when Z"(t) is zero to approximately the same times of the two "dips", the
second one quite sharp, in the previous acceleration magnitude graph.
7. How much was the rocket blown off course by the wind?
One way of getting a sense of this is to compare our model to the parameterized
curve S cos( )t , S sin( )t  1 (9.81t 2 ) , which gives the trajectory of a projectile with
2
no other forces acting on it except gravity. Here, S is the initial speed,  is the launch
angle, g is the gravitational constant ( 9.81 meters/sec2), and the initial position at t  0
is ( x, z )  (0, 0) . Of course, this does not model our thrusting stage, but it is the best
general model with which we have to work.
Since the standard model is in two dimensions, we first need to reparameterize
our model along the ground path from launch to landing position to get a curve in two
dimensions. Thus, the first coordinate function is
 X  t   X  0    Y  t   Y  0  
2
2
and
the second coordinate function is simply Z(t).
Water Rockets in Flight
Page 26 of 60
2/13/16
In order to use the standard model, we need values for the initial speed S and
launch angle  . We will start by estimating them from the t1 and t 2 data points. S is
then just the change in distance divided by the change in time, and  is the launch angle
from the launch point at t  t1  0 seconds to the position at t  t2 seconds.
 X (t2 )  X (t1 )   Y (t2 )  Y (t1 )    Z (t2 )  Z (t1 ) 
2
S
2
2
t2  t1

arccos

 X (t2 )  X (t1 )   Y (t2 )  Y (t1 ) 
2
2
 11.4 meters/sec, and

 X (t2 )  X (t1 )   Y (t2 )  Y (t1 )    Z (t2 )  Z (t1 ) 
2
2
2
 1.44 radians.
Note that the initial velocity is less than the “instantaneous” initial speed of 15.0
meters/sec found in question 2, and reflects the changing acceleration during the thrusting
stage.
We find the appropriate t ranges by assuming that the second coordinate remains
positive. Thus, we solve:
S sin( )t  1 (9.81t 2 )  0 .
2
This will have two solutions:
t  StandardLaunchingTime  0.000 seconds, and
t  StandardLandingTime  2.31 seconds.
Now, plot and compare our model to the standard parabolic model.
Water Rockets in Flight
Page 27 of 60
2/13/16
The difference in the landing positions will give us a sense of how far “off
course” the rocket was blown:
StandardLandingDist  S cos( )( StandardLandingTime)  3.37 meters,
LandingDifference = DistA - StandardLandingDist  1.15 meters.
Without wind, the standard model estimates that the landing site would have been about
3.37 meters away from the launching site, but the rocket actually landed some 4.52
meters away, a difference of about 1.15 meters.
It might be argued that the launch angle was actually directly up and the vertical
deviation was due to wind. Furthermore, the rocket was accelerating from t1 to t 2 , so
the S and  used above may not be the best parameters for a good comparison. If the
initial
value
shifts
at
to
the
model
becomes
t  ti
( xi , zi ) ,
S cos( )(t  ti )  xi , S sin( )(t  ti )  1 g (t  ti )2  zi . We estimated the parameters S
2
and  with times t 2 and t3 , since the thrust was diminished by then. In this case, the plot
of our model and the standard model looks like:
This illustrates that there was a thrusting phase occurring during the actual
rocket flight. Also, while this two-dimensional model involves no wind effect, we found
that it gives a greater ground distance than was actually covered by the rocket. Since the
rocket was in fact blown by the wind, this is probably a less useful model than the
parabolic model derived using t1 to t 2 .
Water Rockets in Flight
Page 28 of 60
2/13/16
5.
Model Variations
5.1
Modeling the Flight Path Using Least Squares Fit
We can also find a viable model through a least squares fit of the 9 data points
provided in Table 1. Section 7.2 provides more information about least squares fitting.
As seen below, the model created through a 6th degree least squares method is quite
similar in shape to the 6th degree polynomial interpolation from Section 4.2. For
example, both models achieve similar maximum height. Preference of one method over
the other may depend upon which modeling tools are available, where this module is
integrated in the curriculum, and mathematical background.
Using the times the times ti and coordinates xi, yi, and zi from Table 3, we can find
a least squares fit for the X, Y, and Z components. The resulting 6th degree least squares
polynomials for the X, Y, and Z components, measured in meters, are:
X (t )  0.161t  3.80t 2  6.74t 3  5.77t 4  2.37t 5  0.369t 6 ,
Y (t )  7.32  0.277t  6.46t 2  11.5t 3  9.81t 4  4.03t 5  0.627t 6 , and
Z (t )  14.6t  18.1t 2  20.7t 3  18.1t 4  7.74t 5  1.22t 6 .
We can then use the least squares fits in the three components to create a space
curve to model the rocket's flight.
As with the interpolated version, this curve fits the data points well and can be
used to analyze the rocket flight. It will give slightly different values for the questions
considered in Section 4.3. For example, to estimate the maximum height, we compute
the derivative of Z(t), and find the critical value of Z(t).
Water Rockets in Flight
Page 29 of 60
2/13/16
Z (t )  14.6  36.2t  62.0t 2  72.4t 3  38.7t 4  7.32t 5 meters.
Z (t )  0 when t  0.958 secs, and Z (0.958)  5.68 meters.
Thus, according to our least squares curve, the rocket reached its maximum height
approximately 0.958 seconds into the flight, and the height was approximately 5.68
meters, which is less than the 5.81 meter approximation found with the interpolated curve
in Section 4.3.
5.2
Simpler Height Versus Time Model
It is also possible to use calculus of one variable to analyze the rocket flight from
the height function alone. Much of the work is very similar to that in the threedimensional case. Estimating the actual rocket positions is done as in Section 4.1, and
finding a model Z(t) for the height as a function of time uses interpolation as in Section
4.2. The functions X(t) and Y(t) do not need to be determined.
Since the height function Z(t) is identical to the third (vertical) component of the
three-dimensional model, some of the analysis below repeats what was presented earlier.
We have included this as necessary to provide a complete consideration of the height
versus time model.
The height function alone does not model the strong lateral drift due to the wind
at the end of the flight, but it does show the slight lift and sharp drop at the end of the
flight as the wind forced the rocket down.
Here are the data points and the curve Z(t).
Now, as in Section 4.3, we can address some questions about the rocket flight.
We will need to use the first and second derivatives of Z(t) to answer these questions:
Z (t )  15.0  41.6t  81.8t 2  97.4t 3  51.4t 4  9.57t 5 meters/sec,
Z (t )  41.6  164t  292t 2  206t 3  47.8t 4 meters/sec2.
Water Rockets in Flight
Page 30 of 60
2/13/16
1. How high did the rocket go?
Setting Z (t ) equal to zero and solving for t  tmax yields the time when the
rocket reached its apex. We find the maximum height by substituting this time into Z(t):
Z (t )  0 when t  tmax  0.974 seconds, and Z (0.974)  5.81 meters.
2. How fast was the rocket going at the launch, apex and landing times?
acceleration at those times?
What was its
To find the velocities in meters/sec, we substitute these three times into Z (t ) :
Z (0)  15.0 ,
Z (tmax)  0.000 , and
Z (tland )  13.5 .
Using the fact that 1 mile/hour is equivalent to 0.447 meters/sec and taking
absolute values, we can convert these velocities to speeds in miles/hour as:
Z (0)  33.5 ,
Z (tmax)  0.000 , and
Z (tland )  30.1 .
Next, find the accelerations at these three times, each measured in meter/sec2:
Z (0)  41.6 ,
Z (tmax)  12.4 , and
Z (tland )  65.3 .
3. When did the three stages, thrusting, coasting and recovery, of the rocket flight occur?
The recovery stage begins at time t  tmax . The end of the thrusting
stage/beginning of the coasting stage can be more subtle. We first consider the graphs of
the velocity Z (t ) and acceleration Z (t ) functions:
Water Rockets in Flight
Page 31 of 60
2/13/16
The thrusting stage ends with the first maximum of Z"(t), so we must determine
when this occurs:
d
 Z (t )   0 , when t  0.517 seconds.
dt
Therefore, the thrusting went from t  0 to t  0.517 seconds, the coasting went from
t  0.517 to t  tmax seconds, and the recovery went from t  tmax to t  tland .
Observe that between 1.8 and 2 seconds apparently a strong gust of wind caught the
rocket and forced it sideways and down.
4. To what extent did the wind counteract gravity?
Since gravity is in the vertical direction, it suffices to consider just the vertical
component of the acceleration vector, and we need to compare this to the constant
acceleration due to gravity ( 9.81 meters/sec2) which otherwise would be the only force
acting on the rocket after the thrusting stage finished.
Water Rockets in Flight
Page 32 of 60
2/13/16
If there had been no wind or air resistance, we would have expected Z"(t) to
increase to –9.81 meters/sec2, during the thrusting stage, and then remain constant for the
rest of the flight. Any deviation from this thus must reflect these effects. Notice that the
graph of Z (t ) indicates that the upward force from the wind actually exceeded the
downward force of gravity. Setting Z (t )  0 , we find that t  1.55 to t  1.95 seconds
was the interval during which this occurred. Also, toward the end of the flight, a gust of
wind actually pushed the rocket fairly hard into the ground. However, there was
comparatively little wind effect during the coasting stage as evidenced by the curve
staying fairly close to the gravitational constant.
5. What effect did the wind have on the heights attained by the rocket?
We can use the standard parabolic model, s(t )  vt  1 gt 2 , for the height of a
2
projectile to get some sense of what effect the wind might have had on the heights of the
rocket.
In order to use the standard model, we need values for the initial velocity v . We
will start by estimating it from the t1 and t 2 data points. v is then approximately the
change in distance divided by the change in time:
v
Z (t2 )  Z (t1 )
 11.3 meters/sec.
t2  t1
We find the appropriate t ranges by assuming that standard model remains positive.
Thus, we solve:
vt  1 (9.81t 2 )  0
2
This will have two solutions:
Water Rockets in Flight
Page 33 of 60
2/13/16
t  StandardLaunchingTime  0.000 seconds, and
t  StandardLandingTime  2.31 seconds.
Now, plot and compare our model to the standard parabolic model.
The greater height of the parabolic model reflects the difference in thrust in the two
models.
We look at the difference in the air time, which will give us a sense of how the
wind may have held the rocket in the air long than might be expected, or driven it into the
ground earlier than might be expected.
AirTimeDifference  tland  (StandardLaunchingTime  StandardLandingTime)
 0.0564 seconds.
The rocket was accelerating from t1 to t 2 , so the initial velocity v used above
may not be the best parameter for a good comparison. If the initial value shifts to (ti , zi ) ,
the model becomes s(t )  v(t  ti )  1 g (t  ti )2  zi . We estimated the parameter v with
2
times t 2 and t3 , since the thrusting stage was about over by then. In this case, the plot of
our model and the standard model looks like:
Water Rockets in Flight
Page 34 of 60
2/13/16
Comparing these two models, we get that AirTimeDifference = 0.209 seconds in
this case. This model gives a better fit for the first part of the flight, and since the rocket
was in fact blown by the wind, this is probably a more useful comparison than the
parabolic model derived using t1 to t 2 .
6.
Some Comments on the Modeling
Hindsight is 20-20. In the process of running this project with our classes,
repeating it to get the data presented here, and then writing this paper, we identified
problem areas, thought of ideas for improving the project, and discovered new resources.
We plan to use some of these items in the future, and offer them here for consideration.
We hope that anyone who tries this module, and especially anyone who experiments with
any of the modifications below, will contact us to share their experiences.
Measurements
The task of taking accurate measurements in this experiment is difficult because of
uneven turf and uncertain elevations. These inaccuracies can have a considerable effect
on the model. Furthermore, the method used to estimate the launching and landing
positions of the rocket (ground measurements) was different from the method used to
estimate the in-flight positions (projection against the building). This must be done
carefully to avoid misleading results. More sophisticated measuring tools, if available,
could help here. For example, the use of laser telemetric devices (e.g., electronic
theodolites; see http://www.mohaveinstrument.com/) would improve the measurements
of distance.
Sensitivity
It is instructive to see how robust our numerical results are by introducing a
measurement uncertainty in our perceived positions of the rocket during its flight path.
First, we look at how uncertainties in the position of the water-rocket along its path can
Water Rockets in Flight
Page 35 of 60
2/13/16
change the maximum height achieved by the water rocket. In the Figures below (where
the parabolic curves are generated from the first two times), we show the influence of a
1% uncertainty (left graph) and a 10% uncertainty (right graph) artificially imposed on
the data. As can be seen, a 10% uncertainty (which translates into making measurements
with 2 significant digits) shows tremendous variations in maximum height and, by
extension, maximum horizontal distance covered. In contrast, a 1% uncertainty (which
translates into making measurements with 3 significant digits) shows only small
variations.
Next, we look at the effect of measurement uncertainties on curvature, which provided
above a clear signal for a gust of wind occurring at approximately 1.9 seconds after the
launch. While a 1% uncertainty in the data measurements shows virtually no changes in
the curvature graph, a 10% uncertainty in the data measurements (as shown in the Figure
below) clearly shows variations in the maximum curvature achieved during the flight
path of the water rocket. We also note, however, that the wind-gust feature at 1.9
seconds is fairly robust.
Water Rockets in Flight
Page 36 of 60
2/13/16
Flight Stages
Because rocket propulsion allows the water rocket to leave the ground with zero
initial velocity, the forces acting on the rocket during the thrusting stage are different
from those during the coasting and recovery stages. Since the polynomial fit presented
here is a global fit (i.e., it assumes that the physics of the initial thrusting stage is the
same as the later two stages), it mistakenly assigns a non-zero initial velocity. By taking
more data points, it should be possible to develop two separate approximating functions,
one for the thrusting stage (with zero initial velocity), and one for the coasting and
recovery stages (with non-zero initial velocity at the beginning of the coasting stage).
This would give a piecewise function as a model of the rocket flight, although
presumably a more accurate one. The disadvantage of possibly discontinuous derivatives
might be addressed with curve smoothing techniques.
Weathercocking
Weathercocking is the cumulative effect of the airflow over the nose of the rocket
and the wind. This effect can cause the rocket to move into the wind. There is a good
description of weathercocking at the Future Astronauts of America Foundation website.
See Section 7.4 for more details. Because the wind was gusting during our launch, we
were not able to get a sense of what effect this might have had on our rocket. A water
rocket launched during a gentle, steady wind might demonstrate some weathercocking. It
would be interesting to try to determine the extent of this effect. It might also be useful
to record the wind direction and speed during the flight. The technical difficulties are
finding a practical means for doing so and correlating the wind data with the flight data.
Three Dimensional Coordinates
We have always done this project using a single video camera. This has forced us
to make the simplifying assumption that the rocket remained in the vertical plane through
the ground path. Using two widely spaced video cameras to record the launch would
allow the construction of a non-planar space curve. It would require careful
synchronization of the recordings. More critically, significantly more work would need
to be done to estimate the actual rocket positions from its two different apparent positions
against the building from the video stills of the two different cameras. This would shift
the bulk of the computation in the project to three-dimensional coordinate geometry and
away from the calculus of three variables that we wanted to emphasize. However, it
would presumably give a more interesting space curve as a model, and would make
considering other characteristics, such as the pitch, yaw, and roll, of the rocket more
meaningful. The debate continues, and we would be very glad to hear from anyone who
tries this “binocular” version!
Maximum Height
Although the videotape is not much use in estimating the height of the rocket once
it has soared above the building, a simple ‘sextant’ can be used to determine the height at
the apex. This device measures the angle of elevation from eye level to the object sighted
through the straw. An observer at a known position relative to the rocket launch site
measures the angle of elevation to the rocket when it reaches the apex. The projection of
Water Rockets in Flight
Page 37 of 60
2/13/16
the rocket’s position onto the ground must be determined, and the distance from there to
the observer computed. That distance and the angle of elevation can then be used to
estimate the height. We suggest having at least two people make observations and then
average their estimates of the angular distance. If the observers shout “Max!” at the time
they make their observations, this will be recorded on the videotape, which may give a
sense of how close to the actual apex the observations were made.
It would be fun to reserve this data initially, and construct a model without it.
Then, it could be used to see how accurately the model predicted the maximum height. If
the model does a poor job, this data could be incorporated into the model, and then
analysis done on the improved model.
The instructions and diagram below for making a simple sextant (very slightly
modified) come from the Future Astronauts of America Foundation website described in
Section 7.4.
Materials
A large diameter soda straw
A 20 cm length of string
A protractor
A weight (an eraser or large washer)
Tape
Construction
Tape the straw across the top of the protractor as shown. The straw will act as a sighting
tube. Secure the string to the protractor, by slipping it under the straw and around. Tie
the string to itself and tape it to the back of the protractor. Tie the eraser or washer at the
opposite end of the string, so that it can act as a weight.
Directions for use
Look through the straw, focusing on the rocket as it is being launched. Let the weight
hang freely, but try not to let it swing. Move the device up smoothly as the rocket
ascends. At the instant the rocket turns around, hold the string with your finger exactly
where it is on the protractor. Record this angle.
Water Rockets in Flight
Page 38 of 60
2/13/16
Tape
Sighting Tube
(Straw)
180
0
Protractor
String
Small
Weight
7.
Appendices
7.1
Additional Video Stills
We strongly recommend launching and videotaping your own rocket. It is a lot of
fun, and much more satisfying to analyze your own data. However, in case this is simply
not feasible, we provide some video stills. They are from the same launch as the main
example in this paper, so Figures 4 and 5 in Section 3.3 and Figure 6 in Section 4.1
provide the ground layout for them. There is a scale at the top of the blueprint in Figure 3
in Section 3.1 for estimating the apparent position of the rocket against the building.
It is worth comparing your model with the example in this paper (they will
probably be different, even though the data is from the same flight—why is this?), and
even more interesting to pool the data and see if both models can be improved by
increasing the number of data points.
Water Rockets in Flight
Page 39 of 60
2/13/16
Figure 7
0th launch frame
5th frame
9th frame
13th frame
49th frame
53rd frame
Water Rockets in Flight
Page 40 of 60
2/13/16
57th frame
61st frame
71st landing frame
Water Rockets in Flight
Page 41 of 60
2/13/16
7.2
Maple 8 Code
Below is the Maple 8 code we used for our project. The generic Maple
procedures, which may be used with any rocket flight data set, are provided first,
followed by the commands which generate the specific results we present in this module.
To format the labeled diagrams that appear in this module, we used Maple plot options to
set parameters such as tickmarks, labelfont, axesfont, title, labeldirections, and
orientation. However, to improve readability, we have omitted most of these labeling
options from the following code. Information about these, and other, plot options can be
found by typing ?plot[options] or ?plot3d[options] on a Maple command line.
Procedures must be executed within a single execution group in Maple. The
output from a procedure is usually in the form of a list, ReturnVal, found at the end of the
procedure. Recall that in Maple, if L is a list, then L[i] returns the i th entry in the list.
Also the command nops, for the number of operands of an expression, when applied to a
list, returns the number of items in L. Thus, if L:=[3, 4, [5,6]], then L[2] = 4, L[3] =
[5,6], and nops(L) = 3. Also, recall that the unapply command may be used in Maple to
convert an expression into an operator.
Maple carries out all computations to 10 places. This is necessary, especially
when interpolating the curves. However, our data is only accurate to 3 significant digits.
Thus, in our output, we use the evalf command to restrict our displayed results to 3
significant digits.
Water Rockets in Flight: 3D Modeling and Analysis
Load Packages
> restart;
> with(plots):with(linalg): with(VectorCalculus):with(stats): with(CurveFitting):
FlightPoints Procedure
FlightPoints finds and plots estimated points along the rocket flight path.
Input: Frames is a list of the frames from which the stills are taken; FramesPerSecond is the
number of frames taken per second by the camcorder; CamHeight is the height of the camcorder
above the ground; PerceivedHeights and HorzDist are the corresponding list of heights and
horizontal distances measured from the blueprint; BuildingDistance is the perpendicular distance
from the camcorder to the building; DistA is the distance from the rocket launch site to the rocket
landing site; DistB is the distance from the camcorder to the rocket landing site; DistC is the
distance from the camcorder to the rocket launch site (on the line from the camcorder to the
building).
Output: A list of lists [Times, Xvals, Yvals, Zvals, PointPlot, As, ns, ms], where Times, Xvals,
Yvals, Zvals are lists of the times, x-coordinates, y-coordinates, z-coordinates, respectively;
PointPlot, a plot structure of the estimated points along the rocket flight path; and As, ns, ms are
the intermediate values of Table 2.
> FlightPoints:=proc(Frames, PerceivedHeights, HorzDists, FramesPerSecond, CamHeight,
BuildingDistance, DistA, DistB, DistC)
> local angle, A,B, H,i,n,m, x,y, z,r, PointsPlot,Times, Xvals, Yvals, Zvals, As, ns, ms, ReturnVal:
First convert the frames into seconds:
> Times:=[seq(Frames[i]/FramesPerSecond, i=1..nops(Frames))];
Water Rockets in Flight
Page 42 of 60
2/13/16
The following function takes the lengths a, b, c of a generic triangle and, using the law of cosines,
returns the angle (in radians) opposite side a:
> angle:=(a,b,c)->evalf(arccos((b^2+c^2-a^2)/(2*b*c))):
Use this to find A, the angle at the camcorder between the rocket launch and landing sites:
> A:=angle(DistA, DistB, DistC);
Since the line from the camcorder through the launch site forms a right angle with the building,
this angle can be used to find the horizontal distance along the building at landing. At launch the
horizontal distance is 0.
> H:=[0, seq(HorzDists[i], i=1..nops(HorzDists)), (BuildingDistance)*tan(A)];
Using the horizontal distances above, find the ground angles between the launch site and the
rocket position at each time:
> for i from 1 to nops(H) do A[i]:=evalf(arctan(H[i]/(BuildingDistance))); od;
Also use A and the fact that the line from the camcorder through the launch site to the building is
perpendicular to the building to find the hypotenuses n[i] :
> for i from 1 to nops(H) do n[i]:=(BuildingDistance)/cos(A[i]); od;
Use the law of cosines to find B:
> B:=angle(DistB, DistA, DistC);
Now use the proportions from the law of sines to find the lengths of m[i]:
> m[1]:=DistC; for i from 2 to nops(H) do m[i]:= evalf(sin(B)*DistC/sin(Pi-(B+A[i]))); od;
We are assuming that the rocket's path remains in the vertical plane through its launch and
landing sites. Thus, the A[i]'s and m[i]'s give the angles and magnitudes of the for the projection
into the X-Y plane of the position vectors for the rocket at time Times[i].
> for i from 1 to nops(H) do x[i]:= evalf(m[i]*cos(Pi/2-A[i])); od;
> for i from 1 to nops(H) do y[i]:= evalf(m[i]*sin(Pi/2-A[i])); od;
Similar triangles can be used to determine the actual rocket heights from the perceived heights
against the building.
There aren't perceived heights for the launch and landing, so assign these values:
> z[1]:=0; z[nops(H)]:=0;
Find the rest of the actual heights using similar triangles, remembering to subtract the camcorder
height from the r[i], and then add it back in to get the actual rocket heights, z[i]:
> for i from 1 to nops(PerceivedHeights) do r[i+1]:=evalf((PerceivedHeights[i]CamHeight)*m[i+1]/n[i+1]); od;
> for i from 2 to nops(H)-1 do z[i]:=r[i]+CamHeight od;
> Xvals:=[seq(x[i], i=1..nops(H))];
> Yvals:=[seq(y[i], i=1..nops(H))];
> Zvals:=[seq(z[i], i=1..nops(H))];
List the intermediate values for Table 2:
> As:=[seq(A[i], i=1..nops(H))];
> ns:=[seq(n[i], i=1..nops(H))];
> ms:=[seq(m[i], i=1..nops(H))];
Plot a graph of this data in 3 dimensions:
> PointsPlot:=display(pointplot3d({seq([x[i],y[i],z[i]], i=1..nops(H))},style=point, symbol=diamond,
axes=normal,labels=[x,y,height])):
> ReturnVal:=[Times, Xvals, Yvals, Zvals, PointsPlot, As, ns, ms];
> ReturnVal;
> end:
PolyFit Procedure
PolyFit uses interpolation to fit n+1 selected data points to a nth degree polynomial.
Input: Times, Xvals, Yvals, Zvals are the times, x-coordinates, y-coordinates, z-coordinates,
respectively, of a list of data points. DataList is a list of which n of those data points to use to fit
Water Rockets in Flight
Page 43 of 60
2/13/16
the curve (for example, for a 6th degree polynomial, choose 7 data points from a list of at 7 or
more data points).
OutPut: A list [Xcurve, Ycurve, Zcurve, Xplot, Yplot, Zplot, WholePlot], where Xcurve,
Ycurve, Zcurve are the coordinate functions of the curve approximating the rocket flight path
using polynomial interpolations. Xplot, Yplot, Zplot are 2D plot structures of Xcurve, Ycurve,
Zcurve, respectively, with respect to time, together with the chosen data points; and WholePlot is
a 3D plotstructure of the spacecurve approximating the rocket flight path, again displayed
together with the chosen data points.
> PolyFit:=proc(Times, Xvals, Yvals, Zvals, DataList)
> local Xcurve, Ycurve, Zcurve, Xplot, Yplot, Zplot, WholePlot, ReturnVal;
Find polynomial interpolations for the X, Y, and Z coordinate functions. The 'unapply' command
is necessary to change the output of PolynomialInterpolation into a function.
> Xcurve:=unapply(PolynomialInterpolation([seq(Times[DataList[i]], i=1..nops(DataList))],
[seq(Xvals[DataList[i]], i=1..nops(DataList))], t),t):
> Ycurve:=unapply(PolynomialInterpolation([seq(Times[DataList[i]], i=1..nops(DataList))],
[seq(Yvals[DataList[i]], i=1..nops(DataList))], t),t):
> Zcurve:=unapply(PolynomialInterpolation([seq(Times[DataList[i]], i=1..nops(DataList))],
[seq(Zvals[DataList[i]], i=1..nops(DataList))], t),t):
Plot each of the coordinate functions with respect to time, together with the chosen data points:
> Xplot:=display([plot(Xcurve(t), t=Times[1]..Times[nops(Times)],labels=[t,X]),plot([seq([Times[i],
Xvals[i]], i=1..nops(Times))],style=point, symbol=diamond)]):
> Yplot:=display([plot(Ycurve(t), t=Times[1]..Times[nops(Times)],labels=[t,Y]),plot([seq([Times[i],
Yvals[i]], i=1..nops(Times))],style=point, symbol=diamond)]):
> Zplot:=display([plot(Zcurve(t), t=Times[1]..Times[nops(Times)],labels=[t,Z]),plot([seq([Times[i],
Zvals[i]], i=1..nops(Times))],style=point, symbol=diamond)]):
Plot the space curve with the chosen data points:
>WholePlot:=display([spacecurve([Xcurve(t),Ycurve(t),Zcurve(t)], t=Times[1]..Times[nops(Times)]),
pointplot3d([seq([Xvals[i],Yvals[i],Zvals[i]],i=1..nops(Times))],style=point,symbol=diamond,
axes=normal)]):
>ReturnVal:=[Xcurve(t),Ycurve(t),Zcurve(t),Xplot,Yplot,Zplot,WholePlot];
> end:
Time Derivatives Procedure
TimeDerivs computes the componentwise first and second time derivatives of the space curve, i.e.
the velocity and acceleration (vector valued) functions.
Input: R, where R=[X,Y,Z] is the spacecurve approximating the flight path.
Output: A list [Rprime, R2prime], where Rprime and R2prime are the first and second time
derivatives of R, respectively.
> TimeDerivs:=proc(R)
> local Rprime, R2prime, ReturnVal;
> Rprime:=diff(R(t),t):
> R2prime:=diff(Rprime,t):
> ReturnVal:=[Rprime, R2prime];
> ReturnVal;
> end:
HowHigh Procedure
HowHigh determines how high the rocket went.
Input: Z component of the space curve.
Output: A list [tmax, Zmax], where tmax is the time when the maximum height occurs, and
Zmax is the maximum height attained.
Water Rockets in Flight
Page 44 of 60
2/13/16
> HowHigh:=proc(Z)
> local tmax, Zmax, ReturnVal;
> tmax:=fsolve(D(Z));
> Zmax:=Z(tmax);
> ReturnVal:=[tmax, Zmax];
> ReturnVal;
> end:
HowFast Procedure
HowFast finds the velocity and acceleration vectors, as well as the speed and norm of
acceleration, at the times of launch, maximum height, and landing.
Input: R, where R=[X,Y,Z] is the spacecurve approximating the flightpath; tmax is the time
when maximum height was attained; and tland is the time when the rocket landed.
Output: A list of lists [[V[1], V[2], V[3]], [A[1], A[2],A[3]], [S[1], S[2], S[3]], [mphS[1],
mphS[2], mphS[3]], [accel[1], accel[2], accel[3]]], where V[i], A[i], S[i], mphS[i], and accel[i],
are the velocity vector, acceleration vector, speed (norm of the velocity vector), speed in
miles/hour, and norm of the acceleration vector, respectively, and evaluated at 0 when i = 1, at
tmax when i = 2, and tland when i = 3.
> HowFast:=proc(R, tmax, tland)
> local Rprime, V, R2prime, A, i, speed, mphspeed, accel, ReturnVal;
Find the velocity, and then evaluate it at t =0, tmax, and tland:
> Rprime:=diff(R(t),t);
> V[1]:=subs(t=0, Rprime);
> V[2]:=subs(t=tmax, Rprime);
> V[3]:=subs(t=tland, Rprime);
> for i from 1 to 3 do speed[i]:=norm(V[i],2); mphspeed[i]:=speed[i]/0.447; od;
Find the acceleration, and again evaluate it at t =0, tmax, and tland:
> R2prime:=diff(Rprime,t);
> A[1]:=subs(t=0, R2prime);
> A[2]:=subs(t=tmax, R2prime);
> A[3]:=subs(t=tland, R2prime);
> for i from 1 to 3 do accel[i]:=norm(A[i],2); od;
> ReturnVal:=[[seq(V[i], i=1..3)], [seq(A[i], i=1..3)],[seq(speed[i], i=1..3)], [seq(mphspeed[i], i=1..3)],
[seq(accel[i], i=1..3)]];
> end:
HowFar Procedure
HowFar computes the total arclength of the flight path, as well as the ascending and descending
arclengths.
Input: R, where R=[X,Y,Z] is the spacecurve approximating the flight path; tmax is the time
when maximum height was attained; and tland is the time when the rocket landed.
Output: A list of the arclength of R, the uplength which is the arclength while the rocket was
ascending, and the downlength which is the arclength while the rocket was descending.
> HowFar:=proc(R, tmax,tland)
> local arclength, uplength, downlength, ReturnVal;
> arclength:=ArcLength(R, t=0.0..tland);
> uplength:= ArcLength(R, t=0.0..tmax);
> downlength:= ArcLength(R, t=tmax..tland);
> ReturnVal:=[arclength, uplength, downlength];
> ReturnVal;
> end:
Water Rockets in Flight
Page 45 of 60
2/13/16
Curvature Procedure
Curvature finds the curvatures and radii of the osculating circles at the times of maximum height
and maximum curvature. It also gives a plot of the curvature function.
Input: R, where R=[X,Y,Z] is the spacecurve approximating the flightpath, and tmax, the time
when maximum height was attained, and tland, the time when the rocket landed.
Output: A list [tmax, tmaxcurvature, tmaxradius, maxcurvaturetime, maxcurvature, minradius,
curvatureplot], where tmax is the time when maximum height was attained (same as input tmax,
just output for comparison), tmaxcurvature is the curvature at tmax, tmaxradius is the radius of
the osculating circle at time tmax, maxcurvaturetime is the time of maximum curvature,
maxcurvature is the maximum curvature, minradius is the minimum radius of the osculating
circle, curvatureplot is a plot of the curvature function.
> curvature:=proc(R, tmax,tland)
> local Rprime, R2prime, crsprd, kappa, tmaxcurvature, tmaxradius, maxcurvet, maxcurvature,
minradius, curvatureplot, ReturnVal;
> Rprime:=diff(R(t),t):
> R2prime:=diff(Rprime,t):
> crsprd:=CrossProduct(Rprime,R2prime):
> kappa:=sqrt(sum(('crsprd[i]')^2, 'i'=1..3))/(sqrt(sum(('Rprime[i]')^2, 'i'=1..3))^3):
> tmaxcurvature:=evalf(subs(t=tmax, kappa));
> tmaxradius:=1/evalf(subs(t=tmax, kappa));
> maxcurvet:=fsolve(diff(kappa,t), t=0..tland);
> maxcurvature:=evalf(subs(t=maxcurvet, kappa));
> minradius:=1/evalf(subs(t=maxcurvet, kappa));
> curvatureplot:=display(plot(kappa, t=0..tland, title="Curvature")):
> ReturnVal:=[tmax,tmaxcurvature, tmaxradius, maxcurvet, maxcurvature, minradius,
curvatureplot]:
> ReturnVal;
> end:
Stages Procedure
Stages provides the plots to consider when determining the stages of the rocket flight. The
recovery stage begins at time t=tmax. The end of the thrusting stage/beginning of the coasting
stage can be more subtle. This procedure does not determine the stages; it simply provides the
appropriate graphs for determining the stages. These graphs must be analyzed on a case-by-case
basis to determine the stages.
Input: R, where R=[X,Y,Z] is the spacecurve approximating the flightpath, tmax, the time when
maximum height was attained, and tland, the time when the rocket landed.
Output: A list of plots [Rprime[1], Rprime[2], Rprime[3], speed, R2prime[1], R2prime[2],
R2prime[3], normaccel], where Rprime[i] is the ith component of the velocity vector, speed is
the speed function (norm of the velocity vector), R2prime[i] is the ith component of the
acceleration vector, and normaccel is the norm of the acceleration.
> Stages:=proc(R, tmax, tland)
> local Rprime, speed, R2prime, normaccel, i, accel, ReturnVal;
> Rprime:=diff(R(t),t);
> R2prime:=diff(Rprime,t);
> ReturnVal:=[seq(display(plot(Rprime[i],t=0..tland, title="Rprime"||i)), i=1..3),
display(plot(norm(Rprime,2), t=0..tland,title=speed)),
seq(display(plot(R2prime[i],t=0..tland,title="R2prime"||i)), i=1..3),display(plot(norm(R2prime,2),
t=0..tland, title="norm of acceleration"))];
> ReturnVal;
> end:
Water Rockets in Flight
Page 46 of 60
2/13/16
WindGrav Procedure
WindGrav displays a graph comparing the vertical component of the acceleration vector to the
constant acceleration due to gravity.
Input: R, where R=[X,Y,Z] is the spacecurve approximating the flightpath, and tland, the time
when the rocket landed.
Output: a plot of the third component of the acceleration vector together with a horizontal line at
height -9.81 meters/second, the gravitational constant.
> WindGrav:=proc(R,tland)
> local Rprime, R2prime;
> Rprime:=diff(R(t),t):
> R2prime:=diff(Rprime,t):
> plot({R2prime[3], -9.81}, t=0..tland);
> end:
WindBlown Procedure
WindBlown compares the flight path of the rocket, reparameterized in its plane, with the standard
two-dimensional trajectory model.
Input: X, Y, Z, where R=[X,Y,Z] is the spacecurve approximating the flightpath; Times is the
list of times data was taken; Xvals, Yvals, Zvals are the data points; DistA is the distance from
the rocket launch site to the rocket landing site; L=[i,j] with i<j, is a list of which two data points
to use to estimate the parameters S (initial speed) and theta (launch angle) in the standard model.
Output: a list [parapath, standard, LandingDifference, compareplots], where parapath is the
reparameterized flight path; standard is the standard model; and compareplots is both models
graphed on the same set of axes.
> WindBlown:=proc(X,Y,Z, Times,Xvals, Yvals, Zvals, DistA, L)
> local S, theta, parapath, standard,StandardLaunchingTime,
StandardLandingTime,StandardLaunchingDist, StandardLandingDist, LandingDifference, i, j, A, B,
compareplots, ReturnVal;
> i:=L[1]; j:=L[2];
> parapath:=<sqrt((X(0)-X(t))^2+(Y(0)-Y(t))^2),Z(t)>:
> S:=sqrt((Xvals[j]-Xvals[i])^2+(Yvals[j]-Yvals[i])^2+(Zvals[j]-Zvals[i])^2)/(Times[j]-Times[i]);
>
theta:=arccos(sqrt((Xvals[j]-Xvals[i])^2+(Yvals[j]-Yvals[i])^2)/sqrt((Xvals[j]-Xvals[i])^2+(Yvals[j]Yvals[i])^2+(Zvals[j]-Zvals[i])^2));
> standard:=<S*cos(theta)*(t-Times[i])+Xvals[i], S*sin(theta)*(t-Times[i])-(9.81*(tTimes[i])^2)/2+Zvals[i]>;
We also need to find the correct values of t so that the standard curve remains positive. This
means finding the two times when the second coordinate function is zero, and letting t range
between those two values.
> StandardLaunchingTime:=min(fsolve (standard[2]=0,t));
> StandardLandingTime:=max(fsolve(standard[2]=0,t));
> A:=plot([ parapath[1], parapath[2], t=Times[1]..Times[nops(Times)]],color=blue):
> B:=plot([standard[1], standard[2], t=StandardLaunchingTime..StandardLandingTime], color=red):
> compareplots:=display([A,B]):
We examine the sum of the difference in the launching positions and landing positions, which
will give us a sense of how far "off course" the rocket was blown
> StandardLaunchingDist:=S*cos(theta)*(StandardLaunchingTime-Times[i]);
> StandardLandingDist:=S*cos(theta)*(StandardLandingTime-Times[i]);
> LandingDifference:=abs(DistA-StandardLandingDist) +abs(StandardLaunchingDist);
> ReturnVal:=[evalf(parapath,3), evalf(standard,3),LandingDifference, compareplots]:
> end:
Water Rockets in Flight
Page 47 of 60
2/13/16
Generating the 3D Output
Table 1: Observed Data
Enter the frames corresponding to the data points, the perceived inflight heights V[i], and
horizontal distances H[i] :
> F:=[0,7,11,15,50,55,59,63,71];
> V := [5.4864, 9.4488, 12.8016, 13.1064, 10.0584, 7.3152, 4.5720];
> H := [.6096, 1.2192, 1.8288, 8.5344, 9.1440, 9.7536, 10.3632];
> CamHeight := 1.5240;BuildingDistance := 24.8412;DistA := 4.5212;DistB := 4.1148; DistC:=7.3152;
> evalf([F,V,H, CamHeight, BuildingDistance, DistA, DistB,DistC],3);
Tables 2 and 3: In-Flight Data Points
> S:=FlightPoints(F, V, H,30.0, CamHeight, BuildingDistance, DistA, DistB, DistC):
Generate the values for Table 2:
> evalf([S[6], S[7], S[8]], 3);
> Times:=S[1]; Xvals:=S[2]; Yvals:=S[3]; Zvals:=S[4];
Generate the values for Table 3:
> evalf([Times, Xvals, Yvals, Zvals],3);
Plot the data points:
> S[5];
Polynomial Interpolation to Fit a 6th Degree Curve to the Data Points
Choose which 6 data points to use. We tried several sets, and settled on omitting the 3rd and 6th
data points.
> DataList:=[1,2,4,5,7,8,9];
> P:=PolyFit(Times, Xvals, Yvals, Zvals, DataList):
Here we define the component functions for the space curve R(t) modeling the rocket flight path.
The unapply command converts the expression output of the procedure into a function.
> X:=unapply(P[1],t);
> Y:=unapply(P[2],t);
> Z:=unapply(P[3],t);
> R:=t-><X(t), Y(t), Z(t)>;
Here is the space curve to three significant digits.
> evalf(R(t),3);
> for i from 4 to 7 do display(P[i]); od;
Velocity and Acceleration
> Q:=TimeDerivs(R):
> velocity:=evalf(Q[1],3);
> acceleration:=evalf(Q[2], 3);
1. How High?
> HowHigh(Z);
> tmax:=HowHigh(Z)[1];
> height:=HowHigh(Z)[2];
Time and maximum height to three significant digits:
> evalf([tmax, height],3);
2. How Fast?
> H:=HowFast(R,tmax,Times[nops(Times)]):
Velocity vectors at 0, tmax, tland:
Water Rockets in Flight
Page 48 of 60
2/13/16
> evalf(H[1], 3);
Accelerations vectors at 0, tmax, tland:
> evalf(H[2],3);
Speed at 0, tmax, tland:
> evalf(H[3],3);
Speed in miles/hour at 0, tmax, tland"
> evalf(H[4], 3);
Norm of acceleration at 0, tmax, tland:
> evalf(H[5], 3);
3. How Far?
> HowFar(R, tmax, Times[nops(Times)]);
Here are the total arclength, ascending arclength, and descending arclength, respectively:
> evalf(%,3);
4. What Was the Curvature?
> C:=curvature(R,tmax, Times[nops(Times)]):
Here are, in order, tmax, the curvature at time tmax, the radius of the osculating circle at time
tmax, the time when the maximum curvature occurred, the maximum curvature, the minimum
radius of an osculating circle:
> seq(evalf(C[i],3), i=1..6);
Here is a plot of the curvature function:
> C[7];
5. When did the Stages Occur?
> S:=Stages(R, tmax, Times[nops(Times)]):
Here are the graphs we considered when determining the stages of the rocket flight:
> for i from 1 to 8 do S[i]; od;
In our analysis, we needed to find the time of the first relative minimum in the norm of the
acceleration:
> fsolve(diff(sqrt(DotProduct(acceleration, acceleration)),t)=0,t=0..1);
> evalf(%,3);
6. Wind vs Gravity?
A plot of the vertical component of the acceleration vector and the horizontal line at -9.81
meters/second^2:
> WindGrav(R, Times[nops(Times)]);
7. How Far Off Course?
We first used the first two data points to estimate the parameters for the standard model, so in put
the list [1,2].
> W:=WindBlown(X,Y,Z,Times, Xvals, Yvals, Zvals,DistA,[1,2]):
The reparameterized flight path:
> W[1];
The standard model:
> W[2];
The difference in the launch distances and landing distances:
> W[3];
A plot comparing the two curves:
> W[4];
We then used the second two data points to estimate the parameters for the standard model, so
input the list [2,3].
Water Rockets in Flight
Page 49 of 60
2/13/16
> W:=WindBlown(X,Y,Z,Times, Xvals, Yvals, Zvals,DistA,[2,3]):
The reparameterized flight path:
> W[1];
The standard model:
> W[2];
The difference in the launch distances and landing distances:
> W[3];
A plot comparing the two curves:
> W[4];
Least Squares Fit Version
LeastSquaresFit Procedure
LeastSquaresFit uses the least squares method for fitting an nth degree polynomial to a set of data
points. The output from this procedure may be used exactly as the output from the PolyFit
proceedure.
Input: Times, Xvals, Yvals, Zvals are the times, x-coordinates, y-coordinates, z-coordinates,
respectively, of a list of data points; N is the degree of the polynomial for fitting the data.
OutPut: A list [Xcurve, Ycurve, Zcurve, Xplot, Yplot, Zplot, WholePlot], where Xcurve,
Ycurve, Zcurve are the coordinate functions of the curve approximating the rocket flight path
using least squares fits; Xplot, Yplot, Zplot are 2D plot structures of Xcurve, Ycurve, Zcurve,
respectively, with respect to time, together with the chosen data points; and WholePlot is a 3D
plotstructure of the spacecurve approximating the rocket flight path, again displayed together
with the chosen data points.
> LeastSquaresFit:=proc(Times, Xvals, Yvals, Zvals, N)
> local Xcurve, Ycurve, Zcurve, Xplot, Yplot, Zplot, WholePlot, ReturnVal; Digits:=10;
Find least square fits for the X, Y, and Z coordinate functions. Here we fit to polynomials with no
constant terms for the X and Z coordinate functions to reflect the initial values of 0 for both those
functions (while Y(0) is non-zero).
> Xcurve:=unapply(LeastSquares(Times, Xvals, t, curve=sum('p[j]*t^j', 'j'=1..N)),t);
> Ycurve:=unapply(LeastSquares(Times, Yvals, t, curve=sum('p[j]*t^j', 'j'=0..N)),t);
> Zcurve:=unapply(LeastSquares(Times, Zvals, t, curve=sum('p[j]*t^j', 'j'=1..N)),t);
Plot each of the coordinate functions with respect to time, together with the chosen data points.
> Xplot:=display([plot(Xcurve(t), t=Times[1]..Times[nops(Times)],labels=[t,X]),plot([seq([Times[i],
Xvals[i]], i=1..nops(Times))],style=point, symbol=diamond)]):
> Yplot:=display([plot(Ycurve(t), t=Times[1]..Times[nops(Times)],labels=[t,X]),plot([seq([Times[i],
Yvals[i]], i=1..nops(Times))],style=point, symbol=diamond)]):
> Zplot:=display([plot(Zcurve(t), t=Times[1]..Times[nops(Times)],labels=[t,X]),plot([seq([Times[i],
Zvals[i]], i=1..nops(Times))],style=point, symbol=diamond)]):
Now plot the space curve with the chosen data points.
> WholePlot:=display([spacecurve([Xcurve(t),Ycurve(t),Zcurve(t)],
t=Times[1]..Times[nops(Times)]),pointplot3d([seq([Xvals[i], Yvals[i],Zvals[i]],
i=1..nops(Times))],style=point, symbol=diamond)]):
> ReturnVal:=[Xcurve(t),Ycurve(t),Zcurve(t),Xplot,Yplot,Zplot,WholePlot];
> end:
LeastSquaresFit Output
The components of the space curve, found using least squares fit, and also the maximum height
for comparison to the polynomial interpolation version.
> P:=LeastSquaresFit(Times, Xvals, Yvals, Zvals, 6):
> X:=unapply(P[1],t);
Water Rockets in Flight
Page 50 of 60
2/13/16
> Y:=unapply(P[2],t);
> Z:=unapply(P[3],t);
> R:=t-><X(t), Y(t), Z(t)>;
Here is the space curve to three significant digits.
> evalf(R(t),3);
> HowHigh(Z);
> evalf(%,3);
Water Rockets in Flight: 2D Modeling and Analysis
Load Packages
> restart;
> with(plots):with(linalg):with(VectorCalculus):with(stats): with(CurveFitting):
HeightPoints Procedure
HeightPoints estimates the height of the rocket at various times from the video frame
information.
Input: Frames is a list of the frames from which the stills are taken; FramesPerSecond is the
number of frames taken per second by the camcorder; CamHeight is the height of the camcorder
above the ground; PerceivedHeights and HorzDist are the corresponding list of heights and
horizontal distances measured from the blueprint; BuildingDistance is the perpendicular distance
from the camcorder to the building; DistA is the distance from the rocket launch site to the
rocket landing site; DistB is the distance from the camcorder to the rocket landing site; DistC is
the distance from the camcorder to the rocket launch site (on the line from the camcorder to the
building).
Output: A list of lists [Times, Zvals, PointPlot, As, ns, ms], where Times and Zvals are the times
and heights, respectively; PointPlot is a plot structure of the estimated heights during the rocket
flight; and As, ns, ms are the intermediate values of Table 2.
> HeightPoints:=proc(Frames, PerceivedHeights, HorzDists, FramesPerSecond, CamHeight,
BuildingDistance, DistA, DistB, DistC)
> local angle, A,B, H,i,n,m, x,y, z,r, As, ns, ms, PointsPlot,Times, Zvals, ReturnVal:
First convert the frames into seconds:
> Times:=[seq(Frames[i]/FramesPerSecond, i=1..nops(Frames))];
The following function takes the lengths a, b, c of a generic triangle and, using the law of cosines,
returns the angle (in radians) opposite side a:
> angle:=(a,b,c)->evalf(arccos((b^2+c^2-a^2)/(2*b*c))):
Use this to find A, the angle at the camcorder between the rocket launch and landing sites
> A:=angle(DistA, DistB, DistC);
Since the line from the camcorder through the launch site forms a right angle with the building,
this angle can be used to find the horizontal distance along the building at landing. At launch the
horizontal distance is 0.
> H:=[0, seq(HorzDists[i], i=1..nops(HorzDists)), (BuildingDistance)*tan(A)];
Using the horizontal distances above, find the ground angles between the launch site and the
rocket position at each time:
> for i from 1 to nops(H) do A[i]:=evalf(arctan(H[i]/(BuildingDistance))); od;
Also use A and the fact that the line from the camcorder through the launch site to the building is
perpendicular to the building to find the hypotenuses n[i]:
> for i from 1 to nops(H) do n[i]:=(BuildingDistance)/cos(A[i]); od;
Use the law of cosines to find B:
> B:=angle(DistB, DistA, DistC);
Water Rockets in Flight
Page 51 of 60
2/13/16
Now use the proportions from the law of sines to find the lengths of m[i]:
> m[1]:=DistC; for i from 2 to nops(H) do m[i]:= evalf(sin(B)*DistC/sin(Pi-(B+A[i]))); od;
Similar triangles can be used to determine the actual rocket heights from the perceived heights
against the building.
There aren't perceived heights for the launch and landing, so assign these values:
> z[1]:=0; z[nops(H)]:=0;
Now get the rest of the actual heights using similar triangles, and remembering to subtract the
camcorder height from the r[i]'s, and then adding it back in to get the actual rocket heights, z[i]:
> for i from 1 to nops(PerceivedHeights) do r[i+1]:=evalf((PerceivedHeights[i]CamHeight)*m[i+1]/n[i+1]); od;
> for i from 2 to nops(H)-1 do z[i]:=r[i]+CamHeight od;
> Zvals:=[seq(z[i], i=1..nops(H))];
List the intermediate values for Table 2:
> As:=[seq(A[i], i=1..nops(H))];
> ns:=[seq(n[i], i=1..nops(H))];
> ms:=[seq(m[i], i=1..nops(H))];
Plot a graph of this data:
> PointsPlot:=display(pointplot({seq([Times[i],z[i]], i=1..nops(H))},style=point, symbol=diamond,
axes=normal,labels=[time,height])):
> ReturnVal:=[Times, Zvals, PointsPlot, As, ns, ms];
> ReturnVal;
> end:
PolyFitOne Procedure
PolyFitOne uses interpolation to fit n+1 selected data points to a nth degree polynomial.
Input: Times, Zvals are the times and heights, respectively, of a list of data points. DataList is
a list of which n of those data points to use to fit the curve (for example, for a 6th degree
polynomial, choose 7 data points from a list of at 7 or more data points).
OutPut: A list [Zcurve, Zplot], where Zcurve is the curve approximating the rocket height using
polynomial interpolations; and Zplot is a 2D plot structures of Zcurve, with respect to time,
together with the chosen data points.
> PolyFitOne:=proc(Times, Zvals, DataList)
> local Zcurve, Zplot, ReturnVal;
Find a polynomial interpolation for the height function Zcurve. The 'unapply' command is
necessary to change the output of PolynomialInterpolation into a function.
>Zcurve:=unapply(PolynomialInterpolation([seq(Times[DataList[i]], i=1..nops(DataList))],
[seq(Zvals[DataList[i]], i=1..nops(DataList))], t),t):
Now plot the height function with respect to time, together with the chosen data points:
> Zplot:=display([plot(Zcurve(t), t=Times[1]..Times[nops(Times)],labels=[t,X]),plot([seq([Times[i],
Zvals[i]], i=1..nops(Times))],style=point, symbol=diamond)]):
> ReturnVal:=[Zcurve(t),Zplot];
> end:
HowHighOne Procedure
HowHighOne determines how high the rocket went.
Input: The height function Z.
Output: A list [tmax, Zmax], where tmax is the time when the maximum height occurs, and
Zmax is the maximum height attained.
> HowHighOne:=proc(Z)
> local tmax, Zmax, ReturnVal;
> tmax:=fsolve(D(Z));
Water Rockets in Flight
Page 52 of 60
2/13/16
> Zmax:=Z(tmax);
> ReturnVal:=[tmax, Zmax];
> ReturnVal;
> end:
HowFastOne Procedure
HowFastOne finds the velocity, takes the absolute value to find the speed converted to miles per
hour, and finds the acceleration, at each of the launch, tmax, and landing times.
Input: Z, the height function; tmax, the time when maximum height was attained; and tland, the
time when the rocket landed.
Output: A list of lists [[V[1], V[2], V[3]], [A[1], A[2],A[3]], [mphS[1], mphS[2], mphS[3]]],
where V[i], A[i], mphS[i], and are the velocity, acceleration, and speed in miles/hour,
respectively, and evaluated at 0 when i = 1, at tmax when i = 2, and tland when i = 3.
> HowFastOne:=proc(Z, tmax, tland)
> local Zprime,V, Z2prime, A, i,mphspeed, accel, ReturnVal;
Find the velocity, and then evaluate it at t =0, tmax, and tland., and take the absolute values and
convert to miles per hour for the speed:
> Zprime:=diff(Z(t),t);
> V[1]:=subs(t=0, Zprime);
> V[2]:=subs(t=tmax, Zprime);
> V[3]:=subs(t=tland, Zprime);
> for i from 1 to 3 do mphspeed[i]:=abs(V[i])/0.447; od;
Find the accelerations, and again evaluate it at t =0, tmax, and tland:
> Z2prime:=diff(Zprime,t);
> A[1]:=subs(t=0, Z2prime);
> A[2]:=subs(t=tmax, Z2prime);
> A[3]:=subs(t=tland, Z2prime);
> ReturnVal:=[[seq(V[i], i=1..3)], [seq(A[i], i=1..3)],[seq(mphspeed[i], i=1..3)]];
> end:
StagesOne procedure
StagesOne provides the plots to consider when determining the stages of the rocket flight. The
recovery stage begins at time t=tmax. The end of the the thrusting stage/beginning of the
coasting stage can be more subtle. This procedure does not determine the stages; it simply
provides the appropriate graphs for determining the stages. These graphs must be analyzed on a
case-by-case basis to determine the stages.
Input: Z, the height curve, and tland, the time when the rocket landed.
Output: A plot of the velocity (dashed line) and acceleration (solid line) on the same set of axes.
> StagesOne:=proc(Z, tland)
> local Zprime, Z2prime, ZprimePlot, Z2primePlot, ReturnVal;
Find the velocity:
> Zprime:=diff(Z(t),t);
Find the acceleration:
> Z2prime:=diff(Zprime,t);
> ZprimePlot:=plot(Zprime, t=0..tland, linestyle=DASH, color=black):
> Z2primePlot:=plot(Z2prime, t=0..tland, linestyle=SOLID,color=black):
> ReturnVal:=display({ZprimePlot, Z2primePlot}, title="velocity (dashed) \n acceleration (solid)");
> end:
WindGravOne Procedure
Water Rockets in Flight
Page 53 of 60
2/13/16
WindGravOne displays a graph comparing the acceleration to the constant acceleration due to
gravity.
Input: Z, the height curve, and tland, the time when the rocket landed.
Output: A plot of the acceleration curve together with a horizontal line at height -9.81, the
gravitational constant.
> WindGravOne:=proc(Z,tland)
> local Zprime, Z2prime;
> Zprime:=diff(Z(t),t):
> Z2prime:=diff(Zprime,t):
> plot({Z2prime, -9.81}, t=0..tland);
> end:
WindBlownOneProcedure
WindBlownOne compares the height curve of the rocket with the standard projectile model.
Input: Z, the height curve; Times, the list of times data was taken; Zvals, the original data
points; L=[i,j] with i<j, a list of which two data points to use to estimate the initial velocity in the
standard model; and tland, the rocket landing time.
Output: A list [standard, AirTimeDifference, compareplots], where standard is the standard
model; AirTimeDifference is the difference in time that the rocket was in the air; and
compareplots is both models graphed on the same set of axes, with the height curve a solid line
and the standard curve a dashed line.
> WindBlownOne:=proc(Z, Times, Zvals, L, tland)
> local InitVelocity, standard, StandardLaunchingTime, StandardLandingTime, AirTimeDifference, i,
j, A, B, compareplots, ReturnVal;
> i:=L[1]; j:=L[2];
> InitVelocity:=(Zvals[j]-Zvals[i])/(Times[j]-Times[i]);
> standard:=InitVelocity*(t-Times[i])-(9.81/2)*(t-Times[i])^2 +Zvals[i];
We also need to find the correct values of t so that the standard curve remains positive. This
means finding the two times when the standard function is zero, and letting t range between those
two values.
> StandardLaunchingTime:=min(fsolve (standard=0,t));
> StandardLandingTime:=max(fsolve(standard=0,t));
> A:=plot(Z, 0..tland, linestyle=SOLID, color=black):
> B:=plot(standard, t=StandardLaunchingTime..StandardLandingTime,linestyle=DASH, color=black):
> compareplots:=display([A,B], title="Height curve - Solid line \n Standard curve - Dashed line"):
We consider the difference in the air time, which will give us a sense of how the wind may have
held the rocket in the air long than might be expected, or driven it into the ground earlier than
might be expected.
> AirTimeDifference:=abs(tland - (StandardLandingTime-StandardLaunchingTime));
> ReturnVal:=[evalf(standard,3),AirTimeDifference, compareplots]:
> end:
Generating 2D Output
Table 1: Observed Data
Enter the frames corresponding to the data points, the perceived inflight heights V[i], and
horizontal distances H[i] :
> F:=[0,7,11,15,50,55,59,63,71];
> V := [5.4864, 9.4488, 12.8016, 13.1064, 10.0584, 7.3152, 4.5720];
> H := [.6096, 1.2192, 1.8288, 8.5344, 9.1440, 9.7536, 10.3632];
> CamHeight := 1.5240;BuildingDistance := 24.8412;DistA := 4.5212;DistB := 4.1148; DistC:=7.3152;
Water Rockets in Flight
Page 54 of 60
2/13/16
> evalf([F,V,H, CamHeight, BuildingDistance, DistA, DistB,DistC],3);
Table 2 and Heights
> S:=HeightPoints(F, V, H,30.0, CamHeight, BuildingDistance, DistA, DistB, DistC):
Generate the values for Table 2:
> evalf([S[4], S[5], S[6]], 3);
Generate the times and corresponding heights:
> Times:=S[1]; Zvals:=S[2];
Evaluate to 3 significant digits:
> evalf([Times, Zvals],3);
Plot the data points:
> S[3];
Polynomial Interpolation to Fit a 6th Degree Curve to the Data Points
Choose which 6 data points to use. We tried several sets, and settled on omitting the 3rd and 6th
data points.
> DataList:=[1,2,4,5,7,8,9];
> P:=PolyFitOne(Times, Zvals, DataList):
Here we define the height function Z(t) modeling the rocket flight path. The unapply command
converts the expression output of the procedure into a function.
> Z:=unapply(P[1],t);
Here is the height function to three significant digits.
> evalf(Z(t),3);
> P[2];
1. How High?
> HowHighOne(Z);
> tmax:=HowHighOne(Z)[1];
> height:=HowHighOne(Z)[2];
Time and maximum height to three significant digits:
> evalf([tmax, height],3);
2. How Fast?
> H:=HowFastOne(Z,tmax,Times[nops(Times)]):
Velocity at 0, tmax, tland:
> evalf(H[1], 3);
Accelerations at 0, tmax, tland:
> evalf(H[2],3);
Speed in miles/hour at 0, tmax, tland:
> evalf(H[3],3);
3. When did the Stages Occur?
Here are the graphs we considered when determining the stages of the rocket flight:
> StagesOne(Z, Times[nops(Times)]);
In our analysis, we needed to find the time of the first relative maximum of the acceleration
curve:
> fsolve(diff(Z(t),t$3)=0,t=0..0.75);
> evalf(%,3);
4. Wind vs Gravity?
A plot of the acceleration curve and the horizontal line at -9.81 meters/second^2:
> WindGravOne(Z, Times[nops(Times)]);
Water Rockets in Flight
Page 55 of 60
2/13/16
5. How Far Off Course?
We first used the first two data points to estimate the parameters for the standard model, so in put
the list [1,2].
> W:=WindBlownOne(Z,Times,Zvals,[1,2], Times[nops(Times)]):
The standard model:
> W[1];
The airtime difference:
> evalf(W[2],3);
Comparing the plots:
> W[3];
We then tried the second two data points to estimate the parameters for the standard model, so in
put the list [2,3].
> W:=WindBlownOne(Z,Times,Zvals,[2,3], Times[nops(Times)]):
The standard model:
> W[1];
The airtime difference:
> evalf(W[2],3);
Comparing the plots:
> W[3];
7.3
Curve Fitting
This section contains details on creating interpolated and least squares fit models.
The information on least squares modeling is based on Sections 6.4 and 9.3 of Howard
Anton’s Elementary Linear Algebra (7th edition, New York: John Wiley & Sons, 1994).
Polynomial interpolation gives an exact fit of a polynomial curve to the data
points. However, it requires that there be n+1 data points to fit a polynomial of degree n.
On the other hand, the least-squares method can be used to fit any number n of data
points to a polynomial of degree m, provided that n > m. The resulting polynomial may
not exactly fit all of the data points, but will be a “best” estimate since it essentially
minimizes the square of the differences between the actual data points and the nearest
points on the approximating curve.
Polynomial Interpolation
When creating models to describe experimental data, a common objective is to
find a mathematical function y = f(t) relating the input and output variables t and y by
“fitting” a curve to the distinct data points obtained from the experiment. For our
purposes in this module we will restrict such fitting functions to polynomials in t, but it is
worth noting that there are many other possible choices for this estimation, including
trigonometric, exponential, and logarithmic functions.
Suppose that we wish to fit to the data points:
t
Water Rockets in Flight
0,
y0  ,  t1, y1  ,
,  t n , yn 
Page 56 of 60
(1)
2/13/16
to a polynomial of degree n (one less than the number of points) given by:
y  a0  a1t  a2t 2 
 ant n .
If we substitute the n  1 points into this polynomial, a linear system in n+1 equations
results which would look like:
y0  a0  a1t0  a2 t0 2 
 an t 0 n
y1  a0  a1t1  a2 t12 
 ant1n
yn  a0  a1tn  a2 tn 2 
 an t n n
(2)
In matrix form, this system looks like:
 1 t0  t0n 
 y0 
 a0 


y 
a 
1 t1  t1n 
1


y = M a, where y 
, M 
, a  1 .
 
 
 



 
 
n
 yn 
 an 
 1 tn  tn 
Since the data points in (1) are distinct and the system in (2) has the same number of
equations as unknowns, then there will be at least one solution to that system.
For example, a parabola interpolating the three points (0,2), (1,6), and (2,5) can be
found as follows:
a 0 
1 0 0
2
M = 1 1 1 , y  6  , and a  a1  . Then, M 1 =
a 2 
1 2 4
5 
0
 1 0
 1.5 2  0.5 .


 0.5  1
0.5
This yields the interpolated solution:
0
 1 0

a = M y =  1.5 2  0.5
 0.5  1
0.5
1
 2   2
6    6.5 .
  

5   2.5
Therefore, the parabola interpolating these three points is y  2  6.5t  2.5t 2 .
For large systems it is helpful to use a CAS such as Maple or a graphing
calculator to solve the linear system. See Section 7.2 for our Maple code. For instance,
we used the Maple8 command PolynomialInterpolation from the “CurveFitting” package
to obtain 6th degree interpolating polynomials for each component of our model.
Water Rockets in Flight
Page 57 of 60
2/13/16
The Least Squares Method
Suppose we have obtained these n data points from our experiment:
t
0,
y0  ,  t1, y1  ,
,  tn 1, yn 1 
(3)
We wish to fit a polynomial of degree m, y  a0  a1t  a2t 2 
listed in (3).
 amt m , to the data points
A few results from linear algebra are now needed. If we substitute these n points
into the polynomial, a linear system in n equations results:
y0  a0  a1t0  a2 t0 2 
 am t 0 m
y1  a0  a1t1  a2 t12 
 amt1m
yn 1  a0  a1tn 1  a2 tn 12 
(4)
 amtn 1m
In matrix form, this system looks like:
1
 y0 

 y 
1
1 

y = M a, where y 
, M 
 





 yn 1 
 1
t0

t1


tn 1

 a0 
t0m 
a 
m 
t1 
, a  1  .


 


m 
tn 1 
 an 1 
Since it will most likely be impossible to find a vector a that satisfies this system (4)
exactly (i.e. finding a polynomial passing through all of the points in (3)), then we
minimize the vertical error in the fit given by y  M a . We represent the error in the
approximation using a by e = y – Ma, and denote the n components of the error e by e0
2
through en1 . A least squares solution seeks to minimize e  e0 2  ...  en 12 . This
yields the “least squares” of the vertical distances representing the component-wise error
terms.
Specifically, using some results from linear algebra, it can be shown that the least
squares solution a * satisfies the equation:
M T  y  Ma *   0 .
Equivalently, it satisfies the “normal equations”:
M T Ma*  M T y .
If M T M is invertible (which is guaranteed when n > m and at least m  1 points in (3)
are distinct), then the unique least squares solution is given by:
Water Rockets in Flight
Page 58 of 60
2/13/16
a*   M T M  M T y .
1
For example, the least squares linear fit for the three points (0, 2), (1,6), and (2,5)
can be found as follows:
1 0 
2
a 
1 1 1
3 3


T
M = 1 1 , y  6  , and a*   0  . Then, M T = 
,
=
M
M
3 4 , and


 
0 1 2
a1 




1 2
5 
1
 4  3
 M T M  = 13  3 3 . This yields the least squares solution:


2
 4  3 1 1 1    2
. Therefore, the best linear fit
a  M M 
6 
 3
3 0 1 2    3

5 
to these three points according to the least squares method is y  2  3t .
*
T
1
1
M y=
3
T
See Section 7.2 for our Maple code. For instance, we used the Maple8 command
LeastSquares from the “CurveFitting” package to obtain 6th degree least squares
polynomials for each component of our model.
7.4
Resources
Listed below are some useful websites concerning model rocketry and some of
the mathematics behind model rocket flights.
http://www.davescooltoys.com/
“Dave’s Cool Toys” is one example of an Internet site at which water-powered
rockets can be purchased inexpensively. The “Outside Toy” link leads to
ordering information about water-powered rockets as well as higher flying
“meteor rockets” (powered by a baking soda and vinegar solution) and even
higher flying “air burst rocket systems” (powered by compressed air).
http://www.esteseducator.com/
This site is maintained by Estes Industries, which for over 40 years has been
“…the world’s leader in the manufacturing of safe, reliable, and high quality
rocket products” and currently offers a variety of “new and innovative educational
products”. This is a comprehensive source of information about how model
rocketry can be integrated into the classroom, and offers links to a number of
different publications in PDF format on model rocketry (ranging from order forms
to teachers guides to elementary mathematics information on rocket flights).
Water Rockets in Flight
Page 59 of 60
2/13/16
http://ojps.aip.org/journals/doc/AJPIAS-ft/vol_68/iss_3/223_1.html
The paper by G.A. Finney is available for subscribers of the American Journal of
Physics. The paper looks at the effects of air resistance and thrust on the onedimensional path of a water-propelled rocket launched vertically.
http://www.geocities.com/CapeCanaveral/Hangar/5421/anatomy.html
This website is maintained by the Future Astronauts of America Foundation, “a
multi-faceted program designed to encourage young students and adults to
become involved with the exciting world of space science and its applications.”
This site provides information about model rocket components. It also offers
useful descriptions of the flight sequence of a model rocket, including its
thrusting, coasting, and recovery stages.
http://hyperphysics.phy-astr.gsu.edu/hbase/hframe.html
This HyperPhysics website is “an exploration environment for concepts in physics
which employs concept maps and other linking strategies to facilitate smooth
navigation.” It contains useful information on rocket propulsion. The site was
developed and is maintained by C. Rod Nave from the Department of Physics and
Astronomy at Georgia Southern University.
http://www.mohaveinstrument.com/
This site contains information about commercially available electronic
theodolites.
http://www.grc.nasa.gov/WWW/K-12/airplane/index.html
Coordinated by the NASA Glenn Research Center, this website is part of the
Glenn Learning Technologies Project and offers a “Beginner’s Guide to
Aerodynamics” and a “Beginner’s Guide to Model Rockets”. The model rocket
information includes some of the basic mathematics and physics concepts that
affect model rocket design and flight. The site is intended to offer K-12 teachers,
students, and others with basic background information on aerodynamics and
propulsion.
http://epubs.siam.org/sam-bin/dbq/article/34822
Available at this site is J.M. Prusa’s excellent physics paper entitled
“Hydrodynamics of a water rocket” published in SIAM Review (42, No. 4, 719726, 2000). This paper details a general model for a water rocket flight, and offers
advanced analysis of the trajectory of a water rocket flight. The paper is suitable
for students with applied mathematics or engineering interests at the advanced
undergraduate level or beginning graduate level (for example, in a fluid dynamics
course). It also offers a good application for an advanced graduate-level course in
computational methods.
Water Rockets in Flight
Page 60 of 60
2/13/16
Download