A classic topic in multivariable calculus involves the study of a vector valued function using the three canonical unit vectors — the tangent vector , the normal vector , and the Binormal vector — and the scalar curvature .

Here are maxima functions that compute these, called

unitT, unitN, unitB, and curvature. For a vector valued function , 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)

)$

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