Laboratory 5 Solutions
Total Page:16
File Type:pdf, Size:1020Kb
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, Jackson Scholz, September 16, 1920 , 10.4, Charlie Paddock, April 23, 1921 , 10.4, Eddie Tolan, 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 ,< 10.3,8 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, Ira Murchison, 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<D 3016_lab5_solutions.nb 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<D x @ 8 < D The above expression is for the line that fits the given data. I'll use it below to extrapolate the trends to future dates and make predictions. 4 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 <D1. μ 10 2. μ 10 3. μ 10 4. μ 10 5. μ 10 6. μ 10 7. μ 10 -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 <D "Linear Fit of Men's 100m Dash Record Times" @8 < 8 < Linear Fit of Men's 100m Dash Record Times 100m Dash Record Time D 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 <D The above conversion process tells me that the a sprinter will run the 100m dash at the speed of light on January 7th, 3181. That's more than 1150 years away, so I've got plenty of time to get in shape to break the record. Obviously the extrapolation is not valid this far in the future, not only because it predicts that a person will be able to run at the speed of light, but also because after January 7th, 3181, it predicts that people will run the 100m dash FASTER than the speed of light. So, it might be worth looking at other functions I could use to fit the data I have in order to produce a more plausible extrapolation. .