Initializations

Arrow3D[{x1_,y1_,z1_},{x2_,y2_,z2_},color_]:=Module[{line,head,headsize},
headsize=0.015*(Sqrt[(((x1-x2))^2)+(((y1-y2))^2)+(((z1-z2))^2)]);
head=Sphere[{x2,y2,z2},headsize];
line=Line[{{x1,y1,z1},{x2,y2,z2}}];
Return[Graphics3D[{color,Thick,line,head}]];
]

Question

Consider a path in (ℝ^3) given by the curve

r[t_]={t,Cos[3t],Sin[4t]}

a) Plot the curve, and an animation of the TNB frame coordinates for 0<t<2π. Note that I have provided the Arrow3D module in the initializations for you to use.

b) Notice that something interesting is happening when t~4.7. Explain what it happening, and why.

c) Determine the exact values of t for which the interesting behaviour in part b occurs.

Barry's Solution

Part a

Here is a plot of the curve:

curve=ParametricPlot3D[r[t],{t,0,2Pi},PlotStyle->{Blue,Thick},AxesLabel->{"x","y","z"}]

The unit vectors in the TNB frame are found from the following. Output is surpressed, since it is a bit long. I've also inlcuded the curvature and torsion.

v[t_]=D[r[t],t];
T[t_]=((v[t])/(Sqrt[v[t].v[t]]));
NormalVector[t_]=((D[T[t],t])/(Sqrt[D[T[t],t].D[T[t],t]]));
B[t_]=Cross[T[t],NormalVector[t]];

κ[t_]=((Sqrt[T'[t].T'[t]])/(Sqrt[r'[t].r'[t]]));
τ[t_]=((Det[{r'[t],r''[t],r'''[t]}])/((((Sqrt[Cross[r'[t],r''[t]].Cross[r'[t],r''[t]]])))^2));

Here is an animation of the TNB frame:

Manipulate[Show[curve,
Arrow3D[r[t],r[t]+T[t],Red],
Arrow3D[r[t],r[t]+NormalVector[t],Green],Arrow3D[r[t],r[t]+B[t],Darker[Blue]],
Graphics3D[Text["Curvature"N[κ[t],4],{1,1,1.5},BaseStyle->{Large}]],
Graphics3D[Text["Torsion"N[τ[t],4],{1,1,2.5},BaseStyle->{Large}]],
PlotRange->{{0,2Pi},{-2,2},{-2,2}}],{t,0,2Pi}]

Part b

Around t~4.7 the unit normal vector is dicontinuous--it switched from one side of the curve to the other. The center of curvature is changing because the tangent line to the curve at that point is passing from one side to the other. If you play with the animation above you can readily see this is the case. The curvature at these points is zero.

Since we are using unit vectors for the TNB plane, this might be easy to miss. Let's redo the animation where with do not use unit vectors (I've added nu for "not unit"), and you will see that the normal vector (and hence also the binormal vector) is zero near t~4.7:

v[t_]=D[r[t],t];
Tnu[t_]=((v[t])/(Sqrt[v[t].v[t]]));
NormalVectornu[t_]=D[T[t],t];
Bnu[t_]=Cross[Tnu[t],NormalVectornu[t]];

Here is an animation of the TNB frame:

Manipulate[Show[curve,
Arrow3D[r[t],r[t]+T[t],Red],
Arrow3D[r[t],r[t]+NormalVectornu[t],Green],Arrow3D[r[t],r[t]+Bnu[t],Darker[Blue]],
PlotRange->{{0,2Pi},{-2,2},{-2,2}}],{t,0,2Pi}]

From this animation we can easily see the normal vector is zero when t~4.7 and also when t~1.5708 .

Part c

To find the exact value of t for which the length of the normal vector is zero, we need to solve the equation: |T'(t)|=0 for t. Since this will involve trigonometric functions in this case, we should try the built-in command Reduce.

eq=Sqrt[D[T[t],t].D[T[t],t]]==0

Reduce[eq,t]

Most of these quantities that have "Root" in them are complex valued. The first two solutions are real valued, where C[1]=n is an integer.

Table[{-(π/2)+2 π*n,(π/2)+2 π*n},{n,-3,3}]//Flatten
N[%]

And we see that we have the 1.5708=π/2 result and 4.71239=3π/2 that we saw in our animation.

As a final check, try to solve the equation using NSolve

NSolve[eq,t]

Notice that the only two real valued solutions are ±1.5708. Using Nsolve instead of Reduce means we didn't get the periodicity of the solutions.

Notice that the curvature is zero at these points

κ[Pi/2]
κ[3Pi/2]