Curvature, T, N, & B

A classic topic in multivariable calculus involves the study of a vector valued function {\bf r}(t)=\langle x(t),y(t),z(t) \rangle using the three canonical unit vectors —  the tangent vector {\bf T}(t), the normal vector {\bf N}(t), and the Binormal vector {\bf B}(t) — and the scalar curvature \kappa(t).

Here are maxima functions that compute these, called
unitT, unitN, unitB, and curvature.  For a vector valued function {\bf r}(t), these are called as

T(t):=unitT(r(t),t);

You can download the .mac file here.

/* unitT computes the unit tangent vector for a vector valued function
of a scalar variable r(t)=[x(t),y(t),z(t)] */

unitT(r,t):=
block([rp,rpn,T],
define(rp(t),diff(r,t)),
define(rpn(t),sqrt(rp(t).rp(t))),
define(T(t),rp(t)/rpn(t)),
trigsimp(T(t))
)$

/* unitN computes the unit normal vector for a vector valued function
of a scalar variable r(t)=[x(t),y(t),z(t)]
unitN requires unitT */

unitN(r,t):=
block([T,Tp,Tpn,N],
define(T(t),unitT(r,t)),
define(Tp(t),diff(T(t),t)),
define(Tpn(t),sqrt(Tp(t).Tp(t))),
define(N(t),Tp(t)/Tpn(t)),
trigsimp(N(t))
)$

/* unitB computes the unit normal vector for a vector valued function
of a scalar variable r(t)=[x(t),y(t),z(t)]
unitB requires unitT and unitN */

unitB(r,t):=
block([T,N,B],
define(T(t),unitT(r,t)),
define(N(t),unitN(r,t)),
define(B(t),[T(t)[2]*N(t)[3]-T(t)[3]*N(t)[2],
T(t)[3]*N(t)[1]-T(t)[1]*N(t)[3],
T(t)[1]*N(t)[2]-T(t)[2]*N(t)[1]]),
trigsimp(B(t))
)$

/* curvature computes the curvature
curvature requires unitT */

curvature(r,t):=
block([T,Tdot,rdot,K],
define(T(t),unitT(r,t)),
define(Tdot(t),diff(T(t),t)),
define(rdot(t),diff(r,t)),
define(K(t),trigsimp(sqrt(Tdot(t).Tdot(t)/rdot(t).rdot(t)))),
K(t)
)$

 

Advertisement

One thought on “Curvature, T, N, & B”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: