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, ``])](prod/atlas/Templates/images/spiral2.gif) 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); 
Forms(e[k]=1); ![{e[k]}](prod/atlas/Templates/images/spiral4.gif)
Vectors(E[j]); ![{E[j]}](prod/atlas/Templates/images/spiral5.gif)
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)]](prod/atlas/Templates/images/spiral6.gif)
Frame(E[k]); ![[E[1] = Diff(``,x), E[2] = Diff(``,y), E[3] = Diff(``,z)]](prod/atlas/Templates/images/spiral7.gif)
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])](prod/atlas/Templates/images/spiral8.gif)
Connection(omega); ![omega[i,j]](prod/atlas/Templates/images/spiral9.gif)
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); 
Declare constants a and b: Constants(a,b); 
Declare 1-form for curve's coframe Forms(u[i]=1); ![{e[k], u[i]}](prod/atlas/Templates/images/spiral12.gif)
Declare vectors for curve's frame: Vectors(U[k]); ![{U[k]}](prod/atlas/Templates/images/spiral13.gif)
Declare coframe on the curve: Coframe(u[1]=d(tau)); ![[u[1] = d(tau)]](prod/atlas/Templates/images/spiral14.gif)
Declare frame of the curve: Frame(U[j]); ![[U[1] = Diff(``,tau)]](prod/atlas/Templates/images/spiral15.gif)
Declare mapping of the curve into : Mapping(pi,C,R^3, x=a*cos(tau), y=a*sin(tau), z=b*tau); 

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])](prod/atlas/Templates/images/spiral19.gif)
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)^(...](prod/atlas/Templates/images/spiral25.gif)
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)](prod/atlas/Templates/images/spiral26.gif)
Extract normal normalized vector field: N=Inv[basis][1]; ![N = -cos(tau)*E[1]-sin(tau)*E[2]](prod/atlas/Templates/images/spiral27.gif)
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]](prod/atlas/Templates/images/spiral28.gif)
Extract curvature of the curve: k=Inv[curvatures][1]; 
Extract torsion of the curve: chi=Inv[curvatures][2]; 
|