build the symmetry generator given a solution of an ODE
buildsym(sol, y(x), _C1, _C2)
expression representing the solution of an ODE
(optional) dependent variable
(optional) arbitrary constants of the ODE solution
The buildsym command takes as arguments the solution of an ODE and the dependent variable, and it looks for a pair of infinitesimals for the ODE that generated the problem. At present, buildsym is able to look for symmetries of solutions of first and second order ODEs only.
As a rule, if we represent the infinitesimal generator as
f -> xi(x,y) * diff(f,x) + eta(x,y) * diff(f,y);
where x is the independent variable and y is the dependent one, buildsym (when successful) returns the list ξ⁡x,y,η⁡x,y, or two of these lists if the solution given as argument contains two arbitrary constants _C1 and _C2.
In order to study the relationship between symmetry patterns and ODE patterns, the buildsym command and equinv may be useful in connection with the odeadvisor command and the HINT=e1,e2 option of dsolve.
This function is part of the DEtools package, and so it can be used in the form buildsym(..) only after executing the command with(DEtools). However, it can always be accessed through the long form of the command by using DEtools[buildsym](..).
The complete symmetry cycle
1) A pair of infinitesimals
sym ≔ _ξ=0,_η=ⅇyln⁡x
The most general first order ODE invariant under the above is as follows:
ODE ≔ equinv⁡sym,y⁡x
This ODE can be solved using the following:
ans ≔ dsolve⁡ODE,Lie
The infinitesimals can be reobtained from the solution above:
2) Given the solution of a second order ODE, for instance, we get the following:
ans2 ≔ y⁡x=_C1⁢cos⁡x+x⁢_C2
The infinitesimals of an underlying Lie symmetry group
sym2 ≔ buildsym⁡ans2
The most general second order ODE possessing these symmetries
ODE2 ≔ equinv⁡sym2,y⁡x,2
To test symmetries, one can use the symtest command; sym2 is a symmetry of ODE2:
sym2 is a symmetry of ODE2:
Download Help Document