(*^ ::[ 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; automaticGrouping; currentKernel; ] :[font = title; inactive; preserveAspect; startGroup] Maximum Horizontal Bounce Distance of Ball Bouncing On Inclined Ramp. :[font = section; inactive; preserveAspect; startGroup] BRIEF ABSTRACT :[font = subsection; inactive; preserveAspect; endGroup] Drop a ball on an inclined ramp from a fixed height. Of all the angles you can incline the ramp which permits the ball to bounce OUT the farthest. :[font = section; inactive; Cclosed; preserveAspect; startGroup] GENERAL INFORMATION :[font = subsubsection; inactive; preserveAspect; endGroup] FileName: RAMPOUT Full title: Maximum Horizontal Bounce Distance of Ball Bouncing On Inclined Ramp Developer: 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. :[font = section; inactive; Cclosed; preserveAspect; startGroup] STATEMENT OF PROBLEM :[font = subsection; inactive; preserveAspect; endGroup] We consider the problem of dropping a ball onto an inclined plane (ramp) of slope and watching it bounce. Suppose the coefficient of of restitution is .5, applied only to the component of the velocity which is perpendicular to the plane of the ramp. We wonder what angle the ramp should be to give the bounce the maximum horizontal distance along the level ground. Place the ball at position (10, 40). Place the ramp's base at (0, 0) and assume the slope of the ramp is a positive value, m. Thus the ramp has equation y = m x. We ask for a drop from a height of 40 meters above the ground (not necessarily above the ramp though); what slope m of the ramp will permit the ball to bounce farthest along the ground, i.e. maximize horizontal range? :[font = section; inactive; Cclosed; preserveAspect; startGroup] KEYWORDS :[font = subsection; inactive; preserveAspect; endGroup] Vectors,vector projection, equation solving, one and two-dimensional projectile motion, coefficient of restitution, optimization. :[font = section; inactive; Cclosed; preserveAspect; startGroup] TEACHER NOTES :[font = subsection; inactive; preserveAspect] ISSUES RELATED TO THE PROBLEM :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Prerequisites :[font = subsubsection; inactive; preserveAspect; endGroup] Students need to know about one and two-dimensional projectile motion (without resistance) in order to model the falling ball and the bouncing ball. They need to know how to determine the point of intersection of two curves. They further need to know about projections of vectors in order to take the component of the bounce which is perpendicular to the plane of the ramp. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Time allotment - time management :[font = subsubsection; inactive; preserveAspect; endGroup] We have not used this in class yet and thus have no real feel for time. But we believe that two class periods and some 4 hours of homework would be sufficient. Pieces include one dimensional projectile motion, projection of component vectors, and finally two-dimensional projectile motion. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Expectations :[font = subsubsection; inactive; preserveAspect; endGroup] We would expect the students to put these pieces together and to experiment with a graphical solution to affirm their intuitions. We see them having trouble with the projection vectors, specifically with regard to applying the coefficient of restitution correctly to only the component of the velocity which is perpendicular to the ramp. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Future payoffs :[font = subsubsection; inactive; preserveAspect; endGroup] The ability to organize the information in this problem and to apply several different principals in one context will give the students more confidence when they see complex or real problems. Further the interdependence of one component of the problem with another will show the student the importance of consistency, good notation, building a model of a complex situation, and continuity. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Extensions :[font = subsubsection; inactive; preserveAspect; endGroup] Another variation on this is to always insist that the ball falls 40 meters BEFORE it hits the ramp. Do not always start the falling ball at (10, 40) but start it at 40 meters above the point on the ramp which is under it, i.e. start the falling ball at position (10, m 10 + 40). Seek to ascertain what angle will give the ball the maximum speed when it strikes the ground; maximum magnitude of acceleration. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] References and Sources :[font = subsubsection; inactive; preserveAspect; endGroup; endGroup] The basic idea for this problem comes from the text Vector Mechanics for Engineers - Statics and Dynamics, Fifth Edition by F. P. Beer and E. R. Johnston, Jr. McGraw-Hill: New York, 1988. Problem 13.151 on page 638. :[font = section; inactive; Cclosed; preserveAspect; startGroup] POSSIBLE SOLUTION(S) :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Description of ball falling from height of 40 m at a positive horizontal distance of 10 m from the origin. :[font = input; preserveAspect; endGroup] b[t_] = {10, -1/2 9.81 t^2 + 0 t + 40}; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Description of the ramp as a line through the origin with slope m. :[font = input; preserveAspect; endGroup] l[x_,m_] = m x; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Parametric description of the ramp - slope m as a parameter. :[font = input; preserveAspect; endGroup] c[t_] = {10, l[10,m]}; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We determine when the ball strikes the ramp in terms of parameter m. :[font = input; preserveAspect; endGroup] sol = Solve[b[t]==c[t],t]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Time of contact - ball with ramp. :[font = input; preserveAspect] tc = t/.sol[[2]]; :[font = input; preserveAspect; endGroup] tcm[m_] = t/.sol[[2]]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We determine the velocity at impact with the ramp of slope m which occurs at time tc. :[font = input; preserveAspect; endGroup] v[m_] = b'[t]/.{t->tc}; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We describe up[m] the vector perpendicular to the ramp and ud[m] the vector in the direction of the ramp. It is these vectors on which we must resolve the velocity vector to get the initial velocity vector for our projectile after the bounce on the ramp. :[font = input; preserveAspect] up[m_] = {-m,1}/Sqrt[m^2+1]; :[font = input; preserveAspect; endGroup] ud[m_] = {1,m}/Sqrt[m^2+1]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We consider the projections of our velocity vector v(m) on each of these directions to get the components in terms of the vector perpendicular to the ramp (pup(m)) and along the ramp (pud(m)). :[font = input; preserveAspect] pup[m_] = Simplify[v[m].up[m]/(up[m].up[m]) up[m]]; :[font = input; preserveAspect; endGroup] pud[m_] = Simplify[v[m].ud[m]/(ud[m].ud[m]) ud[m]]; :[font = subsection; inactive; preserveAspect] We assume there is a restitution coefficient of e = .5. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We know that the velocity after the impact has two components: pud[m] with magnitude 1 and opposite pup[m] with magnitude .5 of its original magnitude . :[font = input; preserveAspect; endGroup] vl[m_] = -.5 pup[m] + pud[m]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Now to define and plot trajectory of bouncing ball after it hits the ramp. :[font = input; preserveAspect; endGroup] pb[t_,m_] = {vl[m][[1]] t + c[tc][[1]] , - 1/2 9.81 t^2 + vl[m][[2]] t + c[tc][[2]]}; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We plot several trajectories for different values of m. :[font = input; preserveAspect; endGroup] ParametricPlot[{pb[t,.1], pb[t,.2],pb[t,.3], pb[t,.4], pb[t,.5],pb[t,1],pb[t,1.5],pb[t,2]}, {t,0,4},PlotRange->{{-40,10},{0,25}}] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We wish to know when the ball hits the ground after the bounce, i.e. when the y coordinate of pb[t,m]= 0. :[font = input; preserveAspect; endGroup] solt = Solve[pb[t,m][[2]] == 0,t]//Simplify; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] After a few trials we see that the second solution is the correct one. Thus the time until landing, tland[m] as a function of m is given. :[font = input; preserveAspect] tland[m_] = t/.solt[[2]]; :[font = input; preserveAspect; endGroup] Plot[tland[m],{m,0,4},PlotRange->{0,4}] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] And now the down range distance as a function of m is the x coordinate of the trajectory :[font = input; preserveAspect; endGroup] downrange[m_] = pb[tland[m],m][[1]]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We plot this to determine when this value is furthest to the left, i.e. most negative. :[font = input; preserveAspect; endGroup] Plot[downrange[m],{m,0,4}] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We seek the minimum value of this function downrange[m] and thus we set its derivative to 0 and solve for the optimal slope. :[font = input; preserveAspect] d[m_] = downrange'[m]; :[font = input; preserveAspect; endGroup] solm = FindRoot[d[m]==0,{m,.5}]; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Thus we have obtained the optimal slope to give maximum range. :[font = input; Cclosed; preserveAspect; startGroup] optSlope = m/.solm[[1]] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 0.3995032287342068 ;[o] 0.399503 :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Finally we compute the maximum down range distance :[font = input; Cclosed; preserveAspect; startGroup] downrange[optSlope] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] -17.44594750328582 ;[o] -17.4459 :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Actually the downrange distance from the line of the drop is: :[font = input; Cclosed; preserveAspect; startGroup] 10 - downrange[optSlope] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 27.44594750328582 ;[o] 27.4459 :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Further we plot the path of the projectile after the bounce. :[font = input; preserveAspect; endGroup] p1 = ParametricPlot[pb[t,optSlope], {t,0,4},PlotRange->{{-20,20},{0,25}}, AspectRatio->Automatic] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] And the angle (in degrees) of the ramp for optimal down range distance is 21.7769 degrees. :[font = input; preserveAspect; endGroup] a = ArcTan[optSlope]/Degree//N; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We further collect the paths of the falling and then bouncing ball with the ramp for one nice plot. :[font = input; preserveAspect] p2 = ParametricPlot[b[t],{t,0,tc/.{m->optSlope}}] :[font = input; preserveAspect] p3 = Plot[optSlope x,{x,0,20}] :[font = input; preserveAspect; endGroup] Show[p1,p2,p3] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] And finally we offer one function of two variables, t and m, such that for a given m (slope of ramp) the trajectory with maximal range is computed and the trajectory can be plotted. :[font = input; preserveAspect] z[t_,m_] := If[t < tcm[m], b[t],pb[t - tcm[m],m]] :[font = input; preserveAspect] solutionPlot[m_] := ParametricPlot[z[t,m], {t,0,tland[m] + tcm[m]}, PlotRange->{{-20,12},{0,40}}, AspectRatio->Automatic] :[font = input; preserveAspect; endGroup] solutionPlot[.3] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Indeed, we offer an animation of the motion with the ball bouncing off the ramp and landing on the ground. :[font = input; preserveAspect; endGroup] picture[m_] := Do[ Show[ Graphics[ {PointSize[.02], Point[ z[t,m]], Line[{{0,0},{12, 12m}}]} ], PlotRange->{{-20,12},{0,40}}, Axes->Automatic ], {t,0,tland[m] + tcm[m],(tland[m] + tcm[m])/50} ] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We offer an animation using our optSlope value which should give maximum range. We note that our optimum slope is 0.399503 or 21.7769 degrees. :[font = input; preserveAspect] ArcTan[optSlope] / Degree//N; :[font = input; preserveAspect; endGroup] picture[optSlope] :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] We now consider several other slopes for our ramp to see that the range is actually less for these values than for our computer optimal slope, optSlope. :[font = input; preserveAspect] picture[.25] :[font = input; preserveAspect] picture[.5] :[font = input; preserveAspect] picture[.75] :[font = input; preserveAspect] picture[1] :[font = input; preserveAspect; endGroup; endGroup] picture[2] :[font = section; inactive; Cclosed; preserveAspect; startGroup] ISSUES IN SOLUTION :[font = subsubsection; inactive; preserveAspect; endGroup; endGroup] We provide an animation capability to our solution. It might be appropriate to ask students to animate their solution if they are familiar with the animation features of Mathematica. Students might be given the animation - be sure to provide the prerequisite formulae leading up to the final trajectory - and asked to play with this animation to conjecture a ramp slope for maximum horizontal distance. ;[s] 3:0,0;171,1;182,2;413,-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; ^*)