>
|
|
Consider first a simple case; use diff_table and declare to avoid redundancies in the input and in the display of the output
>
|
|
| (1) |
>
|
|
>
|
|
| (2) |
To see the last computed output (in this case, ) with all its functionality and structure explicit, not using the enhanced compact mathematical display above, use show
>
|
|
| (3) |
The infinitesimals of (point) symmetry generators for are
>
|
|
| (4) |
This result is a sequence of lists of infinitesimals components, with equations where the left-hand-side is an infinitesimal label including the functionality with which that infinitesimal was searched, and the right-hand-sides show the values found for them. To avoid displaying the functionality in these labels, use displayfunctionality = false.
To rewrite these list of infinitesimals returned by Infinitesimals as the corresponding infinitesimal generator differential operators, for example the last one of the result above
>
|
|
| (5) |
use InfinitesimalGenerator, as in
>
|
|
| (6) |
The infinitesimals returned by Infinitesimals are computed by solving the determining PDE system returned by DeterminingPDE
>
|
|
| (7) |
Note in the output above that is displayed in jet notation (because of using declare), is and so on. So, another way to compute the infinitesimals is to first compute this determining system and then solve it using pdsolve, as in .
To see the lists of infinitesimals before specializing into cases the integration constants of the solution of DetSys use the optional argument split = false
>
|
|
| (8) |
To see this output in the jetnumbers jet notation use ToJet or call Infinitesimals with the optional argument jetnotation = jetnumbers
>
|
|
| (9) |
This notation is less readable than the default jetvariables but may be easier to manipulate within programs. Note the correspondence between the numbers indexing the infinitesimal label and the positions of independent variables in the single function of this problem . The first number indexing the infinitesimal label identifies the dependent variable to which the infinitesimal corresponds (in this example there is only one, ). You can tell that these infinitesimals are related to point symmetry transformations because they where searched as depending on () - not on the partial derivatives of . To generate these infinitesimal labels, in jetnumbers or jetvariables notation, prolonged or not, see the GenerateInfinitesimalLabels command of the PDEtools programming Library.
You can test for the correctness of the output of Infinitesimals using the SymmetryTest command in this way
>
|
|
| (10) |
Alternatively you can search for restricted forms of the infinitesimals. The following generates a search for infinitesimals of polynomial type with degree 0 (all the infinitesimals are constants):
>
|
|
| (11) |
Infinitesimals of polynomial type such that the degree of and of are respectively at most 1 and 2, also avoid displaying the functionality on the left-hand-sides:
>
|
|
| (12) |
Infinitesimals depending on either of , or
>
|
|
| (13) |
Infinitesimals depending on either of or
>
|
|
| (14) |
Infinitesimals involving the product or sum of only two functions and in a particular form
>
|
|
| (15) |
The option HINT = [f(x)*g(t), f(x) + g(t), f(x)*g(t)] produces essentially the same output.
An example with two independent and two dependent variables
>
|
|
| (16) |
>
|
|
| (17) |
To input the system saving redundant input use diff_table
>
|
|
>
|
|
| (18) |
>
|
|
| (19) |
>
|
|
The infinitesimals
>
|
|
| (20) |
>
|
|
| (21) |
You can also specialize the search further, indicating both a type of symmetry, for example: evolutionary, and a type of functionality, for example: polynomial. In their general form, evolutionary symmetries are dynamical in that they depend on derivatives of the functions defining the jet space, here and
>
|
|
| (22) |
As expected, in the result above there are dynamical symmetries (the last three), involving the derivatives and . Dynamical symmetrics can also be tested for correctness with SymmetryTest
>
|
|
| (23) |
The infinitesimals of a PDE system are the key building blocks with which you can construct invariant solutions, invariant functions, transformations leaving the PDE system invariant or transformations reducing the number of its independent variables, etc.
For example, this is the infinitesimal generator associated to the fourth list of infinitesimals in prolonged to order 1 (that is: appliable to functions depending on up to first order partial derivatives of and )
>
|
|
| (24) |
These are the invariants up to order 1 associated to
>
|
|
| (25) |
Therefore, if you apply to each of these invariants in the sequence above, you are expected to obtain a sequence of zeros
>
|
|
| (26) |
>
|
|
| (27) |
This is the transformation associated to leaving invariant
>
|
|
| (28) |
>
|
|
| (29) |
In the above is the parameter of the (Lie) group of transformations. These other are the transformation equations and their inverses, associated to , reducing the number of independent variables of
>
|
|
| (30) |
An example where the infinitesimals depend on arbitrary functions
>
|
|
>
|
|
| (31) |
>
|
|
| (32) |
To specialize the arbitrary functions in the output above use the option specialize_Fn (see the Options section)
>
|
|
| (33) |
To specialize these functions taking, for instance, the product or sum of their arguments, use
>
|
|
| (34) |
An example that is not linear in the highest derivative
>
|
|
| (35) |
>
|
|
| (36) |
By default Infinitesimals processes DE systems as given. If all the integrability conditions that can be derived from the system's equations are explicitly present, then the resulting determining system for the symmetry infinitesimals has for solution all the symmetries. This is not true otherwise. Consider for instance:
>
|
|
| (37) |
The infinitesimals of point symmetries of are
>
|
|
| (38) |
However, the system does not include the integrability condition that can be derived from its equations. You can see that is compatible with DE by changing the ordering for the independent variables (see casesplit)
>
|
|
| (39) |
To see a version of that is closed, i.e., that it includes all its integrability conditions explicitly use the Library routine CloseSystem
>
|
|
| (40) |
When the system is closed, the resulting determining system and hence infinitesimals that solve it include some not present in above
>
|
|
| (41) |
Compare for instance the arbitrary functions found in the output above for and with the ones found in . Another way to see how are more restricted is to compute the arbitrary functions present in each result
>
|
|
| (42) |
>
|
|
| (43) |
Instead of closing the system interactively, you can request directly to Infinitesimals to close the given system before computing the determining system for its symmetries by using the option closesystem
>
|
|
| (44) |
>
|
|
| (45) |
The Infinitesimals command also works with anticommutative variables, natively, without using the approach explained in PerformOnAnticommutativeSystem.
>
|
|
| (46) |
Set first and as suffixes for variables of type/anticommutative (see Setup)
>
|
|
| (47) |
A PDE system example with two unknown anticommutative functions of four variables, two commutative and two anticommutative; 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
>
|
|
| (48) |
>
|
|
Now we can enter derivatives directly as the function's name indexed by the differentiation variables and see the display the same way; two PDEs
>
|
|
| (49) |
>
|
|
| (50) |
Set for instance the generic form of the infinitesimals for a PDE system like this one formed by pde[1] and pde[2]. For this purpose, we need anticommutative infinitesimals for the dependent variable and two of the independent variables, and ; we use here the capital greek letters and for the anticommutative infinitesimal symmetry generators and the corresponding lower case greek letters for commutative ones
>
|
|
| (51) |
>
|
|
| (52) |
>
|
|
| (53) |
The corresponding InfinitesimalGenerator
>
|
|
| (54) |
To compute the symmetry infinitesimals you can now compute the DeterminingPDE for this system, then call pdsolve to solve it, or directly call Infinitesimals that performs all that and some other convenient algebraic manipulations automatically; the related result comes specialized
>
|
|
| (55) |
To verify this result you can use SymmetryTest - it also handles anticommutative variables natively.
>
|
|
| (56) |
To see these three list of symmetry infinitesimals in a more readable form with a label on the left-hand-side, you can use
>
|
|
| (57) |