Mechanics
Mathematica Documentation
Mathematica Source Code
Page 3
(Skboard.ma)

Determine the angle theta that will in principle enable a skate-boarder
who starts at the top (height H) with zero velocity to achieve a maximum
jump distance. [Treat the height H as a constant, along with gravity.]
The jump distance is measured horizontally from the end of the ramp, which
has radius R and extends through and angle theta from the vertical. The
height h of the end of the ramp above the ground is R(1 - Cos[theta]).
a) Obtain an expression for the horizontal jump distance L to reach the
ground. [Hint: find the time to reach the ground.]
For parts b) and c) assume H = 5.1 m.
b) Determine the ramp angle theta for maximum jump distance when R = 1.1
m. Going Further: (optional)
c) What happens to the maximum jump distance as R decreases?
[Ans: Jump max dist increases as R->0, because it doesn't lose any energy
reaching the launch angle]
Solution
Define constants.
g := 98/10
Height at the end of the ramp.
h = R*(1 - Cos[theta])
Conservation of energy:
eq1 = m*v0^2/2 == m*g*(H-h)
Solve the above equation for v0.
sol = Solve[eq1,v0]
Assign the positive solution.
v0 = (98*H - 98*R + 98*R*Cos[theta])^(1/2)/5^(1/2)
x and y components of velocity:
vx = v0*Cos[theta]
vy = v0*Sin[theta]
Equation for y position of skate-boarder.
eq2 = h+vy*t-g*t^2/2
Solve the above equation for time.
sol2 = Solve[eq2==0,t]
Assign the positive solution & simplify it.
t = Simplify[(14*10^(1/2)*(H - R + R*Cos[theta])^(1/2)*
Sin[theta] + (-196*R*(-10 + 10*Cos[theta]) + 1960*(H - R + R*Cos[theta])*Sin[theta]^2)^
(1/2))/98]
Part A
Distance traveled by skate-boarder
distance = vx*t
Substitute in values for H and R into the distance equation.
distance1 = Simplify[distance/.{H -> 51/10, R
-> 11/10}]
Plot[distance1, {theta,0,Pi/2}, PlotLabel -> "Distance Traveled
vs. Theta"]
Derivative of the distance equation.
ddist = D[distance1,theta]
Part B
Find theta where the distance traveled is a maximum.
thetamax = FindRoot[ddist == 0, {theta,.9}]
Convert this answer into degrees.
thetamaxdeg = 180/Pi*theta/.%//N
Now substitute only H into the distance equation so that theta and
R may be varied.
Clear[R, theta]
distance2 = Simplify[distance/.H -> 51/10]
Make a 3D plot of this expression. NOTE: Some warning messages will
appear due to the fact that the function is not defined over the entire
range of the plot.
Plot3D[distance2,{theta,0,Pi/2},{R,0,10}, PlotPoints
-> 40, PlotLabel -> "Distance vs. theta & R",ViewPoint->
{2.911,1.382,1.033}]
Animate distance2 as R decreases. In order to do this, R must be
replaced with negative R, which is the purpose of distance3.
distance3 = distance2/.{R -> -R}
NOTE: The command Off[Plot::plnr] turns off some of Mathematica's
warnings .
Off[Plot::plnr]
Do[Plot[distance3,{theta,0,Pi/2}, PlotRange -> {{0,1.8},{0,10.5}}, PlotLabel
-> "Distance vs. theta as R decreases", AxesLabel -> {"Theta","Distance"}],
{R,-10,0,.5}]
The maximum jump distance increases as R decreases.

Certain amusement park rides consist of two circular motions superimposed
as shown in the sketch. There is an arm of length R1 and a second arm of
length R2. The first arm rotates at angular speed 1 and the second
arm rotates with respect to the first arm at an angular speed of 2.
a) Write an expression for the position of point P (at the end of the second
arm) as a function of time.
b) Using values R1 = 10.0 m, R2 = 5.00 m, periods of T1 = 15.0 s, and T2
= 8.0 s, and create a parametric (x,y) plot of the motion of point P.
c) Write an expression for the velocity vector of point P as a function
of time. Graph the magnitude of the velocity as a function of the time.
Make the time interval for the plot long enough to view the entire range
of possible velocities. What is the physical configuration of the ride
at moments of greatest velocity?
d) Obtain the general expression for the acceleration vector as a function
of time. Graph the magnitude of the acceleration as a function of time
showing the complete range of values. What is the physical configuration
of the ride at moments of greatest acceleration?
Going further:
e) Change the values of the radii and rotation rates to give customers
a ride with a maximum acceleration of 3 g.
Still further:
f) Rework parts a) - d) with a negative 2, that is 2 in the opposite direction
of 1. [Enhancements in solution: 3D plot of velocity magnitude, and acceleration
vs x,y position.]
Solution
Before beginning, turn off Mathematica's spell checker so that variable
names will not be questioned.
Off[General::spell]
Off[General::spell1]
Part A
Position of point Q
qxGen = R1*Cos[omega1*t]
qyGen = R1*Sin[omega1*t]
Position of point P with respect to Q in general case.
prQxGen = R2*Cos[(omega1 + omega2)*t]
prQyGen = R2*Sin[(omega1 + omega2)*t]
General Case
pxGen = qxGen + prQxGen
pyGen = qyGen + prQyGen
Substitute in specific values for the problem
qx = qxGen/. {R1 -> 10, R2 -> 5, omega1 ->
2*Pi/15, omega2 -> Pi/4}
qy = qyGen/. {R1 -> 10, R2 -> 5, omega1 -> 2*Pi/15, omega2 ->
Pi/4}
px = pxGen/. {R1 -> 10, R2 -> 5, omega1 -> 2*Pi/15, omega2 ->
Pi/4}
py = pyGen/. {R1 -> 10, R2 -> 5, omega1 -> 2*Pi/15, omega2 ->
Pi/4}
Part B
Plot Px and Py
ParametricPlot[{px,py},{t,0,120}, PlotLabel ->
"Parametric plot of motion from T = 0 to 120 sec.", AspectRatio
-> 1]
Create an animation for this problem
First, clear any values for the variable t
ClearAll[t]
The code below generates 31 plots from t equals 0 to 15 at .5 second intervals. In order to animate the plots generated, simply highlight the cell bracket that contains all of the graphs, and then choose Animate Selected Graphics form the Graph menu. The plot then visible on your screen should start to be animaed. The plot will remain animated until something is clicked on outside of the animated plot. This will stop the animation. NOTE: When done viewing the animation, the plots can be hid by highlighting the cell bracket that contains all of the plots and then choosing Close All Subgroups from the Cell menu.
Do[Show[Graphics[Line[{{0,0},{qx//N, qy//N},{px//N,py//N}}]], DisplayFunction -> $DisplayFunction, Axes -> True, PlotRange -> {{-15,15},{-15,15}}],{t,0,15,1/2}]
Part C
First, clear the variable t again
ClearAll[t]
Find the velocity and speed of point P
vPx := D[px,t]
vPy := D[py,t]
speed = Simplify[Sqrt[vPx^2+vPy^2]]
Plot[speed, {t,0,50}, PlotLabel -> "Speed of P vs. Time"]
dspeed = Simplify[D[speed,t]]
FindRoot gives a numeric approximation to the root closest to the
given starting point (17, in this case)
time = FindRoot[dspeed == 0, {t,17}] {t -> 16.}
Location of P at maximum speed.
locationPx = px/. t -> 16//N
locationPy = py/. t -> 16//N
locationQx = qx/. t -> 16//N
locationQy = qy/. t -> 16//N
Convert to polar coordinates.
locPr = Sqrt[locationPx^2 + locationPy^2]//N
locPtheta = ArcTan[locationPy/locationPx]//N
locQr = Sqrt[locationQx^2 + locationQy^2]//N
locQtheta = ArcTan[locationQy/locationQx]//N
Note that this result shows that the fastest speed is when P is
furthest from the center. Plot speed on z axis and position on x and y
aixses.
ParametricPlot3D[{px, py, speed}, {t,0,120}, PlotPoints
-> 500, PlotLabel -> "Speed of P vs. position",BoxRatios
-> {1,1,1}]
Part D
Find the acceleration of point P
aPx = D[vPx,t]
aPy = D[vPy,t]
MagAcc = Simplify[Sqrt[aPx^2 + aPy^2]]
Plot[MagAcc, {t,0,50},PlotLabel -> "|a| vs. time", PlotRange -> {5,10}]
dMagAcc = Simplify[D[MagAcc, t]]
FindRoot gives a numeric approximation to the root closest to the
given starting point (17, in this case)
time = FindRoot[dMagAcc == 0, {t,17}]
Location of point P at maximum acceleration.
locationPx = px/. t -> 16//N
locationPy = py/. t -> 16//N
locationQx = qx/. t -> 16//N
locationQy = qy/. t -> 16//N
Convert to polar coordinates
locPr = Sqrt[locationPx^2 + locationPy^2]//N
locPtheta = ArcTan[locationPy/locationPx]//N
locQr = Sqrt[locationQx^2 + locationQy^2]//N
locQtheta = ArcTan[locationQy/locationQx]//N
Note that this result shows that the fastest speed is when P is
furthest from the center. Plot |a| on z axis and position on x and y aixses.
ParametricPlot3D[{px//N, py//N, MagAcc//N}, {t,0,120},
PlotPoints -> 500, PlotLabel -> "|a| of P vs. position",
BoxRatios -> {1,1,1}]
Part E
Change equations back to general case
aPx = D[pxGen, {t,2}]
aPy = D[pyGen, {t,2}]
General expression for |a|
MagAcc = Simplify[Sqrt[aPx^2+aPy^2]]
We want the maximum |a| to be 3g and there are four variables that
affect acceleration. Pick three of these variables, and have Mathematica
solve for the fourth one. Substituting in values for w1, w2, and R2:
MagAcc1 = Simplify[MagAcc/.{omega1 -> Pi/4, omega2
-> Pi/3, R2 -> 6}]
We know from the previous steps that acceleration is a maximum when
t = 0, so substitute t = 0 into MagAcc1
MagAcc2 = Simplify[MagAcc1/.{t -> 0}]
Now find the value of R1 that will result in a maximum acceleration
of 3g
sol = Solve[MagAcc2 == 3*(98/10), R1]
Since R1 must be positive, only the second answer (14.9948) will
be used.
Substituting in the value for R1, the equation for |a| as a function of
time becomes:
MagAcc3 = Simplify[MagAcc1/.{R1 -> (98*(72 - 5*Pi^2))/
(15*Pi^2)}]
The g force is then:
Gforce = MagAcc3/(98/10)//N
Plot the g force:
Plot[Gforce, {t,0,50}, PlotLabel -> "g force
of ride", PlotRange -> {0.5,3.5}]
Repeat problem for omega2 going in the oppostie direction.
Position of point Q in general case.
qxgen = R1*Cos[omega1*t]
qygen = R1*Sin[omega1*t]
Position of point P with respect to Q in general case. (This time
subtract omega2) prqxgen = R2*Cos[(omega1 - omega2)*t]
prqygen = R2*Sin[(omega1 - omega2)*t]
Part A
Position of point P
General Case
pxgen = qxgen + prqxgen
pygen = qygen + prqygen
Substitute in values for specific case
qx = qxgen/.{R1 -> 10, R2 -> 5, omega1 ->
2*Pi/15, omega2 -> 2*Pi/8}
qy = qygen/.{R1 -> 10, R2 -> 5, omega1 -> 2*Pi/15, omega2 ->
2*Pi/8}
px = pxgen/.{R1 -> 10, R2 -> 5, omega1 -> 2*Pi/15, omega2 ->
2*Pi/8}
py = pygen/.{R1 -> 10, R2 -> 5, omega1 -> 2*Pi/15, omega2 ->
2*Pi/8}
Plot px and py
ParametricPlot[{px,py},{t,0,120}, PlotLabel ->
"Parametric plot of motion from T = 0 to 120 sec.", AspectRatio
-> 1]
Create frames for an animation of this problem
Do[Show[Graphics[Line[{{0,0},{qx//N, qy//N},{px//N,py//N}}]], DisplayFunction -> $DisplayFunction, Axes -> True, PlotRange -> {{-15,15},{-15,15}}],{t,0,15,1/2}]
Reset the variable t
ClearAll[t]
Find the velocity and speed of point P
vPx = D[px,t]
vPy = D[py,t]
speed = Simplify[Sqrt[vPx^2 + vPy^2]]
Plot speed vs. time
Plot[speed, {t,0,50}, PlotLabel -> "Speed
of P vs. Time", PlotRange -> {1.5,6.5}]
dspeed = Simplify[D[speed,t]]
FindRoot gives a numeric approximation to the root closest to the
given starting point (5, in this case)
time = FindRoot[dspeed == 0, {t,5}]
Location of P and Q at maximum speed.
locationPx = px/. t -> 4//N
locationPy = py/. t -> 4//N
locationQx = qx/. t -> 4//N
locationQy = qy/. t -> 4//N
Convert to polar coordinates
NOTE: the addition of Pi to the ArcTan is necessary only if you desire
a positive value for theta.
locPr = Sqrt[locationPx^2 + locationPy^2]//N
locPtheta = ArcTan[locationPy/locationPx] + Pi//N
locQr = Sqrt[locationQx^2 + locationQy^2]//N
locQtheta = ArcTan[locationQy/locationQx] + Pi//N
Note that this result shows that the fastest speed is when P is
closest to the center.
Plot speed on z axis and position on x and y aixses.
ParametricPlot3D[{px, py, speed}, {t,0,120}, PlotPoints
-> 500, PlotLabel -> "Speed of P vs. position", PlotRange
-> {1,6.5}, BoxRatios -> {1,1,1}]
Find the acceleration of Point P
aPx = D[vPx,t]
aPy = D[vPy,t]
MagAcc = Simplify[Sqrt[aPx^2+aPy^2]]
Plot |a| vs. time
Plot[MagAcc, {t,0,50}, PlotLabel -> "|a|
vs. time", PlotRange -> {.8, 2.8}]
dMacAcc = Simplify[D[MagAcc,t]]
time = FindRoot[dMagAcc ==0, {t,17}]
Location of P and Q at maximum acceleration.
locationPx = px/. t -> 16//N
locationPy = py/. t -> 16//N
locationQx = qx/. t -> 16//N
locationQy = qy/. t -> 16//N
Convert to polar coordinates
locPr = Sqrt[locationPx^2 + locationPy^2]//N
locPtheta = ArcTan[locationPy/locationPx]//N
locQr = Sqrt[locationQx^2 + locationQy^2]//N
locQtheta = ArcTan[locationQy/locationQx]//N
ParametricPlot3D[{px, py, MagAcc}, {t,0,120}, PlotPoints -> 500, PlotLabel -> "|a| of P vs. position", PlotRange -> {0.5,3.5}, BoxRatios -> {1,1,1}]