Digi Area Group - Math Tools for Professionals
   Maple and Mathematica packages - math tools for professionals

atlas™ - modern differential geometry for Maple™

> Features List & Examples
> Template Worksheets
> Screenshots
> Documentation & Downloads
> License & Pricing
> Buy Online

 
 
 
 
Google

Features List & Examples  |  Introduction  |  Dimension  |  Indexing  |  Forms  |  Metric  |  atlasWizard - Maplet™

Curvature and torsion of space curves  

Copyright © 2004-2010 by  DigiArea Group . All rights reserved.

Problem:

Find curvature, torsion, tangent, binormal and principal normal vectors of the following space curve:     PIECEWISE([x = a*cos(tau), ``],[y = a*sin(tau), ``],[z = b*tau, ``])

Solution:

Load atlas package:
restart:
with(atlas):

Space

First of all we have to describe the space we are working in. The space is 3-dimensional Euclidean (flat) space. To define the space we declare domain, forms, vectors, coframe, frame, flat metric and calculate connection (it equals to zero of cause).
Domain(R^3);

R^3

Forms(e[k]=1);

{e[k]}

Vectors(E[j]);

{E[j]}

Coframe(e[1]=d(x),e[2]=d(y),e[3]=d(z));

[e[1] = d(x), e[2] = d(y), e[3] = d(z)]

Frame(E[k]);

[E[1] = Diff(``,x), E[2] = Diff(``,y), E[3] = Diff(``,z)]

Metric(g=d(x)&.d(x)+d(y)&.d(y)+d(z)&.d(z));

g = `&.`(e[1],e[1])+`&.`(e[2],e[2])+`&.`(e[3],e[3])

Connection(omega);

omega[i,j]

Now the working space is defined completely and we can start to solve the problem.

Just for right simplification:
`atlas/simp`:=proc(a) factor(simplify(a)) end:

Curve

Define the curve as a manifold:
Domain(C);

C

Declare constants a and b:
Constants(a,b);

{_Z, Pi, b, Catalan, I, a, -I}

Declare 1-form for curve's coframe
Forms(u[i]=1);

{e[k], u[i]}

Declare vectors for curve's frame:
Vectors(U[k]);

{U[k]}

Declare coframe on the curve:
Coframe(u[1]=d(tau));

[u[1] = d(tau)]

Declare frame of the curve:
Frame(U[j]);

[U[1] = Diff(``,tau)]

Declare mapping of the curve into R^3 :
Mapping(pi,C,R^3,
                   x=a*cos(tau),
                   y=a*sin(tau),
                   z=b*tau);

pi

C.`--->`.(R^3)

One can also calculate metric induced on the curve by the mapping.
Metric(G = g &/ pi);

G = (a^2+b^2)*`&.`(u[1],u[1])

Calculate invariants of the mapping:
Inv:=Invariants(pi);

Inv := TABLE([curvatures = TABLE(zero,[1 = [a/(a^2+b^2)], 2 = [b/(a^2+b^2)*csgn(a^2+b^2)]]), basis = TABLE(zero,[0 = [-a*sin(tau)/(a^2+b^2)^(1/2)*E[1]+a*cos(tau)/(a^2+b^2)^(1/2)*E[2]+b*E[3]/(a^2+b^2)^(...
Inv := TABLE([curvatures = TABLE(zero,[1 = [a/(a^2+b^2)], 2 = [b/(a^2+b^2)*csgn(a^2+b^2)]]), basis = TABLE(zero,[0 = [-a*sin(tau)/(a^2+b^2)^(1/2)*E[1]+a*cos(tau)/(a^2+b^2)^(1/2)*E[2]+b*E[3]/(a^2+b^2)^(...
Inv := TABLE([curvatures = TABLE(zero,[1 = [a/(a^2+b^2)], 2 = [b/(a^2+b^2)*csgn(a^2+b^2)]]), basis = TABLE(zero,[0 = [-a*sin(tau)/(a^2+b^2)^(1/2)*E[1]+a*cos(tau)/(a^2+b^2)^(1/2)*E[2]+b*E[3]/(a^2+b^2)^(...
Inv := TABLE([curvatures = TABLE(zero,[1 = [a/(a^2+b^2)], 2 = [b/(a^2+b^2)*csgn(a^2+b^2)]]), basis = TABLE(zero,[0 = [-a*sin(tau)/(a^2+b^2)^(1/2)*E[1]+a*cos(tau)/(a^2+b^2)^(1/2)*E[2]+b*E[3]/(a^2+b^2)^(...
Inv := TABLE([curvatures = TABLE(zero,[1 = [a/(a^2+b^2)], 2 = [b/(a^2+b^2)*csgn(a^2+b^2)]]), basis = TABLE(zero,[0 = [-a*sin(tau)/(a^2+b^2)^(1/2)*E[1]+a*cos(tau)/(a^2+b^2)^(1/2)*E[2]+b*E[3]/(a^2+b^2)^(...
Inv := TABLE([curvatures = TABLE(zero,[1 = [a/(a^2+b^2)], 2 = [b/(a^2+b^2)*csgn(a^2+b^2)]]), basis = TABLE(zero,[0 = [-a*sin(tau)/(a^2+b^2)^(1/2)*E[1]+a*cos(tau)/(a^2+b^2)^(1/2)*E[2]+b*E[3]/(a^2+b^2)^(...

Extract tangent normalized vector field:
T=Inv[basis][0];

T = -a*sin(tau)/(a^2+b^2)^(1/2)*E[1]+a*cos(tau)/(a^2+b^2)^(1/2)*E[2]+b*E[3]/(a^2+b^2)^(1/2)

Extract normal normalized vector field:
N=Inv[basis][1];

N = -cos(tau)*E[1]-sin(tau)*E[2]

Extract binormal normalized vector field:
B=Inv[basis][2];

B = sin(tau)*b/(a^2+b^2)^(1/2)*csgn(a^2+b^2)*E[1]-cos(tau)*b/(a^2+b^2)^(1/2)*csgn(a^2+b^2)*E[2]+a/(a^2+b^2)^(1/2)*csgn(a^2+b^2)*E[3]

Extract curvature of the curve:
k=Inv[curvatures][1];

k = a/(a^2+b^2)

Extract torsion of the curve:
chi=Inv[curvatures][2];

chi = b/(a^2+b^2)*csgn(a^2+b^2)