- In case gathering the data isn't worth the trouble, here's how we generated our data.

The data set given in the problem was created to ensure an interesting mathematical problem. We made every attempt to make the data appear real.

We try to generate an interesting curve for velocity so that our average velocity is less than 20 miles/hour for the bicyclist. In addition we require that the cyclist go exactly one-half of a mile (2640 ft) in 2.5 min or 150 seconds.

Input := 

vtrial[t_] = b(t^3 Cos[ Pi/2 (t)/(60 2.5)] + 
				100000 Sin[ 3 Pi t/(2.5 60)]);
Input := 

strial[t_] =  Integrate[vtrial[T], {T,0, t}];

Below, we prescribe that at time t = 2.5*60 = 150 sec the bicyclist must be at 2640 feet (one-half mile) to scale our trial velocity function.

Input := 

sol = Solve[strial[2.5 60]==5280/2,b]
Output =

{{b -> 0.0000648867}}

Hence, by substituting the value of b (b = .000065) which puts us at 2640 ft at time 150 sec, we now have a reasonable position (s(t)) and velocity (v(t)) function with which to work.

Input := 

v[t_] = .000065 (t^3 Cos[ Pi/2 (t)/(60 2.5)] + 
			100000 Sin[ 3 Pi t/(2.5 60)]);
Input := 

s[t_] = Integrate[v[T], {T,0, t}];

We note the average feet in ft/sec for covering the one-half mile course in an average speed of 20 mi/hr ( a reasonable average speed) is 29.33 ft/sec.

Input := 

avespeed = 20 mile/hour 5280 ft/mile /(3600 sec/hour)*
				(sec/ft) //N 
Output =

29.3333

The average speed for our velocity function we have constructed is 17.6 ft/sec which is very reasonable when compared to the 20 mi/hr average speed of 29.33 ft/sec.

Input := 

AveSpeed = Integrate[v[t],{t,0, 2.5 60}]/(2.5 60)//N
Output =

17.6307

And here we finally construct the position function.

Input := 

s[t_] = Integrate[v[T],{T,0, t}];

We plot our velocity and our position functions.

Input := 

Plot[v[t], {t, 0, 2.5 60},
 AxesLabel -> {"t [sec]", "velocity [ft/sec]"}]
Output =

-Graphics-
Input := 

Plot[s[t],{t,0,2.5 60},
 AxesLabel -> {"t [sec]", "distance [ft]"}]
Output =

-Graphics-

And here we finally construct the position data - in a set called data - from which we shall take our data. We construct 25 data points equally spaced in time.

Input := 

data = Table[{i,Floor[s[i]]},{i,0, 2.5 60,6}]//N;
Input := 

dataTable = 
	TableForm[Table[{i,Floor[s[i]]},{i,0, 2.5 60,6}]//N,
	TableHeadings->{None,{"t - sec", "s - ft"}}]
Output =

   t - sec   s - ft
   0         0

   6.        7.

   12.       28.

   18.       61.

   24.       102.

   30.       148.

   36.       195.

   42.       241.

   48.       285.

   54.       327.

   60.       370.

   66.       419.

   72.       479.

   78.       557.

   84.       658.

   90.       787.

   96.       947.

   102.      1137.

   108.      1353.

   114.      1590.

   120.      1835.

   126.      2075.

   132.      2295.

   138.      2476.

   144.      2599.

   150.      2644.