Motion in Space

Copyright © 2001 by James F. Hurley, University of Connecticut Department of Mathematics, Unit 3009, Storrs CT 06269-3009. All rights reserved.

The interactive version of this worksheet is in the Math 210 folder in the Workspace volume of MSB 203.

This worksheet, a continuation of
Space Curves , focuses on motion of a particle along a curve

r ( t ) = x ( t ) i + y ( t ) j + z ( t ) k = < x ( t ), y ( t ), z ( t ) >.

in space. To begin, return to the first curve considered in the previous worksheet, namely the circular helix

r ( t ) = < >.

It is easy to calculate its veclocity and acceleration vectors, namely,

v ( t ) = < > and a ( t ) = < >.

Since the speed of a particle moving along the curve is ||
v ( t ) || = = , the unit tangent vector is

T ( t ) = < >.

To find the unit normal vector N ( t ), first differentiate T ( t ), and then divide by its length, which for the circular helix is the constant . [ T ( t )] = < >, so N ( t ) = i j .

The next routine plots the helix, along with its unit tangent and normal vectors at the point where
t = /2. It draws the unit tangent vector by plotting the segment of the tangent line

r = < 0, 1, /2 > + t < >

at the point
P (0, 1, /2) in the direction of the unit tangent vector T = < > for t ranging from 0 to 1. (At t = 0, we are at P and at t = 1 we are at the end of the T ( /2) drawn from initial point P .) It uses the same approach for N ( /2): starting from P it plots the normal line

r = < 0, 1, /2 > + t < >.

for
t between 0 and 1 (where we reach the end of the unit normal vector).

> with (plots):
curve := spacecurve( [cos(t), sin(t), t], t = 0..2*Pi, color = black, axes=boxed, numpoints = 150, labels = ["x", "y", "z"] ):
utan := spacecurve( [-t/sqrt(2), 1, Pi/2 + t/sqrt(2)], t = 0..1, color = blue, axes = boxed, numpoints = 150 ):
unorm := spacecurve( [0, 1 - t, Pi/2], t = 0..1, color = green, axes = boxed, numpoints = 150 ):
xaxis := spacecurve( [t, 0, 0, t = -1..1, color = magenta] ):
yaxis := spacecurve( [0, t, 0, t = -1..1, color = magenta] ):
zaxis := spacecurve( [0, 0, t, t = -1..6, color = magenta] ):
labx := textplot3d([1.2, 0, -.2, `x`], color = magenta):
laby := textplot3d([0,1.2, -.2, `y`], color = magenta):
labz := textplot3d([0, 0, 6.5, `z`], color = magenta):
display(curve, utan, unorm, xaxis, yaxis, zaxis, labx, laby, labz);

```Warning, the name changecoords has been redefined
``` The binormal vector is defined to be
B ( t ) = T ( t ) ´ N ( t ). For the helix, this gives

B ( t ) = < >

= <1, 0, 1> for t = /2.

The next routine uses the same technique that plotted
T and N in the preceding plot to add a plot of this binormal vector at t = /2.

> with (plots):
curve := spacecurve( [cos(t), sin(t), t], t = 0..Pi, color = black, axes=boxed, numpoints = 150, labels = ["x", "y", "z"] ):
utan := spacecurve( [-t/sqrt(2), 1, Pi/2 + t/sqrt(2)], t = 0..1, color = blue, axes = boxed, numpoints = 150 ):
unorm := spacecurve( [0, 1 - t, Pi/2], t = 0..1, color = green, axes = boxed, numpoints = 150 ):
binorm := spacecurve( [t/sqrt(2), 1, Pi/2 + t/sqrt(2)],t = 0..1, color = brown, axes = boxed, numpoints = 150 ):
xaxis := spacecurve( [t, 0, 0, t = -1..1, color = magenta] ):
yaxis := spacecurve( [0, t, 0, t = -1..1, color = magenta] ):
zaxis := spacecurve( [0, 0, t, t = -1..4, color = magenta] ):
labx := textplot3d([1.2, 0, -.2, `x`], color = magenta):
laby := textplot3d([0,1.2, -.2, `y`], color = magenta):
labz := textplot3d([0, 0, 4.5, `z`], color = magenta):
display(curve, utan, unorm, binorm, xaxis, yaxis, zaxis, labx, laby, labz, scaling = constrained); Note. To display the right angles between the unit normal and unit tangent vectors properly, the command scaling = constrained was added to the display command. It does not appear in the interactive version of this worksheet.

Example. Exercise 8, Section 14.4 of Stewart's Calculus, 4th Edition, asks for a plot of the parametric curve and corresponding velocity and acceleration vectors with vector representation r ( t ) = < > for t = 1.
Solution
. Since v ( t ) = < > = <1, 2, 3> at t = 1 and a ( t ) = < 0, 2, > = < 0, 2, 6 > there, the following routine provides the required image. As above, it plots the parts of the tangent line and "acceleration line" through the point P (1, 1, 1) on the curve corresponding to t = 1 in the respective directions of the velocity and acceleration vectors.

> with (plots):
curve := spacecurve( [t, t^2, t^3], t = 0..2, color = black, axes=boxed, numpoints = 150, labels = ["x", "y", "z"] ):
veloc := spacecurve( [1 + t, 1 + 2*t, 1 + 3*t], t = 0..1, color = blue, axes = boxed, numpoints = 150 ):
accel := spacecurve( [1, 1 + 2*t, 1 + 6*t], t = 0..1, color = green, axes = boxed, numpoints = 150 ):
xaxis := spacecurve( [t, 0, 0, t = -1..1, color = magenta] ):
yaxis := spacecurve( [0, t, 0, t = -1..1, color = magenta] ):
zaxis := spacecurve( [0, 0, t, t = -1..6, color = magenta] ):
labx := textplot3d([1.2, 0, -.2, `x`], color = magenta):
laby := textplot3d([0,1.2, -.2, `y`], color = magenta):
labz := textplot3d([0, 0, 6.5, `z`], color = magenta):
display(curve, veloc, accel, xaxis, yaxis, zaxis, labx, laby, labz);

It is easy to decompose the accleration vector a (1) into its tangential and normal components of the acceleration at the point P (1, 1, 1) corresponding to t = 1. From the calculations above, for instance, (1) = [ (a á v)/(v á v)] v = [22/14] < 1, 2, 3 > = < 11/7, 22/7, 33/7 >.

Then (1) = (1) = = .

From this, it is easy to calculate

N (1) = [1/|| (1) ||] (1) =  .

The next routine plots the accleration and its tangential and normal components at t = 1.

> with (plots):
curve := spacecurve( [t, t^2, t^3], t = 0..2, color = black, axes=boxed, numpoints = 150, labels = ["x", "y", "z"] ):
accel := spacecurve( [1, 1 + 2*t, 1 + 6*t], t = 0..1, color = green, axes = boxed, numpoints = 150 ):
asubt := spacecurve( [1 + 11*t/7, 1 + 22*t/7, 1 + 33*t/7], t = 0..1, color = blue, axes = boxed):
asubn := spacecurve( [1 - 11*t/7, 1 - 8*t/7, 1 + 9*t/7], t = 0..1, color = blue, axes = boxed ):
parall1 := spacecurve( [18/7 - 11*t/7, 29/7- 8*t/7, 40/7 + 9*t/7], t = 0..1, color = cyan, axes = boxed ):
parall2 := spacecurve( [-4/7 + 11*t/7, -1/7 + 22*t/7, 16/7 + 33*t/7], t = 0..1, color = cyan, axes = boxed ):
xaxis := spacecurve( [t, 0, 0, t = -1..1, color = magenta] ):
yaxis := spacecurve( [0, t, 0, t = -1..1, color = magenta] ):
zaxis := spacecurve( [0, 0, t, t = -1..6, color = magenta] ):
labx := textplot3d([1.2, 0, -.2, `x`], color = magenta):
laby := textplot3d([0,1.2, -.2, `y`], color = magenta):
labz := textplot3d([0, 0, 6.5, `z`], color = magenta):
display(curve, accel, asubt, asubn, parall1, parall2, xaxis, yaxis, zaxis, labx, laby, labz); >

Finally, note that this decomposition of
a (1) provides a quick way to calculate the curvature (1) at t = 1 without the necessity for any ugly differentiating or computation of a cross product. Since the normal component of acceleration is  (1) N (1) = 14 (1)  =  ,

it follows that

14 (1) = and hence that (1) = = .

As you can check, that agrees with the result from Formula (10) in Section 14.3.