computes the differential invariants associated to a given list of symmetries
Invariants(S, DepVars, order, 'options'='value')
the infinitesimals of a symmetry generator or the corresponding infinitesimal generator operator, or a list of n of them representing an n-dimensional group of symmetries
a function or a list of them indicating the dependent variables of the problem
optional - indicates the order of the differential invariants required; default is 1
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
simplifier = ...
optional - indicates the simplifier to be used instead of the default simplify/size
Given a list with the infinitesimals of a symmetry generator or the corresponding infinitesimal generator operator, or a list of n of these lists or operators, possibly representing an n-dimensional symmetry group, Invariants returns a sequence of m mathematical expressions φk simultaneously invariant under all the Gj symmetry generators (1⁢≤⁢j⁢≤⁢n) related to the given n infinitesimals. The φk are a complete set of differential invariants, so they are functions of the independent and dependent variables of the problem (DepVars), as well as of their partial derivatives up to order (default is 1), and satisfy Gj⁡φk=0 for all j and k, where the number k depends on the problem.
Note that in the multidimensional case, depending on the form of the infinitesimals given, the problem may have no solution. Also the φk are all independent of each other and their number is unique, but one can still rewrite the φk in different ways, by combining invariants to construct equivalent but algebraically different invariants of the same order.
Optionally, a simplifier can be specified to be used instead of the default which is simplify/size. For that purpose use the optional argument simplifier = .... By default, the output of Invariants is in jet notation. You can change that also by passing the optional argument jetnotation = ... where the right-hand-side can be false or any of the jet notations available.
The invariants returned by Invariants can also be used as optional arguments for the group InvariantSolutions command when computing solutions to PDE systems.
To avoid having to remember the optional keywords, if you type the keyword misspelled, 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.
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 enter the symmetry S without labels for the infinitesimals, as in x,1,u, or use the corresponding infinitesimal generator, which prolonged to order 1 (that is, ready to act on functions depending on x, t, u and partial derivatives of u(x,t) of order 1 at most) is
G := InfinitesimalGenerator(S, u(x,t), prolongation = 1, expanded);
The invariants for this symmetry are
Phi := Invariants(S, u(x,t));
Therefore, applying G to each of the Phi you obtain zero:
By default Invariants computes differential invariants of order 1, so that they depend on up to 1st order derivatives of u⁡x,t (see Φ above) - you can change that using the optional argument order
Invariants(S, u(x,t), 2);
It is possible to request the output to be in function notation or jetnumbers notation instead of the default jetvariables jet notation, for that purpose use the optional argument jetnotation = ...
Invariants(S, u(x,t), 2, jetnotation = false);
Invariants(S, u(x,t), 2, jetnotation = jetnumbers);
Alternatively, you can switch back and forth between function notation and jet notation using FromJet and ToJet
ToJet([(7)], u(x,t), jetnotation = jetnumbers);
An example of a symmetry group of dimension greater than one for a problem with two independent and two dependent variables
DepVars := [u,v](x,t);
So consider the following five lists of infinitesimals, each one associated to a different symmetry transformation of some PDE problem
L := [[_xi[x] = 0, _xi[t] = 1, _eta[u] = 0, _eta[v] = 0],
[_xi[x] = 0, _xi[t] = 0, _eta[u] = 1, _eta[v] = 0],
[_xi[x] = 1, _xi[t] = 0, _eta[u] = 2*t, _eta[v] = 0],
[_xi[x] = t, _xi[t] = 0, _eta[u] = t^2+x, _eta[v] = 0],
[_xi[x] = 1/2*x+3/2*t^2, _xi[t] = t, _eta[u] = t^3+3*t*x, _eta[v] = -v]];
There are three expressions simultaneously invariant under each of the five symmetry generators associated to the infinitesimals in L above; these invariants are
Phi := [Invariants(L, DepVars)];
To verify this result, construct first the infinitesimal generators, associated to each of the infinitesimals in L, prolonged to order 1
G := map(InfinitesimalGenerator, L, DepVars, prolongation = 1);
Test them on the expressions in Phi (see map to map operators over lists of expressions)
for j to 5 do
'G'[j]('Phi') = simplify(map(G[j], Phi));
Download Help Document
What kind of issue would you like to report? (Optional)