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

Curvature and moving frame
of abstract parametric curve in polar coordinates
 

Problem: 

Find curvature of the abstract plane curve defined by parametric equation: r = rho(phi)  

Curve 

Plot_2d 

Solution: 

Load atlas package: 

> restart:
with(atlas):
 

Plane (cartesian coordinate system) 

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. 

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

Plane (polar coordinate system) 

To solve the problem we have to change coordinate system on manifold `*`(`^`(R, 2)) from Cartesian to polar. We can do it easily just by definition of another Eucledean domain 

> Domain(E^2);
 

`*`(`^`(E, 2))(3.2.1)
 

> Forms(z[k]=1);
 

{e[k], z[k]}(3.2.2)
 

> Vectors(Z[j]);
 

{Z[j]}(3.2.3)
 

> Coframe(z[1]=d(r),z[2]=d(phi));
 

[z[1] = d(r), z[2] = d(phi)](3.2.4)
 

> Frame(Z[k]);
 

[Z[1] = Diff(``, r), Z[2] = Diff(``, phi)](3.2.5)
 

> Mapping(psi,E^2,R^2,
                  x=r*cos(phi),
                  y=r*sin(phi));
 

 

psi
`.`(`*`(`^`(E, 2)), `--->`, `*`(`^`(R, 2)))(3.2.6)
 

Let us see mapping attributes:
Who(psi); 

 

psi: mapping
table( [( frame ) = {Z[1] = `+`(`*`(cos(phi), `*`(E[1])), `*`(sin(phi), `*`(E[2]))), Z[2] = `+`(`-`(`*`(r, `*`(sin(phi), `*`(E[1])))), `*`(r, `*`(cos(phi), `*`(E[2]))))}, ( equations ) = [x = `*`(r, `...
table( [( frame ) = {Z[1] = `+`(`*`(cos(phi), `*`(E[1])), `*`(sin(phi), `*`(E[2]))), Z[2] = `+`(`-`(`*`(r, `*`(sin(phi), `*`(E[1])))), `*`(r, `*`(cos(phi), `*`(E[2]))))}, ( equations ) = [x = `*`(r, `...
table( [( frame ) = {Z[1] = `+`(`*`(cos(phi), `*`(E[1])), `*`(sin(phi), `*`(E[2]))), Z[2] = `+`(`-`(`*`(r, `*`(sin(phi), `*`(E[1])))), `*`(r, `*`(cos(phi), `*`(E[2]))))}, ( equations ) = [x = `*`(r, `...
table( [( frame ) = {Z[1] = `+`(`*`(cos(phi), `*`(E[1])), `*`(sin(phi), `*`(E[2]))), Z[2] = `+`(`-`(`*`(r, `*`(sin(phi), `*`(E[1])))), `*`(r, `*`(cos(phi), `*`(E[2]))))}, ( equations ) = [x = `*`(r, `...
table( [( frame ) = {Z[1] = `+`(`*`(cos(phi), `*`(E[1])), `*`(sin(phi), `*`(E[2]))), Z[2] = `+`(`-`(`*`(r, `*`(sin(phi), `*`(E[1])))), `*`(r, `*`(cos(phi), `*`(E[2]))))}, ( equations ) = [x = `*`(r, `...
(3.2.7)
 

Now we can calculate metric induced by the mapping:
Metric(h = g &/ psi); 

h = `+`(`&.`(z[1], z[1]), `*`(`^`(r, 2), `*`(`&.`(z[2], z[2]))))(3.2.8)
 

Calculation of the corresponding connection:
Connection(Gamma); 

Gamma[i, j](3.2.9)
 

Now we can continue. 

Abstract curve 

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

A(3.3.1)
 

Declare function rho = rho(t):
Functions(rho=rho(t)); 

{rho}(3.3.2)
 

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

{e[k], u[i], z[k]}(3.3.3)
 

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

{U[k]}(3.3.4)
 

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

[u[1] = d(t)](3.3.5)
 

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

[U[1] = Diff(``, t)](3.3.6)
 

Declare mapping of the curve into `*`(`^`(E, 2)):
Mapping(pi,A,E^2,
            r=rho,
            phi=t);
 

 

pi
`.`(A, `--->`, `*`(`^`(E, 2)))(3.3.7)
 

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

 

pi: mapping
table( [( frame ) = {U[1] = `+`(`*`(Diff(rho, t), `*`(Z[1])), Z[2])}, ( equations ) = [r = rho, phi = t], ( manifolds ) = [A, `*`(`^`(E, 2))], ( coframe ) = {z[1] = `*`(Diff(rho, t), `*`(u[1])), z[2] ...
table( [( frame ) = {U[1] = `+`(`*`(Diff(rho, t), `*`(Z[1])), Z[2])}, ( equations ) = [r = rho, phi = t], ( manifolds ) = [A, `*`(`^`(E, 2))], ( coframe ) = {z[1] = `*`(Diff(rho, t), `*`(u[1])), z[2] ...
table( [( frame ) = {U[1] = `+`(`*`(Diff(rho, t), `*`(Z[1])), Z[2])}, ( equations ) = [r = rho, phi = t], ( manifolds ) = [A, `*`(`^`(E, 2))], ( coframe ) = {z[1] = `*`(Diff(rho, t), `*`(u[1])), z[2] ...
(3.3.8)
 

Calculate metric on the curve using `&/` operator:
Metric(G = h &/ pi); 

G = `*`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `*`(`&.`(u[1], u[1])))(3.3.9)
 

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

table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(rho, t), `*`(Z[1])), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(1, 2)))), `/`(`*`(Z[2]), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)),...
table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(rho, t), `*`(Z[1])), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(1, 2)))), `/`(`*`(Z[2]), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)),...
table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(rho, t), `*`(Z[1])), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(1, 2)))), `/`(`*`(Z[2]), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)),...
table( [( basis ) = table( [( 0 ) = [`+`(`/`(`*`(Diff(rho, t), `*`(Z[1])), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(1, 2)))), `/`(`*`(Z[2]), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)),...
(3.3.10)
 

Result 

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

`/`(`*`(`+`(`*`(2, `*`(`^`(Diff(rho, t), 2))), `*`(`^`(rho, 2)), `-`(`*`(Diff(rho, t, t), `*`(rho))))), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(3, 2))))(3.4.1)
 

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

 

`+`(`/`(`*`(Diff(rho, t), `*`(Z[1])), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(1, 2)))), `/`(`*`(Z[2]), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(1, 2)))))
`+`(`/`(`*`(Diff(rho, t), `*`(Z[2])), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho, 2))), `/`(1, 2)), `*`(rho))), `-`(`/`(`*`(rho, `*`(Z[1])), `*`(`^`(`+`(`*`(`^`(Diff(rho, t), 2)), `*`(`^`(rho,...(3.4.2)
 

Check the "orthonormality":
'h(X,Y)'=subs({r=rho,phi=tau},h(X,Y)); 

h(X, Y) = 0(3.4.3)
 

>