Perform a Maple command originally programmed to work only with commutative variables, in a system of equations with anticommutative variables - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Physics : Physics/PerformOnAnticommutativeSystem

Physics[PerformOnAnticommutativeSystem] - Perform a Maple command originally programmed to work only with commutative variables, in a system of equations with anticommutative variables

Calling Sequence

PerformOnAnticommutativeSystem(command, list_of_arguments, other_arguments)

ToSuperfields(expression)

Parameters

command

-

a Maple command (not part of the Physics package) that is programmed to work only with commutative variables

list_of_arguments

-

a list with one or many algebraic expressions or relations, possibly including sets or lists of them, involving anticommutative variables, these are the arguments that command cannot handle directly

other_arguments

-

the rest of the arguments to be sent to command and that command can handle regardless of the presence of anticommutative variables in list_of_arguments

Description

• 

The PerformOnAnticommutativeSystem command performs, in a system of of expressions/relations involving anticommutative variables, an operation (Maple command) originally programmed to work only with commutative variables.

• 

For Maple 16, only commands having a syntax similar to the Maple differential equation solvers dsolve or pdsolve are handled properly, although PerformOnAnticommutativeSystem will accept any other command and operation, and attempt to perform the operation as described below.

• 

The first argument is the command that will perform the operation. The second argument is a list of arguments that will be sent to command after being pre-processed as explained in the itemization below. The remaining arguments will also be sent to command but are not supposed to require any pre-processing; command is expected to handle them regardless of the presence of anticommutative variables within them or in list_of_arguments.

• 

The output of PerformOnAnticommutativeSystem is then what would be the output of command if it were capable of handling anticommutative variables. In this sense PerformOnAnticommutativeSystem extends the ability of existing Maple commands, originally programmed only to work on commutative domains, to handle extended domains involving anticommutative variables. The strategy used in PerformOnAnticommutativeSystem is as follows:

1. 

The list_of_arguments involving anticommutative variables is viewed as a system of relations (equations would be a special case of them) where each relation is expanded as a polynomial in its anticommutative variables (see ToFieldComponents).

2. 

Each polynomial is split into the Coefficients of the anticommutative variables transforming each relation into a system of relations, now involving only commutative variables. At this point the given problem got mapped into one that command is expected to handle.

3. 

The resulting system in step 2 is sent to command that performs the operation.

4. 

The result of step 3 is processed to reconstruct the original functions of anticommutative variables departing from its commutative components (see ToSuperfields), and the result returned.

• 

PerformOnAnticommutativeSystem was written as an experimental command by the research team at Maplesoft, aiming at bridging the gap between thousands of programs originally written for commutative domains, and the computational needs of noncommutative geometry and its applications in Mathematics and Physics. There is a great deal of scope for changing and improving things in PerformOnAnticommutativeSystem. You are welcome to contribute your ideas by email to support@maplesoft.com.

Examples

withPhysics:

Setupmathematicalnotation=true

mathematicalnotation=true

(1)

Set first θ and Q as prefixes for variables of type/anticommutative (see Setup)

Setupanticommutativepre=θ,Q

* Partial match of 'anticommutativepre' against keyword 'anticommutativeprefix'

_______________________________________________________

anticommutativeprefix=Q,θ

(2)

Consider this partial differential equation for the anticommutative function Q of commutative and anticommutative variables x,θ

2θxQx,y,θ=0

2xθQx,y,θ=0

(3)

Its solution using pdsolve, originally written to handle problems in a commutative domain

PerformOnAnticommutativeSystempdsolve,

Qx,y,θ=_F1x,y_λ1+_F3yθ

(4)

Note the presence of the anticommutative arbitrary constant _lambda2, introduced by dsolve when solving intermediate ordinary differential equations. In fact both dsolve and pdsolve in Maple 16 have this approach calling PerformOnAnticommutativeSystem coded within them so they can tackle the problem directly:

pdsolve

Qx,y,θ=_F1x,y_λ1+_F3yθ

(5)

To avoid redundant typing in the input that follows and redundant display of information on the screen let's use PDEtools:-diff_table PDEtools:-declare

PDEtools:-declareQx,y,θ1,θ2

Qx,y,θ1,θ2will now be displayed asQ

(6)

qPDEtools:-diff_tableQx,y,θ1,θ2:

Now you can enter derivatives directly as the function's name indexed by the differentiation variables and see the display the same way; two PDEs

pde1qx,y,θ1+qx,y,θ2qy,θ1,θ2=0

diffdiffdiffQx,y,θ1,θ2,x,y,θ1+diffdiffdiffQx,y,θ1,θ2,x,y,θ2diffdiffdiffQx,y,θ1,θ2,y,θ1,θ2=0

(7)

pde2qθ1=0

diffQx,y,θ1,θ2,θ1=0

(8)

Reduce pde[1] using pde[2] (see PDEtools:-ReducedForm)

PerformOnAnticommutativeSystemPDEtools:-ReducedForm,pde1,pde2

casesplit/ansdiffdiffdiffQx,y,θ1,θ2,x,y,θ2,

(9)

Set ϒ and Κ to also be prefixes for anticommutative names

Setupanticommutativepre=Υ,Κ,additionally

* Partial match of 'anticommutativepre' against keyword 'anticommutativeprefix'

_______________________________________________________

anticommutativeprefix=Κ,Q,ϒ,_λ,θ

(10)

Declare the anticommutative functions ϒx,y,θ1,θ2 and Κx,y,θ1,θ2 as well as the commutative function Ξx,y,θ1,θ2 and Τx,y,θ1,θ2, and use corresponding diff_table for all of them

PDEtools:-declareΥ,Κ,Ξ,Τx,y,θ1,θ2

Upsilonx,y,θ1,θ2will now be displayed asϒ

Kappax,y,θ1,θ2will now be displayed asΚ

Xix,y,θ1,θ2will now be displayed asΞ

Taux,y,θ1,θ2will now be displayed asΤ

(11)

UPDEtools:-diff_tableΥx,y,θ1,θ2:

KPDEtools:-diff_tableΚx,y,θ1,θ2:

XPDEtools:-diff_tableΞx,y,θ1,θ2:

TPDEtools:-diff_tableΤx,y,θ1,θ2:

A large PDE system involving these four anticommutative and commutative functions ϒ,Κ,Ξ,Τ

sysUx,x,xUy+aθ2θ1Ux,x+aUx,θ1θ2=0,Tx,x,x3Xx+Tyaθ2Tx,θ1aTx,xθ2θ1=0,Kx,x,x+Ky+6Ux3aUx+aKx,θ1θ2aθ2θ1Kx,x+aUx,θ2θ2=0,6Tx+3aTxaθ2Tx,θ2=0,6Kx+aKx,θ2θ2+3aKx=0,Xx,x,x+3Ux,x,θ2+Xy+6Uθ1+aθ2Uθ2,θ13aUθ1aθ2Xx,θ1aXx,xθ2θ1+2aUx,θ2θ2θ1=0,3Tx,x,θ23Xθ2aTθ2,θ1θ26Tθ1+3aTθ12aθ2θ1Tx,θ2=0,3Kx,x,θ2+6Uθ2+12Xx6Kθ13aUθ26aXx+3aKθ1+aθ2Kθ2,θ12aKx,θ2θ2θ1aθ2Xx,θ2=0,6Tθ2+3aTθ2=0,6Kθ2+3aKθ2=0,aTxθ2=0,aθ2Tθ2=0,3Tx,x2aTxθ2θ1aθ2Tθ1=0,aθ2Tθ2=0,6Tx,θ2+2aθ2θ1Tθ2=0,3Kx,x2aθ2θ1Kx+aKθ1θ2+aU[]+2aXxθ2=0,aKθ2θ2=0,6Kx,θ22aθ2Xθ22aKθ2θ2θ1=0,aθ2K[]+3Ux,θ23Xx,xaθ2Xθ1aθ1U[]+aXxθ2θ1=0,3Tx,θ2=0,3Kx,θ2aθ2Xθ2=0,3Xx,θ2aθ2θ1Xθ2=0,3Tθ2=0,3Kθ2=0,3Tx=0,3Tθ2=0

(12)

Note that the notation used in this display is compact, but the actual contents is there. For example, for the first equation in sys

sys1

diffdiffdiffΥx,y,θ1,θ2,x,x,xdiffΥx,y,θ1,θ2,ya`*`θ1,θ2,diffdiffΥx,y,θ1,θ2,x,x+a`*`diffdiffΥx,y,θ1,θ2,x,θ1,θ2=0

(13)

Show the contents:

lprintsys1

diff(diff(diff(Upsilon(x,y,theta[1],theta[2]),x),x),x)-diff(Upsilon(x,y,theta[1
],theta[2]),y)-a*Physics:-`*`(theta[1],theta[2],diff(diff(Upsilon(x,y,theta[1],
theta[2]),x),x))+a*Physics:-`*`(Physics:-diff(diff(Upsilon(x,y,theta[1],theta[2
]),x),theta[1]),theta[2]) = 0

The simplification of sys taking into account its integrability conditions (see PDEtools:-casesplit)

PerformOnAnticommutativeSystemPDEtools:-casesplit,sys

casesplit/ans`*`θ1,diffdiffΞx,y,θ1,θ2,x,θ1`*`θ2,diffdiffΞx,y,θ1,θ2,x,θ2+diffΞx,y,θ1,θ2,x=0,`*`θ1,diffdiffΞx,y,θ1,θ2,y,θ1`*`θ2,diffdiffΞx,y,θ1,θ2,y,θ2+diffΞx,y,θ1,θ2,y=0,diffΥx,y,θ1,θ2,θ2=0,diffΚx,y,θ1,θ2,θ1=0,diffΥx,y,θ1,θ2,θ1=0,diffdiffΞx,y,θ1,θ2,θ1,θ2=0,`*`θ1,diffdiffΤx,y,θ1,θ2,x,θ1`*`θ2,diffdiffΤx,y,θ1,θ2,x,θ2+diffΤx,y,θ1,θ2,x=0,`*`θ1,diffdiffΤx,y,θ1,θ2,y,θ1`*`θ2,diffdiffΤx,y,θ1,θ2,y,θ2+diffΤx,y,θ1,θ2,y=0,diffΚx,y,θ1,θ2,θ2=0,Υx,y,θ1,θ2`*`diffΥx,y,θ1,θ2,θ2,θ2`*`diffΥx,y,θ1,θ2,θ1,θ1=0,Κx,y,θ1,θ2`*`diffΚx,y,θ1,θ2,θ2,θ2`*`diffΚx,y,θ1,θ2,θ1,θ1=0,diffΞx,y,θ1,θ2,θ1+`*`diffdiffΞx,y,θ1,θ2,θ1,θ2,θ2=0,diffΤx,y,θ1,θ2,θ1=0,`*`diffdiffΞx,y,θ1,θ2,θ1,θ2,θ1diffΞx,y,θ1,θ2,θ2=0,diffdiffΥx,y,θ1,θ2,θ1,θ2=0,diffdiffΤx,y,θ1,θ2,θ1,θ2=0,diffdiffΚx,y,θ1,θ2,θ1,θ2=0,`*`diffdiffΤx,y,θ1,θ2,θ1,θ2,θ1diffΤx,y,θ1,θ2,θ2=0,

(14)

See Also

anticommutative, casesplit, Coefficients, commutative, dsolve, Gtaylor, pdsolve, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, ReducedForm, Setup, solve, ToFieldComponents, ToSuperfields

Compatibility

• 

The Physics[PerformOnAnticommutativeSystem] command was introduced in Maple 16.

• 

For more information on Maple 16 changes, see Updates in Maple 16.