trigcoaster1hill.mws

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 =   Pi /(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]);

[Maple Plot]

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]);

[Maple Plot]

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]);

p1 := 25.00000002

>    slope1:=max(abs(fp(p1)),abs(fp(xdata[1])),abs(fp(xdata[2])));

slope1 := 2.356194490

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);

rangle1 := 1.169422825

To find the associated angle in degree measure, we simply convert radians to degrees

>    dangle1:=evalf(rangle1*180/Pi);

dangle1 := 67.00299232

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]);

87.70671188

>   

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.