Curves in
Curvature and torsion of space curves
Find curvature, torsion, tangent, binormal and principal normal vectors of the following space curve:
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 is equal to zero of course).
| > | Domain(R^3); |
| (2.1.1) |
| > | Forms(e[k]=1); |
| (2.1.2) |
| > | Vectors(E[j]); |
| (2.1.3) |
| > | Coframe(e[1]=d(x),e[2]=d(y),e[3]=d(z)); |
| (2.1.4) |
| > | Frame(E[k]); |
| (2.1.5) |
| > | Metric(g=d(x)&.d(x)+d(y)&.d(y)+d(z)&.d(z)); |
| (2.1.6) |
| > | Connection(omega); |
| (2.1.7) |
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);
| (2.2.1) |
Declare constants a and b:
Constants(a,b);
| (2.2.2) |
Declare 1-form for curve's coframe
Forms(u[i]=1);
| (2.2.3) |
Declare vectors for curve's frame:
Vectors(U[k]);
| (2.2.4) |
Declare coframe on the curve:
Coframe(u[1]=d(tau));
| (2.2.5) |
Declare frame of the curve:
Frame(U[j]);
| (2.2.6) |
Declare mapping of the curve into
:
Mapping(pi,C,R^3,
x=a*cos(tau),
y=a*sin(tau),
z=b*tau);
| (2.2.7) |
One can also calculate metric induced on the curve by the mapping.
| > | Metric(G = g &/ pi); |
| (2.2.8) |
Calculate invariants of the mapping:
Inv:=Invariants(pi);
![]() ![]() ![]() ![]() ![]() | (2.2.9) |
Extract tangent normalized vector field:
| > | T=Inv[basis][0]; |
![]() | (2.2.10) |
Extract normal normalized vector field:
| > | N=Inv[basis][1]; |
| (2.2.11) |
Extract binormal normalized vector field:
| > | B=Inv[basis][2]; |
![]() ![]() | (2.2.12) |
Extract curvature of the curve:
| > | k=Inv[curvatures][1]; |
| (2.2.13) |
Extract torsion of the curve:
| > | chi=Inv[curvatures][2]; |
![]() | (2.2.14) |
| > |

![table( [( basis ) = table( [( 0 ) = [`+`(`-`(`/`(`*`(a, `*`(sin(tau), `*`(E[1]))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2))))), `/`(`*`(a, `*`(cos(tau), `*`(E[2]))), `*`(`^`(`+`(`*`(`^`...](Maple/atlas/Templates/images/spiral_20.gif)
![table( [( basis ) = table( [( 0 ) = [`+`(`-`(`/`(`*`(a, `*`(sin(tau), `*`(E[1]))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2))))), `/`(`*`(a, `*`(cos(tau), `*`(E[2]))), `*`(`^`(`+`(`*`(`^`...](Maple/atlas/Templates/images/spiral_21.gif)
![table( [( basis ) = table( [( 0 ) = [`+`(`-`(`/`(`*`(a, `*`(sin(tau), `*`(E[1]))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2))))), `/`(`*`(a, `*`(cos(tau), `*`(E[2]))), `*`(`^`(`+`(`*`(`^`...](Maple/atlas/Templates/images/spiral_22.gif)
![table( [( basis ) = table( [( 0 ) = [`+`(`-`(`/`(`*`(a, `*`(sin(tau), `*`(E[1]))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2))))), `/`(`*`(a, `*`(cos(tau), `*`(E[2]))), `*`(`^`(`+`(`*`(`^`...](Maple/atlas/Templates/images/spiral_23.gif)
![table( [( basis ) = table( [( 0 ) = [`+`(`-`(`/`(`*`(a, `*`(sin(tau), `*`(E[1]))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2))))), `/`(`*`(a, `*`(cos(tau), `*`(E[2]))), `*`(`^`(`+`(`*`(`^`...](Maple/atlas/Templates/images/spiral_24.gif)
![T = `+`(`-`(`/`(`*`(a, `*`(sin(tau), `*`(E[1]))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2))))), `/`(`*`(a, `*`(cos(tau), `*`(E[2]))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, ...](Maple/atlas/Templates/images/spiral_25.gif)
![B = `+`(`/`(`*`(sin(tau), `*`(b, `*`(csgn(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2)))), `*`(E[1])))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2)))), `-`(`/`(`*`(cos(tau), `*`(b, `*`(csgn(`+`(`*`(`...](Maple/atlas/Templates/images/spiral_27.gif)
![B = `+`(`/`(`*`(sin(tau), `*`(b, `*`(csgn(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2)))), `*`(E[1])))), `*`(`^`(`+`(`*`(`^`(a, 2)), `*`(`^`(b, 2))), `/`(1, 2)))), `-`(`/`(`*`(cos(tau), `*`(b, `*`(csgn(`+`(`*`(`...](Maple/atlas/Templates/images/spiral_28.gif)
