Curves in `*`(`^`(R, 2)) 

Curvature and moving frame
of abstract parametric curve in cartesian coordinates
 

Problem: 

Find curvature and moving frame of some abstract plane curve defined by parametric equations:  

Curve 

Plot_2d 

Solution: 

Load atlas package: 

> restart:
with(atlas):
 

Plane 

First of all we have to discribe the space we are working in. The space is 2-dimensional Eucledean (flat) space i.e. a plane. 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^2);
 

`*`(`^`(R, 2))(3.1.1)
 

> Forms(e[k]=1);
 

{e[k]}(3.1.2)
 

> Vectors(E[j]);
 

{E[j]}(3.1.3)
 

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

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

> Frame(E[k]);
 

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

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

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

> Connection(omega);
 

omega[i, j](3.1.7)
 

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

Abstract parametric curve 

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

A(3.2.1)
 

Define two functions on the curve:
Functions(xi=xi(tau),eta=eta(tau)); 

{eta, xi}(3.2.2)
 

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

{e[k], u[i]}(3.2.3)
 

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

{U[k]}(3.2.4)
 

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

[u[1] = d(tau)](3.2.5)
 

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

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

Declare mapping of the curve into `*`(`^`(R, 2)):
Mapping(pi,A,R^2,
                  x=xi,
                  y=eta);
 

 

pi
`.`(A, `--->`, `*`(`^`(R, 2)))(3.2.7)
 

Let us see the mapping attributes:
Who(pi); 

 

pi: mapping
table( [( frame ) = {U[1] = `+`(`*`(Diff(xi, tau), `*`(E[1])), `*`(Diff(eta, tau), `*`(E[2])))}, ( manifolds ) = [A, `*`(`^`(R, 2))], ( equations ) = [x = xi, y = eta], ( natural ) = {Diff(``, tau) = ...
table( [( frame ) = {U[1] = `+`(`*`(Diff(xi, tau), `*`(E[1])), `*`(Diff(eta, tau), `*`(E[2])))}, ( manifolds ) = [A, `*`(`^`(R, 2))], ( equations ) = [x = xi, y = eta], ( natural ) = {Diff(``, tau) = ...
table( [( frame ) = {U[1] = `+`(`*`(Diff(xi, tau), `*`(E[1])), `*`(Diff(eta, tau), `*`(E[2])))}, ( manifolds ) = [A, `*`(`^`(R, 2))], ( equations ) = [x = xi, y = eta], ( natural ) = {Diff(``, tau) = ...
(3.2.8)
 

Now we can calculate metric induced on the curve by the mapping. It is obvious that the metric gives squared differential of the curve's arc i.e. 

`*`(`^`(d(l), 2)) = `*`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `*`(`^`(d(tau), 2))) 

> Metric(G = g &/ pi);
 

G = `*`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `*`(`&.`(u[1], u[1])))(3.2.9)
 

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

table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(xi, tau), `*`(E[1])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `/`(1, 2)))), `/`(`*`(Diff(eta, tau), `*`(E[2])), `*`(...
table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(xi, tau), `*`(E[1])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `/`(1, 2)))), `/`(`*`(Diff(eta, tau), `*`(E[2])), `*`(...
table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(xi, tau), `*`(E[1])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `/`(1, 2)))), `/`(`*`(Diff(eta, tau), `*`(E[2])), `*`(...
table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(xi, tau), `*`(E[1])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `/`(1, 2)))), `/`(`*`(Diff(eta, tau), `*`(E[2])), `*`(...
(3.2.10)
 

Result 

The curve curvature:
k:=Inv['curvatures'][1];
 

`/`(`*`(`+`(`*`(Diff(eta, tau, tau), `*`(Diff(xi, tau))), `-`(`*`(Diff(xi, tau, tau), `*`(Diff(eta, tau)))))), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `/`(3, 2))))(3.3.1)
 

The curve moving frame:
X:=Inv['basis'][0];
Y:=Inv['basis'][1];
 

 

`+`(`/`(`*`(Diff(xi, tau), `*`(E[1])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `/`(1, 2)))), `/`(`*`(Diff(eta, tau), `*`(E[2])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `...
`+`(`-`(`/`(`*`(Diff(eta, tau), `*`(E[1])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2)), `*`(`^`(Diff(eta, tau), 2))), `/`(1, 2))))), `/`(`*`(Diff(xi, tau), `*`(E[2])), `*`(`^`(`+`(`*`(`^`(Diff(xi, tau), 2...(3.3.2)
 

Check the "orthonormality":
'g(X,Y)'=simplify(g(X,Y)); 

g(X, Y) = 0(3.3.3)
 

>