Digi Area Group - Math Tools for Professionals
   Maple and Mathematica packages - math tools for professionals

atlas™ - modern differential geometry for Maple™

> Features List & Examples
> Template Worksheets
> Screenshots
> Documentation & Downloads
> License & Pricing
> Buy Online

 
 
 
 
Google

Features List & Examples  |  Introduction  |  Dimension  |  Indexing  |  Forms  |  Metric  |  atlasWizard - Maplet™

atlas[`&D`] - differential of a mapping

Calling Sequence:

     Expr &D MapId

Parameters:

      MapId - variable  - the mapping identifier  i.e. MapId : dom1 ---> dom2
      Expr - expression - a tensor expression

Description:

  • The &D  procedure calculates mapping differential of a tensor field. The mapping differential is linear  defined operation on [k,0] tensors in a point only. The definition is as follows.
  • Let M and N be manifolds of dimensions m = dim(M), n = dim(N). Let F be mapping between the manifolds: F:proc (M) options operator, arrow; N end procdefined by functions:

    PIECEWISE([``, y[1] = y[1](x[1],x[2],`` .. x[m])],[``, y[2] = y[2](x[1],x[2],`` .. x[m])],[``, `.........`],[``, y[n] = y[n](x[1],x[2],`` .. x[m])])

    where
    {x[1], x[2], `` .. x[m]}are local coordinates on M and {y[1], y[2], `` .. y[n]}are local coordinates on N (in some domains).
  • The differential of  F is mapping F[`*`]of corresponding tangent spaces F[`*`]: proc (TM) options operator, arrow; TN end proc in a point.
  • For any [1,0] tensor field T on M  F[`*`](T)is tensor field Omega = `&D`(T,F)on N with components Omega^j = Sum(T^i*Diff(y[j],x[i]),i = 1 .. n)in local coordinates.
  • For tensor product of any [k, 0] tensor fields T[1], T[2]on M the following formula takes place: `&/`(`&.`(T[1],T[2]),F) = `&.`(`&/`(T[1],F),`&/`(T[2],F))
  • The formulas considered above defined linear operator &D completely.

Examples:

The following example shows how the operator can be used.
Let M be 2-dimentional sphere
S^2and N be 3-dimensional Euclidean space R^3. Let F:proc (M) options operator, arrow; N end proc be standard embedding of sphere S^2into R^3.
restart:
with(atlas):

This procedure is presented just for appropriate simplification (see atlas[simp] ).
`atlas/simp`:=proc(a) normal(a);subs({cos(theta)^2=1-sin(theta)^2,cos(phi)^2=1-sin(phi)^2},%);normal(%); factor(%) end;

`atlas/simp` := proc (a) normal(a); subs({cos(theta)^2 = 1-sin(theta)^2, cos(phi)^2 = 1-sin(phi)^2},%); normal(%); factor(%) end proc
`atlas/simp` := proc (a) normal(a); subs({cos(theta)^2 = 1-sin(theta)^2, cos(phi)^2 = 1-sin(phi)^2},%); normal(%); factor(%) end proc
`atlas/simp` := proc (a) normal(a); subs({cos(theta)^2 = 1-sin(theta)^2, cos(phi)^2 = 1-sin(phi)^2},%); normal(%); factor(%) end proc

Declare 1-forms e[j] and u[k] for corresponding coframes:
Forms(e[j]=1,u[k]=1);

{e[j], u[k]}

Declare vectors for corresponding frames:
Vectors(E[j],U[k]);

{E[j], U[k]}

Declare Euclidean space - R^3 :
Domain(R^3);

R^3

Declare coframe on R^3 :
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)]

Declare frame on R^3 :
Frame(E[j]);

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

Declare metric on R^3  (standard flat metric):
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])

Declare sphere - S^2 :
Domain(S^2);

S^2

Declare coframe on S^2 :
Coframe(u[1]=d(theta),u[2]=d(phi));

[u[1] = d(theta), u[2] = d(phi)]

Declare frame on S^2 :
Frame(U[j]);

[U[1] = Diff(``,theta), U[2] = Diff(``,phi)]

Declare definite mapping F:proc (S) options operator, arrow; R^3 end proc :
Mapping(F,S^2,R^3,
        x=sin(theta)*cos(phi),
        y=sin(theta)*sin(phi),
        z=cos(theta));

F

S^2.`--->`.(R^3)

Who(F);


F: mapping


TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...
TABLE([natural = {Diff(``,theta) = cos(theta)*cos(phi)*Diff(``,x)+cos(theta)*sin(phi)*Diff(``,y)-sin(theta)*Diff(``,z), Diff(``,phi) = -sin(theta)*sin(phi)*Diff(``,x)+sin(theta)*cos(phi)*Diff(``,y)}, e...

Verify that we are on the sphere:
Domain();

S^2

Calculate metric induced on the sphere using &/ operator:
Metric(G = g &/ F);

G = `&.`(u[1],u[1])+sin(theta)^2*`&.`(u[2],u[2])

One can calculate restriction of any [k,0] tensor field on S^2  under the mapping:

For of frame vectors:
'U[1] &D F'=U[1] &D F;
'U[2] &D F'=U[2] &D F;

`&D`(U[1],F) = cos(theta)*cos(phi)*E[1]+cos(theta)*sin(phi)*E[2]-sin(theta)*E[3]

`&D`(U[2],F) = -sin(theta)*(sin(phi)*E[1]-cos(phi)*E[2])

Restriction of tensor product d(x)&.d(z):
'(U[1]&.U[2]) &D F'=(U[1]&.U[2]) &D F;

`&D`(`&.`(U[1],U[2]),F) = cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[2],E[2])-cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[1],E[1])-cos(theta)*sin(phi)^2*sin(theta)*`&.`(E[2],E[1])-cos(theta)*(si...
`&D`(`&.`(U[1],U[2]),F) = cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[2],E[2])-cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[1],E[1])-cos(theta)*sin(phi)^2*sin(theta)*`&.`(E[2],E[1])-cos(theta)*(si...
`&D`(`&.`(U[1],U[2]),F) = cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[2],E[2])-cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[1],E[1])-cos(theta)*sin(phi)^2*sin(theta)*`&.`(E[2],E[1])-cos(theta)*(si...
`&D`(`&.`(U[1],U[2]),F) = cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[2],E[2])-cos(theta)*cos(phi)*sin(theta)*sin(phi)*`&.`(E[1],E[1])-cos(theta)*sin(phi)^2*sin(theta)*`&.`(E[2],E[1])-cos(theta)*(si...

For metric tensor:
dual(G);
(% &D F);

`&.`(U[1],U[1])+1/sin(theta)^2*`&.`(U[2],U[2])

-(sin(theta)*sin(phi)-1)*(sin(theta)*sin(phi)+1)*`&.`(E[2],E[2])+(1-sin(theta)^2+sin(theta)^2*sin(phi)^2)*`&.`(E[1],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`&.`(E[2],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`...
-(sin(theta)*sin(phi)-1)*(sin(theta)*sin(phi)+1)*`&.`(E[2],E[2])+(1-sin(theta)^2+sin(theta)^2*sin(phi)^2)*`&.`(E[1],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`&.`(E[2],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`...
-(sin(theta)*sin(phi)-1)*(sin(theta)*sin(phi)+1)*`&.`(E[2],E[2])+(1-sin(theta)^2+sin(theta)^2*sin(phi)^2)*`&.`(E[1],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`&.`(E[2],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`...
-(sin(theta)*sin(phi)-1)*(sin(theta)*sin(phi)+1)*`&.`(E[2],E[2])+(1-sin(theta)^2+sin(theta)^2*sin(phi)^2)*`&.`(E[1],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`&.`(E[2],E[1])-sin(theta)^2*sin(phi)*cos(phi)*`...

Some more examples

Declare abstract mapping between S^2  and R^3 :
Mapping(Phi,S^2,R^3);

Phi

S^2.`--->`.(R^3)

For abstract mapping Phi :
'(U[1] &. U[2]) &D Phi'=(U[1] &. U[2]) &D Phi;

`&D`(`&.`(U[1],U[2]),Phi) = Diff(x,theta)*Diff(x,phi)*`&.`(E[1],E[1])+Diff(x,theta)*Diff(y,phi)*`&.`(E[1],E[2])+Diff(x,theta)*Diff(z,phi)*`&.`(E[1],E[3])+Diff(y,theta)*Diff(x,phi)*`&.`(E[2],E[1])+Diff(...
`&D`(`&.`(U[1],U[2]),Phi) = Diff(x,theta)*Diff(x,phi)*`&.`(E[1],E[1])+Diff(x,theta)*Diff(y,phi)*`&.`(E[1],E[2])+Diff(x,theta)*Diff(z,phi)*`&.`(E[1],E[3])+Diff(y,theta)*Diff(x,phi)*`&.`(E[2],E[1])+Diff(...
`&D`(`&.`(U[1],U[2]),Phi) = Diff(x,theta)*Diff(x,phi)*`&.`(E[1],E[1])+Diff(x,theta)*Diff(y,phi)*`&.`(E[1],E[2])+Diff(x,theta)*Diff(z,phi)*`&.`(E[1],E[3])+Diff(y,theta)*Diff(x,phi)*`&.`(E[2],E[1])+Diff(...
`&D`(`&.`(U[1],U[2]),Phi) = Diff(x,theta)*Diff(x,phi)*`&.`(E[1],E[1])+Diff(x,theta)*Diff(y,phi)*`&.`(E[1],E[2])+Diff(x,theta)*Diff(z,phi)*`&.`(E[1],E[3])+Diff(y,theta)*Diff(x,phi)*`&.`(E[2],E[1])+Diff(...

Who is who?
Who();

PIECEWISE([{R^3, S^2}, Domains],[{Phi, F}, Mappings],[{G, g, E[j], U[k], e[j], u[k]}, Tensors],[{e[j], u[k]}, Forms],[{_Z, Pi, I, Catalan, -I}, Constants],[{}, Functions])

See Also:

atlas , atlas[Mapping] , atlas[Domain] , atlas[`&/`] .