3.016 Laboratory 5 Solutions

1. Read in the data and plot the time (y-axis) versus the date (x-axis).

First I need to get the data and read it into Mathematica. The easiest way to do this delimited, I add "TSV" as an argument to Import[] in order to tell it that the values i data = Import "http: pruffle.mit.edu 3.016−2007 Laboratories OneHundredMetersRecords.dat", "TSV" @ êê ê ê ê D 2

10.6, Don Lippincott, July 6, 1912 , 10.6, , September 16, 1920 , 10.4, Charlie Paddock, April 23, 1921 , 10.4, , August 8, 1929 , 10.4, Eddie Tolan, August 25, 1929 , 10.3, Percy Williams, August 9, 1930 , 8810.3, Arthur Jonath, July 5, 1932 ,< 10.3,8 Eddie Tolan, August 1, 1932 , < 810.3, Ralph Metcalfe, August 1, 1932 <, 810.3, Ralph Metcalfe, August 12, 1933< , 810.3, Eulace Peacock, August 6, 1934< 8, 10.3, Chris Berger, August 26, 1934< , 810.3, Ralph Metcalfe, September 15,< 8 1934 , < 810.3, Ralph Metcalfe, September 23, 1934< 8 , < 810.3, Takanori Yoshioka, June 15, 1935< 8, < 810.2, Jesse Owens, June 20, 1936 , 10.2,< Harold Davis, June 6, 1941 , 810.2, Lloyd LaBeach, May 15, 1948 , 10.2,< Barney Ewell, July 9, 1948 , 810.2, Emmanuel McDonald Bailey, August< 25, 1951 , 810.2, Heinz Futterer, October 31,< 19548 , < 810.2, Bobby Joe Morrow, May 19, 1956< 8 , 10.2, Ira Murchison, June 1, 1956< , 810.2, Bobby Joe Morrow, June 22, 1956 , 10.2, Ira< Murchison, June 29, 1956 , 810.2, Bobby Joe Morrow, June 29, 1956 <, 10.1, Willie Williams, August 3, 1956 , 810.1, , August 4, 1956 <, 810.1, Leamon King, October 20, 1956< , 810.1, Leamon King, October 27, 1956 ,< 10.1,8 Ray Norton, April 18, 1959 , < 810., Armin Hary, June 21, 1960 , 10.,< Harry8 Jerome, July 15, 1960 , < 810., Horacio Esteves, August 15, 1964< 8, 10., Bob Hayes, October 15, 1964 ,< 810., Jim Hines, May 27, 1967 , 10.,< Enrique8 Figuerola, June 17, 1967 ,< 810., Paul Nash, April 2, 1968 ,< 10.,8 Oliver Ford, May 31, 1968 , < 810., Charles Greene, June 20, 1968 , <10.,8 Roger Bambuck, June 20, 1968 ,< 89.9, Jim Hines, June 20, 1968< ,8 9.9, Ronnie Ray Smith, June 20, 1968<, 89.9, Charles Greene, June 20,< 19688 , 9.9, Steve Williams, June< 21, 1972 , 89.9, Eddie Hart, July 1, 1972 , 9.9,< 8 Reynaud Robinson, July 1, 1972 , < 89.9, Silvio Leonard, June 5, 1975< 8 , 9.9, Steve Williams, July 16, 1975< , 89.9, Steve Williams, August 22, 1975< 8, 9.9, Steve Williams, March 27, 1976< , 89.9, Harvey Glance, April 3, 1976< 8 , 9.9, Harvey Glance, May 1, 1976<, 89.9, Don Quarrie, May 22, 1976 , <9.95,8 Jim Hines, October 14, 1968 , < 89.93, Calvin Smith, July 3, 1983 , 9.93,< 8 Carl Lewis, August 30, 1987 , < 89.93, Carl Lewis, August 17, 1988<, 89.92, Carl Lewis, September 24,< 1988 , 89.9, Leroy Burrell, June 14, 1991< 8 , 9.86, Carl Lewis, August 25, 1991< , 89.85, Leroy Burrell, July 6, 1994< ,8 9.84, Donovan Bailey, July 27, 1996< , 89.79, Maurice Greene, June 16, 1999< 8, 9.77, Asafa Powell, June 14, 2005 <, 89.77, Justin Gatlin, May 12, 2006<, 89.77, Asafa Powell, June 11, 2006<, 89.77, Asafa Powell, August 18, 2006< 8, 9.74, Asafa Powell, September 9, 2007< 8 < 8 < Clearly,8 everything is saved in a two -dimensional list.< Unfortunately,8 the dates in the above list are not that< useful. I'll need8 to reformat them in order to perform the plot. < 8 <<

Create a new list that contains only the 1st and 3rd entries in each element of the a can be plotted using the DateListPlot[] function. plotdata = Table DateList data i,3 , data i,1 , i, 1, Length data ;

@8 @ @@ DDD @@ DD< 8 @ D

Now that I have the date data reformatted, I can plot it using DateListPlot[].

DateListPlot plotdata, AxesLabel → Date, Time , PlotLabel → "World Record Men's 100m Dash Times vs. Date" @ 8 < World Record Men's 100m Dash Times vs. Date D 10.6

10.4

10.2

10.0

9.8

1920 1940 1960 1980 2000

Here's the plot of the record 100m dash time vs. the date the record was set. Obviously, there is a downward trend that appears to be roughly linear. One might also argue that it could be modeled as exponential decay, but a linear function is easier to work with. 2. Fit the data to a function that you would consider an appropriate model for this data.

Looking at the above plot, it seems reasonable to fit this data with a line. However AbsoluteTime[] to convert the date list into the number of seconds that have elasp Then, I divide that value by the number of seconds in a day. This converts the date fitdata = Table AbsoluteTime plotdata i,1 60 ∗ 60 ∗ 24 , plotdata i,2 , i, 1, Length plotdata ; @8 @ @@ DDD ê H L @@ DD< line = Fit fitdata, 1, x , x 8 10.5848 − 0.0000226228@ D

3. Use your fitting model to make a plot up to the date 20,000,000.

I'll plot the data above that I used for finding the fit line on the same plot as the line represent the number of days since January 1, 1900. So, in order to plot up to the

20 000 000 − 1900 ∗ 365.25

7.30431 × 109 H L

Now that I know that the year 20,000,000 is 7.30431 × 109 days past 1900, I know t p1 = ListPlot fitdata ; p2 = Plot line, x, 0, 7.304306025 ∗ 109 ; Show p1, p2 @ D A 9 =E 9 9 9 9 9 9 9 @8

-50 000

-100 000

-150 000

Obviously, the line crosses zero long before the year 20,000,000, so let me try to plot this using bounds that will produce a more sensible plot. 3016_lab5_solutions.nb

p2 = Plot line, x, 0, 500 000 ; Show p1, p2 , AxesLabel → "Days After 1900", "100m Dash Record Time" , PlotLabel → @ 8

10

8

6

4

2

Days After 1900 100 000 200 000 300 000 400 000 500 000

The fit actually looks quite good. I can see that at about 450,000 days after 1900, it will take 0 seconds for men to run the 100m dash. Obviously, this is not physical, which says that the model is not accurate, but it is a humorous result. 4. Using your fit, make a prediction of the date when a sprinter will run the 100m dash at the speed of light.

If the sprinter did run the 100m dash at the speed of light, what would his time be?

100 time = 3.0 ∗ 108

3.33333 × 10−7

Now, I simply need to solve the equation of the fit line for the value of x at which it

date = Solve line time, x 1

x → 467 882. @ D@@ DD The above result tells me that the sprinter who sets the world record for the men's 100m dash 467882 days after 1900 will 8have run the race< at the speed of light. 6

In order to figure out the date when a sprinter will run the 100m dash at the speed I save the date as the number of days after 1900 to a variable called date.

date = x . date

467 882. ê

Now, I convert date to a date list.

date = DateList date ∗ 60 ∗ 60 ∗ 24

3181, 1, 7, 11, 42, 45.4625 @ H LD

8 Now, I convert date from< a date list to a date string.

DateString date, "MonthName", " ", "Day", ", ", "Year"

January 07, 3181 @ 8