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[Functions] - declaration of functions

Calling Sequence:

     Functions(F1=F1(x1, x2, ...,xn), F2=F2(y1, y2, ..., ym), ..., Fk=Fk(z1, z2, ..., zj))

Parameters:

      Fk=Fk(z1, z2, ..., zj)  - equations where Fk-function identifier and zj - variables.

Description:

  • In the atlas  package any identifier is treated as 0-form  i.e. as non-constant scalar  (if it not declared as constant, p-form, tensor etc. (see atlas[types] )).
  • The Functions procedure declares functions. In the atlas  package a function is non-constant 0-form which depends on other 0-forms.
  • There are two different syntax of function declaration.
  • Use first one f=f(x,y,z) to declare function f which depends on x, y, and z;
  • Use second one F=F(x[i]) i.e. F = F(x[i])  to declare function F which depends on x[i]  if the working dimension is numeric or x[1], x[2], `` .. x[n]  if the dimension is symbolic (see atlas[dim] ).
  • The function identifier can be either symbol or indexed value (see examples below).

Examples:
restart:
with(atlas):

Declare alpha[j]  as a constant:
Constants(alpha[k]);

{Catalan, I, _Z, Pi, -I, alpha[k]}

Declare H[i], alpha[i,j], F, z, f, h  as functions:
Functions(f=f(x,y),h=h(phi,psi,chi),z=z(f,h),F=F(x[i]),
H[i]=H[i](x,y,x[k],y[j]),alpha[i,j]=alpha[i,j](x[k]));

{z, h, f, F, H[i], alpha[i,j]}

Varify that f is a function using exterior derivative operator (see atlas[d] ):
'd(f)'=d(f);

d(f) = Diff(f,x)*d(x)+Diff(f,y)*d(y)

Verify that h is a function:
'd(h)'=d(h);

d(h) = Diff(h,phi)*d(phi)+Diff(h,psi)*d(psi)+Diff(h,chi)*d(chi)

Another example:
'd(z)'=d(z);

d(z) = Diff(z,f)*(Diff(f,x)*d(x)+Diff(f,y)*d(y))+Diff(z,h)*(Diff(h,phi)*d(phi)+Diff(h,psi)*d(psi)+Diff(h,chi)*d(chi))

Some more examples
'd(F)'=d(F);

d(F) = Sum(Diff(F,x[l[1]])*d(x[l[1]]),l[1] = 1 .. dim)

'd(f*F)'=d(f*F);

d(f*F) = (Diff(f,x)*d(x)+Diff(f,y)*d(y))*F+f*Sum(Diff(F,x[l[2]])*d(x[l[2]]),l[2] = 1 .. dim)

As H[i] = H[i](x,y,x[k],y[j])then:
'd(H[j])'=d(H[j]);

d(H[j]) = Diff(H[j],x)*d(x)+Diff(H[j],y)*d(y)+Sum(Diff(H[j],x[l[1]])*d(x[l[1]]),l[1] = 1 .. dim)+Sum(Diff(H[j],y[l[1]])*d(y[l[1]]),l[1] = 1 .. dim)

But H[i,j]  and H  are just 0-forms:
'd(H[i,j])'=d(H[i,j]);
'd(H)'=d(H);

d(H[i,j]) = d(H[i,j])

d(H) = d(H)

As alpha[i,j] = alpha[i,j](x[k]) then:
'd(alpha[n,m])'=d(alpha[n,m]);

d(alpha[n,m]) = Sum(Diff(alpha[n,m],x[l[1]])*d(x[l[1]]),l[1] = 1 .. dim)

As alpha[i]is a constant then:
'd(alpha[i])'=d(alpha[i]);

d(alpha[i]) = 0

But:
'd(alpha[i,j,k])'=d(alpha[i,j,k]);

d(alpha[i,j,k]) = d(alpha[i,j,k])

And more - using exterior product operator (see atlas[`&^`] ):
'd(f)&^d(phi)'=d(f)&^d(phi);

`&^`(d(f),d(phi)) = -Diff(f,x)*`&^`(d(phi),d(x))-Diff(f,y)*`&^`(d(phi),d(y))

Some trivial examples:
'd(exp(-x^2)+cos(y))'=d(exp(-x^2)+cos(y));

d(exp(-x^2)+cos(y)) = -2*exp(-x^2)*x*d(x)-sin(y)*d(y)

'd(f*x^3)'=d(f*x^3);

d(f*x^3) = (Diff(f,x)*d(x)+Diff(f,y)*d(y))*x^3+3*f*x^2*d(x)

And not so trivial ones ( n - was not declared as a constant! ):
'd(f^n)'=d(f^n);

d(f^n) = n*f^(n-1)*(Diff(f,x)*d(x)+Diff(f,y)*d(y))+f^n*ln(n)*d(n)

Declare lambda as a constant (see atlas[Constants] ):
Constants(lambda);

{Catalan, I, _Z, Pi, lambda, -I, alpha[k]}

Thus:
'd(f^lambda)'=d(f^lambda);

d(f^lambda) = lambda*f^(lambda-1)*(Diff(f,x)*d(x)+Diff(f,y)*d(y))

Let's see "who is who"
Who([f,h,x,y,z,lambda]);


f: function



h: function



x: 0 - form



y: 0 - form



z: function



lambda: constant


Who();

PIECEWISE([{}, Domains],[{}, Mappings],[{}, Tensors],[{}, Forms],[{Catalan, I, _Z, Pi, lambda, -I, alpha[k]}, Constants],[{z, h, f, F, H[i], alpha[i,j]}, Functions])

See Also:

atlas , atlas[Constants] , atlas[Forms] , atlas[Vectors] , atlas[Tensors] , atlas[d] , atlas[`&^`] , atlas[Who] .