<< Graphics`PlotField`

We can start out by defining the track parametically:

x[s_] := Sin[s] + (s/2); y[s_] := -Cos[s] + 1;

track[s_] := {x[s], y[s]}

k = 2  π;

g1 = 
      ParametricPlot[track[s], {s, 0, k}, Compiled -> False, 
        AspectRatio -> Automatic]

Then the unit tangent and normal vectors are given by:

\(T\&^[
        s_] := \(track'\)[s]\/\@\(\(track'\)[s] . \(track'\)[s]\)\)

\(N\&^[s_] := \(T\&^'\)[s]\/\@\(\(T\&^'\)[s] . \(T\&^'\)[s]\)\)

Next, we need to calculate the curvature of the track as a function of s.

κ[
        s_] := (((Sqrt[Cross[Join[track'[s], {0}], Join[track''[s], {0}]] . Cross[Join[track'[s], {0}], Join[track''[s], {0}]]])/(((track'[s] . track'[s]))^(3/2))))

Curious what this looks like? Plot it!

Plot[κ[s], {s, 0, k}]

To get the centripetal force, 
      the last thing we need is (v^2)[s] .  
 
          This term we get from energy : (I call this term v2[
                s] so Mathematica will understand.)

(1/2) m (Subscript[v, i]^2) + m g y[0] == (1/2) m (Subscript[v, f]^2) + 
        m g y[s]

g = 9.8;
v2[s_, vi_] := 
      (vi^2) + g (track[0] . {0, 1} - track[s] . {0, 1})

From the formula sheet, we can solve for the Normal Force in the Normal Direction. (scalar)

\(N\&_[s_, vi_] := 
      m \((v2[s, vi]*κ[s] - {0, \(-g\)} . N\&^[s])\)\)

This gives us a plot of the magnitude of the force in the normal direction in G's.

\(Plot[N\&_[u, 5]\/\(m*g\), {u, 0, k}, 
      AxesOrigin -> {0, 0}]\)

This function will plot the normal vectors at a number of positions along the curve. BEFORE YOU ENTER THIS LINE, MAKE SURE YOU ENTERED THE PACKAGE IN THE FIRST LINE OF THIS NOTEBOOK.

\(g2 = 
      ListPlotVectorField[
        Table[{track[u], \((N\&_[u, 6]\/\(5  m*g\))\) N\&^[u]}, {u, 0, 
            k, π/5}]]\)

Show[g1, g2]

We can look at one more thing now: the effect of the initial speed. For the loop, we need to figure out what speed is necessary for the coaster to make it over the loop at all!

FindRoot[v2[π, vi] == 0, {vi, 1}]

\(speeds = 
      Table[Plot[N\&_[s, a]\/\(m*g\), {s, 0, 2  π}, 
          PlotStyle -> Hue[\(a + 1\)\/5]], {a, 4.5, 7,  .25}]\)

Show[speeds, PlotRange -> {-1, 10}]