(*^ ::[ Information = "This is a Mathematica Notebook file. It contains ASCII text, and can be transferred by email, ftp, or other text-file transfer utility. It should be read or edited using a copy of Mathematica or MathReader. If you received this as email, use your mail application or copy/paste to save everything from the line containing (*^ down to the line containing ^*) into a plain text file. On some systems you may have to give the file a name ending with ".ma" to allow Mathematica to recognize it as a Notebook. The line below identifies what version of Mathematica created this file, but it can be opened using any other version as well."; FrontEndVersion = "NeXT Mathematica Notebook Front End Version 2.2"; NeXTStandardFontEncoding; fontset = title, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e8, 24, "Times"; ; fontset = subtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e6, 18, "Times"; ; fontset = subsubtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, L1, e6, 14, "Times"; ; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, L1, a20, 18, "Times"; ; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, L1, a15, 14, "Times"; ; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, L1, a12, 12, "Times"; ; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 10, "Times"; ; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L1, 12, "Courier"; ; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; ; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, L1, 12, "Courier"; ; fontset = name, inactive, noPageBreakInGroup, nohscroll, preserveAspect, M7, italic, B65535, L1, 10, "Times"; ; fontset = header, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, L1, 12, "Times"; ; fontset = leftheader, 12; fontset = footer, inactive, nohscroll, noKeepOnOnePage, preserveAspect, center, M7, italic, L1, 12, "Times"; ; fontset = leftfooter, 12; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12, "Courier"; ; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; paletteColors = 128; showRuler; automaticGrouping; magnification = 125; currentKernel; ] :[font = title; inactive; preserveAspect; startGroup] Modeling World Class Sprinters in 100 Meter Dash :[font = section; inactive; preserveAspect; startGroup] BRIEF ABSTRACT :[font = subsection; inactive; preserveAspect; endGroup] The Hill-Keller differential equation model for runners is used to ascertain parameters for two world-class runners by fitting the solution to the differential equation to world record runs with split times. An issue is whether or not the model distinguishes the runner's abilities, or at least the runner's approach to the sprint. :[font = section; inactive; Cclosed; preserveAspect; startGroup] GENERAL INFORMATION :[font = subsection; inactive; preserveAspect; endGroup] FileName: RUNOUT Full title: Modeling World Class Sprinters in 100 Meter Dash Developers: Kurt Bryan, Department of Mathematics, Rose-Hulman Institute of Technology, Terre Haute IN 47803 USA. Brian J. Winkel, Department of Mathematics, Rose-Hulman Institute of Technology, Terre Haute IN 47803 USA. Contact: Brian J. Winkel, Department of Mathematics, Rose-Hulman Institute of Technology, Terre Haute IN 47803 USA. Phone: 812-877-8412. Email: winkel@rose-hulman.edu. FAX: 812-877-3198. Support: The production of this material is supported by the National Science Foundation under Division of Undergraduate Education grant DUE-9352849: Development Site for Complex, Technology-Based Problems in Calculus with Applications in Science and Engineering and the Arvin Foundation of Columbus IN. ;[s] 3:0,0;774,1;781,2;816,-1; 3:1,12,9,Times,1,14,0,0,0;1,11,9,Courier,1,14,0,0,0;1,12,9,Times,1,14,0,0,0; :[font = section; inactive; Cclosed; preserveAspect; startGroup] STATEMENT OF PROBLEM :[font = subsection; inactive; preserveAspect] One mathematical model for running is the Hill-Keller model, which states that the main force resisting a runner's progress is "internal" friction; if a runner's speed at time t is given by a function v(t) then this model proposes that the opposing force is of the form -k*m*v(t), where k is some constant, and m is the mass of the runner. The propulsive force that the runner generates at any time is approximated by m*p(t). The function p(t) has units of force per unit mass. Newton's law, :[font = subsection; inactive; preserveAspect] Force = mass * acceleration, implies m*v'(t) = -m*k*v(t) + m*p(t). :[font = subsection; inactive; preserveAspect] The left side is just mass times acceleration, while the right side is the sum of the resistive and propulsive forces on the runner. You can divide through by m to get v'(t) = - kv(t) + p(t). :[font = subsection; inactive; preserveAspect] In a sprinting race like the 100 meter dash we might reasonably assume that the runner applies maximum force throughout the race, so that p(t) = P, where P is some constant representing the runner's maximum effort. In fact, it has been estimated that for world-class sprinters P is about 11.0 meters per second per second. :[font = subsection; inactive; preserveAspect] 1. Solve the differential equation v'(t) + k v(t) = 11 to find the runner's velocity as a function of time. Assume that the runner starts at rest. Integrate v(t) to find the runner's position as a function of time, assuming a zero starting position. :[font = subsection; inactive; preserveAspect; startGroup] 2. Here are the split times for Ben Johnson and Carl Lewis from the 100 meter final at the World Championships in Rome in 1987. The data is in the form {time, distance} pairs, with time in seconds and distance in meters. :[font = input; preserveAspect] johnsondata = {{0,0}, {1.84, 10}, {2.86, 20}, {3.80, 30}, {4.67, 40},{5.53, 50}, {6.38, 60}, {7.23, 70}, {8.10, 80}, {8.96, 90},{9.83, 100}}; :[font = input; preserveAspect; endGroup] lewisdata = {{0,0}, {1.94, 10}, {2.96, 20}, {3.91, 30}, {4.78, 40},{5.64, 50}, {6.50, 60}, {7.36, 70}, {8.22, 80}, {9.07, 90},{9.93, 100}}; :[font = subsection; inactive; preserveAspect] Then plot your solution for the distance as a function of time. Try to adjust the constant k in your distance function, changing the constant k until you get a best fit to the data for each runner. Plot distance versus time for each runner and compare it to the actual data; do they agree? Does this seem like a good model for sprinter's motion? Johnson and Lewis may well have different constants. What significance can we attach, if any, to these constants? :[font = subsection; inactive; preserveAspect; endGroup] 3. Once you have a reasonable estimate for the constant k, look at the function v(t) - differentiate your distance function from (2). How does it behave as t tends to infinity? Is there a maximum speed for the runners? What is it? :[font = section; inactive; Cclosed; preserveAspect; startGroup] KEYWORDS :[font = subsection; inactive; preserveAspect; endGroup] First-order,separable, linear differential equation, Netwon's Second Law of Motion, data analysis, least squares, minimization, velocity. :[font = section; inactive; Cclosed; preserveAspect; startGroup] TEACHER NOTES :[font = subsection; inactive; preserveAspect] ISSUES RELATED TO THE PROBLEM :[font = subsection; inactive; preserveAspect; startGroup] Prerequisites :[font = subsubsection; inactive; preserveAspect; endGroup] Students should be able to solve First-order,separable, linear differential equations and then fit data to the solution to determine a single parameter in the differential equation model. They can do this by eyeballing the fit or formulating a least squares sum as a function of that parameter and minimizing the sum of the squares to determine the best parameter. :[font = subsection; inactive; preserveAspect] Time allotment - time management :[font = subsection; inactive; preserveAspect] Expectations :[font = subsection; inactive; preserveAspect] Future payoffs :[font = subsection; inactive; preserveAspect] Extensions :[font = subsection; inactive; preserveAspect; startGroup] References and Sources :[font = subsubsection; inactive; preserveAspect; endGroup; endGroup] For data and general models of running see Pritchard, W. R. 1993. Mathematical Models of Running. SIAM Review. 35(3) 359-379. ;[s] 3:0,0;98,1;110,2;128,-1; 3:1,10,8,Times,1,12,0,0,0;1,10,8,Times,3,12,0,0,0;1,10,8,Times,1,12,0,0,0; :[font = section; inactive; Cclosed; preserveAspect; startGroup] POSSIBLE SOLUTION :[font = subsection; inactive; preserveAspect; startGroup] 1. Solve the differential equation v'(t) + k v(t) = 11 to find the runner's velocity as a function of time. Assume that the runner starts at rest. Integrate v(t) to find the runner's position as a function of time, assuming a zero starting position. :[font = input; preserveAspect] sol = DSolve[{v'[t] == - k v[t] + 11,v[0]==0},v[t],t]; :[font = input; preserveAspect; startGroup] vs[t_] = v[t]/.sol[[1]] :[font = output; output; inactive; preserveAspect; endGroup] 11/k - 11/(E^(k*t)*k) ;[o] 11 11 -- - ------ k k t E k :[font = input; preserveAspect; startGroup] s[t_] = Integrate[vs[T],{T,0,t}] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] -11/k^2 + 11/(E^(k*t)*k^2) + (11*t)/k ;[o] -11 11 11 t --- + ------- + ---- 2 k t 2 k k E k :[font = subsection; inactive; preserveAspect] 2. We use the split times for Ben Johnson and Carl Lewis from the 100 meter final at the World Championships in Rome in 1987. :[font = subsection; inactive; preserveAspect] We first consider the Ben Johnson data. :[font = subsection; inactive; preserveAspect; startGroup] We first enter the data and plot it. :[font = input; preserveAspect] johnsondata = {{0,0}, {1.84, 10}, {2.86, 20}, {3.80, 30}, {4.67, 40},{5.53, 50}, {6.38, 60}, {7.23, 70}, {8.10, 80}, {8.96, 90},{9.83, 100}}; :[font = input; preserveAspect; endGroup] jd = ListPlot[johnsondata,PlotStyle->{PointSize[.02]}] :[font = subsection; inactive; preserveAspect; startGroup] To try to adjust the constant k in your distance function to get the best fit to the data for each runner we offer the following plotting function which will plot the function s[t] for values of the constant k we want over the plot of the data. :[font = input; preserveAspect; endGroup] try[K_] := Show[Plot[s[t]/.{k->K},{t,0,10}],jd] :[font = subsection; inactive; preserveAspect] We try out several values of k and offer plots. :[font = subsection; inactive; preserveAspect; startGroup] This one (k = 1) appears to be good. :[font = input; preserveAspect; endGroup] try[1] :[font = subsection; inactive; preserveAspect; startGroup] This one (k = .5) appears to be not so good. :[font = input; preserveAspect; endGroup] try[.5] :[font = subsection; inactive; preserveAspect; startGroup] We produce a sum of squares between the actual data and the predicted data (using the model s(t)) at the time splits. We to minimize parameter k in order to determine the best fitting model. :[font = input; preserveAspect; endGroup] SSj[k_] = Sum[(johnsondata[[i]][[2]] - s[johnsondata[[i]][[1]]])^2, {i,1, Length[johnsondata]}]; :[font = subsection; inactive; preserveAspect; startGroup] We plot SSj[k] to see if there is a reasonable starting value for our FindMinimum algorithm. :[font = input; preserveAspect; endGroup] Plot[SSj[k],{k,.6,1.5}] :[font = subsection; inactive; preserveAspect; startGroup] From this plot of SSj[k] it would appear that a value of k around .9 might make the sum of squares least. :[font = input; preserveAspect; startGroup] solj = FindMinimum[SSj[k],{k,.9}] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] {8.85333988249899, {k -> 0.976497637847734}} ;[o] {8.85334, {k -> 0.976498}} :[font = subsection; inactive; preserveAspect; startGroup] We identify Ben Johnson's constant at kj. :[font = input; preserveAspect; endGroup] kj = k/.solj[[2]]; :[font = subsection; inactive; preserveAspect; startGroup] We use the optimal parameter value for k in our model and plot and compare the model with the data. :[font = input; preserveAspect; startGroup] js[t_] = s[t]/.solj[[2]] :[font = output; output; inactive; preserveAspect; endGroup] -11.53586834718842 + 11.53586834718842/ E^(0.976497637847734*t) + 11.26474819155194*t ;[o] 11.5359 -11.5359 + ----------- + 11.2647 t 0.976498 t E :[font = input; preserveAspect] jsPlot = Plot[js[t],{t,0,10}] :[font = input; preserveAspect; endGroup] Show[jsPlot,jd] :[font = subsection; inactive; preserveAspect] We now consider this same approach for Carl Lewis data. :[font = subsection; inactive; preserveAspect; startGroup] We first enter the data and plot it. :[font = input; preserveAspect; endGroup] lewisdata = {{0,0}, {1.94, 10}, {2.96, 20}, {3.91, 30}, {4.78, 40},{5.64, 50}, {6.50, 60}, {7.36, 70}, {8.22, 80}, {9.07, 90},{9.93, 100}}; :[font = subsection; inactive; preserveAspect; startGroup] Then we plot the data. :[font = input; preserveAspect; endGroup] ld = ListPlot[lewisdata,PlotStyle->{PointSize[.02]}] :[font = subsection; inactive; preserveAspect; startGroup] We produce a sum of squares between the actual data and the predicted data (using the model s(t)) at the time splits with parameter k which we seek to minimize in order to determine the best fitting model. :[font = input; preserveAspect; endGroup] SSl[k_] = Sum[(lewisdata[[i]][[2]] - s[lewisdata[[i]][[1]]])^2, {i,1, Length[lewisdata]}]; :[font = subsection; inactive; preserveAspect; startGroup] We plot SSl[k] to see if there is a reasonable starting value for our FindMinimum algorithm. :[font = input; preserveAspect; endGroup] Plot[SSl[k],{k,.6,1.5}] :[font = subsection; inactive; preserveAspect; startGroup] From this plot of SSj[k] it would appear that a value of k around .9 might make the sum of squares least. :[font = input; preserveAspect; startGroup] soll = FindMinimum[SSl[k],{k,.9}] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] {22.16518816914804, {k -> 0.997061480668027}} ;[o] {22.1652, {k -> 0.997061}} :[font = subsection; inactive; preserveAspect; startGroup] We identify Carl Lewis' constant at kl. :[font = input; preserveAspect; endGroup] kl = k/.soll[[2]]; :[font = subsection; inactive; preserveAspect; startGroup] We use the optimal parameter value for k in our model and plot and compare the model with the data. :[font = input; preserveAspect; startGroup] ls[t_] = s[t]/.soll[[2]] :[font = output; output; inactive; preserveAspect; endGroup] -11.06493349742989 + 11.06493349742989/ E^(0.997061480668027*t) + 11.0324189764407*t ;[o] 11.0649 -11.0649 + ----------- + 11.0324 t 0.997061 t E :[font = input; preserveAspect] lsPlot = Plot[ls[t],{t,0,10}] :[font = input; preserveAspect; endGroup] Show[lsPlot,ld] :[font = subsection; inactive; preserveAspect] We note that Johnson and Lewis have different constants. :[font = subsection; inactive; preserveAspect; startGroup] Johnson's constant kj is: :[font = input; preserveAspect; startGroup] kj :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 0.976497637847734 ;[o] 0.976498 :[font = subsection; inactive; preserveAspect; startGroup] Lewis' constant kl is: :[font = input; preserveAspect; startGroup] kl :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 0.997061480668027 ;[o] 0.997061 :[font = subsection; inactive; preserveAspect] They sure do not differ much, with Lewis's constant being slightly larger than Johnson's. (Does this mean Lewis is a better runner than Johnson?) :[font = subsection; inactive; preserveAspect] Recall the constant k is in the differential equation model m*v'(t) = -m*k*v(t) + m*p(t) and a bigger k may result from larger wind resistance due to body shape or internal "resistance" of the body to supply more energy at higher velocities. This could be part of the reason for Johnson's winning the race by 0.01 sec. :[font = subsection; inactive; preserveAspect] 3. Once you have a reasonable estimate for the constant k, look at the function v(t). How does it behave as t tends to infinity? Is there a maximum speed for the runners? What is it? :[font = subsection; inactive; preserveAspect; startGroup] We computer the velocity function for each runner: vj[t] for Johnson and vl[t] for Lewis. :[font = input; preserveAspect; startGroup] vj[t_] = js'[t] :[font = output; output; inactive; preserveAspect; endGroup] 11.26474819155194 - 11.26474819155194/E^(0.976497637847734*t) ;[o] 11.2647 11.2647 - ----------- 0.976498 t E :[font = input; preserveAspect; startGroup] vl[t_] = ls'[t] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 11.0324189764407 - 11.0324189764407/E^(0.997061480668027*t) ;[o] 11.0324 11.0324 - ----------- 0.997061 t E :[font = subsection; inactive; preserveAspect; startGroup] Both appear to be leveling off as the exponential terms both go to zero in their velocity formulae. :[font = input; preserveAspect] jvPlot = Plot[vj[t],{t,0,10},PlotRange->{0,12}] :[font = input; preserveAspect; endGroup] lvPlot = Plot[vl[t],{t,0,10},PlotRange->{0,12}] :[font = subsection; inactive; preserveAspect; startGroup] In fact if we take the Limit as t->Infinity we see what is rather obvious from the formulae. :[font = input; preserveAspect; startGroup] {jLimitVel,lLimitVel} = Limit[{vj[t],vl[t]}, t->Infinity] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] {11.26474819155194, 11.0324189764407} ;[o] {11.2647, 11.0324} :[font = subsection; inactive; preserveAspect; endGroup] It appears the Johnson has a highter limiting velocity of 11.2647 m/sec while Lewis' limiting velocity is 11.0324 m/sec. :[font = section; inactive; preserveAspect; endGroup] ISSUES IN SOLUTION ^*)