B. Design and Thrill of One Coaster Drop using a Trig Function
In this Maple worksheet, we build one hill of a roller coaster using one peak point and one valley point. Our approach is to determine a trig function of the form f(x) = acos(bx+c)+d that connects these points and then to calculate the angle of steepest descent/ascent and the resulting thrill factor.
I. Getting Started
We clear all variables by executing the restart command. Also, to avoid multiple solutions, we set the maximum number of solutions variable equal to 1.
> | restart: |
> | _MaxSols:=1: |
II. Data Points
We enter x coordinates and y coordinates and slope conditions for the peak and valley points using lists. These lists can easily be extended to cover the case where more than 2 peak and valley points are used and the more complicated case where general points (not necessarily peak and valley points) are used.
In this example, we have an initial peak at (0,75) followed by the first valley at (50,0).
In your work, use the collected peak and valley data points from the Colossus (Module A)
> | xdata:=[0,50]: |
> | ydata:=[75,0]: |
> | slopes:=[0,0]: |
III. Connecting Trig Function
We now determine the function of the form f(x) = acos(bx+c)+d that fits the chosen peak and valley points(with the chosen slope conditions.) In this case, we know that half the period of our trig function is xdata[2]-xdata[1]. Thus, one complete period is 2(xdata[2]-xdata[1]) and so, the constant b is given by b = /(xdata2-xdata1) . We use this when solving for the unknown coefficients.
(NOTE: The Maple code is designed for easy extension using a "do" loop for the case where more than 2 peaks and valleys have been marked).
We define a function f(x) with unknown coefficients a1, b1,c1,d1 and then determine f ' (x).
> | f:=x->a[1]*cos(b[1]*x+c[1])+d[1]: |
> | fp:=D(f): |
Now we "fit" f(x) to the peak and valley conditions. We already know the value for b1.
> | s[1]:=fsolve({f(xdata[1])=ydata[1],fp(xdata[1])=slopes[1],f(xdata[2])=ydata[2],fp(xdata[2])=slopes[2]},{a[1],b[1]=Pi/(xdata[2]-xdata[1]),c[1],d[1]}): |
> | assign(s[1]): |
> | f:=x->a[1]*cos(b[1]*x+c[1])+d[1]: |
We plot our function f(x) for the given interval and display.
> | tplot[1]:=plot(f(x),x=xdata[1]..xdata[2]): |
> | with(plots): |
Warning, the name changecoords has been redefined
> | display(tplot[1]); |
Our function looks correct. It goes through the given peak and valley points with the proper slope.
IV. Calculation of Angle of Steepest Descent
Now, we must find the angle of steepest descent.
So, we must find the maximum value of the absolute value of the derivative on the interval [x1,x2].
We first graph the absolute value of f ' on the given interval.
From the graph below, it looks like f ' has a absolute minimum at about 25.
> | f:=x->a[1]*cos(b[1]*x+c[1])+d[1]: |
> | fp:=D(f): |
> | plot(abs(fp(x)),x=xdata[1]..xdata[2]); |
To work exactly, we find all critical points of f ' on the given interval and then evaluate and compare values of f ' at the critical points and at the endpoints.
Location of angle of steepest descent/ascent and slope
> | fpp:=D(fp): |
> | p1:=fsolve(fpp(x)=0,x,xdata[1]..xdata[2]); |
> | slope1:=max(abs(fp(p1)),abs(fp(xdata[1])),abs(fp(xdata[2]))); |
The maximum value of the absolute value of the slope is 2.356194490
Check: How does this slope value compare with your previous work?
Angle measure
To find the associated angle in radian measure we use the inverse tangent function
> | rangle1:=arctan(slope1); |
To find the associated angle in degree measure, we simply convert radians to degrees
> | dangle1:=evalf(rangle1*180/Pi); |
The angle of steepest descent of this hill is 67.00299232 degrees.
V. Safety Restrictions and Thrill Factor
Safety Criterion
For this hill, the angle of steepest descent is 67.00299232 degrees and so it is SAFE.
Thrill Factor
The thrill for this hill is
> | rangle1*abs(ydata[2]-ydata[1]); |
> |
VI. Observation and Generalization
Build another hill using the collected peak and valley data points from the Steel Dragon (Module A)
Keeping in mind coaster restrictions, build several more roller coaster drops, using different peak and valley combinations. Keep a record of your results.