| Curvature and moving frame of abstract parametric curve in polar coordinates Copyright © 2004-2008 by DigiArea Group . All rights reserved. Problem: Find curvature of the abstract plane curve defined by parametric equation: Curve ![[Maple Plot]](prod/atlas/Templates/images/images/abs2polar.png)
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 equals to zero of cause). Domain(R^2); 
Forms(e[k]=1); ![{e[k]}](prod/atlas/Templates/images/abs2polar5.gif)
Vectors(E[j]); ![{E[j]}](prod/atlas/Templates/images/abs2polar6.gif)
Coframe(e[1]=d(x),e[2]=d(y)); ![[e[1] = d(x), e[2] = d(y)]](prod/atlas/Templates/images/abs2polar7.gif)
Frame(E[k]); ![[E[1] = Diff(``,x), E[2] = Diff(``,y)]](prod/atlas/Templates/images/abs2polar8.gif)
Metric(g=d(x)&.d(x)+d(y)&.d(y)); ![g = `&.`(e[1],e[1])+`&.`(e[2],e[2])](prod/atlas/Templates/images/abs2polar9.gif)
Connection(omega); ![omega[i,j]](prod/atlas/Templates/images/abs2polar10.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: Plane (polar coordinate system) To solve the problem we have to change coordinate system on manifold from Cartesian to polar. We can do it easily just by definition of another Eucledean domain Domain(E^2); 
Forms(z[k]=1); ![{e[k], z[k]}](prod/atlas/Templates/images/abs2polar13.gif)
Vectors(Z[j]); ![{Z[j]}](prod/atlas/Templates/images/abs2polar14.gif)
Coframe(z[1]=d(r),z[2]=d(phi)); ![[z[1] = d(r), z[2] = d(phi)]](prod/atlas/Templates/images/abs2polar15.gif)
Frame(Z[k]); ![[Z[1] = Diff(``,r), Z[2] = Diff(``,phi)]](prod/atlas/Templates/images/abs2polar16.gif)
Mapping(psi,E^2,R^2, x=r*cos(phi), y=r*sin(phi)); 

Let us see mapping attributes: Who(psi);
psi: mapping
![TABLE([manifolds = [E^2, R^2], coframe = {e[1] = z[1]*cos(phi)-r*sin(phi)*z[2], e[2] = z[1]*sin(phi)+r*cos(phi)*z[2]}, equations = [x = r*cos(phi), y = r*sin(phi)], frame = {Z[1] = cos(phi)*E[1]+sin(ph...](prod/atlas/Templates/images/abs2polar24.gif)
Now we can calculate metric induced by the mapping: Metric(h = g &/ psi); ![h = `&.`(z[1],z[1])+r^2*`&.`(z[2],z[2])](prod/atlas/Templates/images/abs2polar25.gif)
Calculation of the corresponding connection: Connection(Gamma); ![Gamma[i,j]](prod/atlas/Templates/images/abs2polar26.gif)
Now we can continue. Abstract curve Define the curve as a manifold: Domain(A); 
Declare function : Functions(rho=rho(t)); 
Declare 1-form for curve's coframe Forms(u[i]=1); ![{e[k], z[k], u[i]}](prod/atlas/Templates/images/abs2polar30.gif)
Declare vectors for curve's frame: Vectors(U[k]); ![{U[k]}](prod/atlas/Templates/images/abs2polar31.gif)
Declare coframe on the curve: Coframe(u[1]=d(t)); ![[u[1] = d(t)]](prod/atlas/Templates/images/abs2polar32.gif)
Declare frame of the curve: Frame(U[l]); ![[U[1] = Diff(``,t)]](prod/atlas/Templates/images/abs2polar33.gif)
Declare mapping of the curve into : Mapping(pi,A,E^2, r=rho, phi=t); 

Let us see the domain attributes: Who(pi);
pi: mapping
![TABLE([manifolds = [A, E^2], coframe = {z[1] = Diff(rho,t)*u[1], z[2] = u[1]}, equations = [r = rho, phi = t], frame = {U[1] = Diff(rho,t)*Z[1]+Z[2]}, natural = {Diff(``,t) = Diff(rho,t)*Diff(``,r)+Dif...](prod/atlas/Templates/images/abs2polar40.gif)
Calculate metric on the curve using `&/` operator: Metric(G = h &/ pi); ![G = (Diff(rho,t)^2+rho^2)*`&.`(u[1],u[1])](prod/atlas/Templates/images/abs2polar41.gif)
Calculate invariants of the mapping: Inv:=Invariants(pi); ![Inv := TABLE([curvatures = TABLE(zero,[1 = [(-rho^2+Diff(rho,`$`(t,2))*rho-2*Diff(rho,t)^2)/(Diff(rho,t)^2+rho^2)^(3/2)]]), basis = TABLE(zero,[0 = [Diff(rho,t)/(Diff(rho,t)^2+rho^2)^(1/2)*Z[1]+Z[2]/(D...](prod/atlas/Templates/images/abs2polar46.gif)
Result The curve curvature: k:=Inv['curvatures'][1]; 
The curve moving frame: X:=Inv['basis'][0]; Y:=Inv['basis'][1]; ![X := Diff(rho,t)/(Diff(rho,t)^2+rho^2)^(1/2)*Z[1]+Z[2]/(Diff(rho,t)^2+rho^2)^(1/2)](prod/atlas/Templates/images/abs2polar48.gif)
![Y := 1/(Diff(rho,t)^2+rho^2)^(1/2)*rho*Z[1]-Diff(rho,t)/(Diff(rho,t)^2+rho^2)^(1/2)/rho*Z[2]](prod/atlas/Templates/images/abs2polar49.gif)
Check the "orthonormality": 'h(X,Y)'=subs({r=rho,phi=tau},h(X,Y)); 
|