PDEtools - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : Differential Equations : PDEtools : Symmetries : PDEtools/ChangeSymmetry





perform a change of variables on the infinitesimals of a symmetry generator


Calling Sequence




Calling Sequence

ChangeSymmetry(TR, S, ITR, DepVars, NewVars, 'options'='value')




a transformation equation or a set of them



a list with the infinitesimals of a symmetry generator or the corresponding infinitesimal generator differential operator



optional - the inverse transformation equation or a set of them



optional - may be required, a function or a list of them indicating the (old) dependent variables of the problem



optional - a function or a list of them representing the new dependent variables

jetnotation = ...


(optional) can be true (default, the notation found in S), false, jetvariables, jetvariableswithbrackets, jetnumbers or jetODE; to respectively return or not using the different jet notations available

output = ...


optional - can be list or operator, indicating the output to be a list of infinitesimal components or the corresponding infinitesimal generator differential operator

simplifier = ...


optional - indicates the simplifier to be used instead of the default simplify/size



The ChangeSymmetry command performs changes of variables in a list of infinitesimals of a symmetry generator or its corresponding infinitesimal generator differential operator. This transformation takes into account that the infinitesimals are coefficients of differentiation operators which are also changed by the transformation, thus contributing to the resulting infinitesimals in the new variables.


To avoid having to remember the optional keywords if you misspell the keyword, or just a portion of it, a matching against the correct keywords is performed, and when there is only one match, the input is automatically corrected.


with(PDEtools, ChangeSymmetry, CanonicalCoordinates, InfinitesimalGenerator);



Consider a PDE problem with two independent variables and one dependent variable, u(x, t), and consider the list of infinitesimals of a symmetry group

S := [_xi[x] = x, _xi[t] = 1, _eta[u] = u];



In the input above you can also pass the symmetry as without infinitesimals' labels, as in x,1,u. The corresponding infinitesimal generator is

G := InfinitesimalGenerator(S, u(x,t));



Consider now the following transformation to be applied to the infinitesimals S

TR := {x = exp(v(r,s)), t = r+v(r,s), u(x,t) = s*exp(v(r,s))};



A direct application of this transformation to each component of S is incorrect because these infinitesimals are coefficients of differentiation operators in the infinitesimal generator G above. That fact is taken into account by ChangeSymmetry; the syntax it uses is the same as that of PDEtools[dchange] and DEtools[Xchange]

ChangeSymmetry(TR, S);



You can change variables directly in the infinitesimal generator differential operator, in which case the output has the same format, is also a differential operator

ChangeSymmetry(TR, G);



You can also optionally request the output to be in list or operator format to override returning in the same format of the symmetry.

The transformation used in this example introduces the canonical coordinates of the symmetry group with infinitesimals S. That is why the result above is the normal form of the generator, all infinitesimals equal to 0 but for one equal to 1.

Consider now changing variables in a different symmetry, using the same transformation TR

ChangeSymmetry(TR, [_xi[x] = u, _xi[t] = x, _eta[u] = t]);



Compare with the output in different jetnotation or in function notation (jetnotation = false); we also pass the symmetry without the infinitesimals' labels to save some keystrokes; correspondingly the output also comes without infinitesimals' labels

ChangeSymmetry(TR, [u, x, t], jetnotation = jetnumbers);



ChangeSymmetry(TR, [u, x, t], jetnotation = false);



See Also