detools::ncDetSys
--
determining system for non-classical Lie symmetriesdetools::ncDetSys
sets up the determining system for
the generators of non-classical Lie point symmetries of a given system
of differential equations. As for most methods in the detools
library there exist
several possibilities for entering the differential equations. The
precise working of the method can be controlled by a number of options;
especially it is possible to prescribe a special ansatz for the
symmetry generators.
detools::ncDetSys(de, indl, depl <, Ansatz = ans, Param = paraml>
<, Expr = ebool> <, Interactive = bool> <, Autoreduced = bool> <, Steps =
n>)
detools::ncDetSys(df <, Ansatz = ans,
Param = paraml> <, Expr = ebool> <, Interactive =
bool> <, Autoreduced= bool> <, Steps = n>)
de |
- | the differential equation(s): either a single expression or a list of expressions. |
indl |
- | the independent variable(s): a list of (indexed) identifiers. |
depl |
- | the dependent variable(s): a list of (indexed) identifiers. |
df |
- | the differential equation(s): either an element of a
domain DF in
Cat::DifferentialFunction or a list of such elements. |
Ansatz |
- | prescribes an ansatz for the generators. |
Param |
- | lists the names of the parameters (functions or constants) contained in the ansatz. |
Expr |
- | determines the type of the output of
detools::ncDetSys . |
Interactive |
- | controls the behaviour, if
detools::ncDetSys has problems with solving the
differential equations for their leading derivatives. |
Autoreduced |
- | controls whether the equations of the determining
system are automatically simplified (autoreduce) by
detools::ncDetSys . If bool=FALSE , no
simplifications are performed. |
Steps |
- | determines the level at which non-classical symmetries are sought. |
The determining system is returned as a list. The type of the list
element is controlled by the option Expr
.
detools::ncDetSys
reads and writes some entries of the
table detools::data
. This includes especially further
information about the used data types.
detools::ncDetSys
sets up the determining system for
the generators of non-classical Lie symmetries of the given
differential equation(s). Thus it returns again a (generally rather
overdetermined) system of differential equations whose solutions
represent symmetry generators. The many options allow for a rather
tight control of the way the calculations proceed. Especially, it is
possible to prescribe a special ansatz for the generators which leads
often to a considerable speed up.Cat::DifferentialFunction
(DV)
. If
no specific domains are prescribed, detools::ncDetSys
generates automatically for DV
the domain
Dom::DifferentialVariable
(indl,depl)
. Thus
for indl
and depl
anything can be entered
that is accepted by this constructor.
Which domain in
Cat::DifferentialFunction
(DV)
detools::ncDetSys
actually chooses, depends on the form of
the entered differential equations. detools::ncDetSys
prefers to perform all calculations in polynomial arithmetic, as this
is considerably faster. Hence the first (and most common) choice is a
domain constructed with Dom::DifferentialPolynomial
. If
the equations are of a more general form,
Dom::DifferentialExpression
is used.
detools::detSys
ans
is either an element of the
domain Dom::JetVectorField
(DF)
where
DF
is the domain in which internally the calculations are
performed or any expression which can be converted into such an
element. If no ansatz is prescribed, a generic one is employed. If this
option is used, the option Param must be used,
too.Ansatz=[[xi(x,t,u),x], [tau(x,t,u),t],
[eta(x,t,u),u]]
.paraml
is a list of
identifiers; the determining system consists of equations for these
parameters. In the example above paraml
would take the
value [xi,tau,eta]
.ebool=TRUE
, the output will consists of expressions. The
same holds for ebool=NoDiff
; however, in this case for
derivatives the condensed notation of the domains in
Cat::DifferentialVariable
is used. For
ebool=FALSE
, the output will consist of elements of a
domain generated by the constructor
Dom::LinearDifferentialFunction
with appropriate
arguments.
The default behaviour is determined by the way
detools::ncDetSys
is called. If the differential equations
are entered as expressions, the default corresponds to
ebool=NoDiff
. If domain elements are used, it corresponds
to ebool=FALSE
.
detools::ncDetSys
might encounter problems in solving
each differential equations for a different derivative. If
bool=TRUE
, detools::ncDetSys
will ask
interactively the user for help. If bool=FALSE
, the
computation will be aborted in case of troubles.n
controls after
how many steps consistency between the original system and the
invariant surface condition has been achieved. The value
n=1
corresponds to the well-known Bluman-Cole approach but
higher values are possible, too.The first example for a non-classical symmetry was found for the heat equation diff(u(t,x),t)-diff(u(t,x),x,x)=0. With the following command one sets up the determining equations for the first level of non-classical symmetries.
>> detools::ncDetSys(u([t]) - u([x, x]), [t, x], [u], Steps=1)
[(-2) (XI1([u]) XI1), 2 (XI1([u]) PHI1) + 2 (XI1([x]) XI2), 2 3 XI1([u, u]) XI2 XI1 - XI2([u, u]) XI1 , 2 3 (XI2([u, u]) PHI1 XI1 ) - 2 (XI1([u, u]) PHI1 XI2 XI1) - 2 2 PHI1([u, u]) XI2 XI1 - 2 (XI1([x, u]) XI2 XI1) + 2 2 2 (XI2([x, u]) XI2 XI1 ) - 2 (XI2([u]) XI2 XI1), 2 2 XI1([u, u]) PHI1 XI2 - 3 (XI2([u, u]) PHI1 XI1) + 2 2 (PHI1([u, u]) PHI1 XI2 XI1) + 2 (XI1([x, u]) PHI1 XI2 ) - 2 4 (XI2([x, u]) PHI1 XI2 XI1) + 2 (PHI1([x, u]) XI2 XI1) + 3 2 XI1([x, x]) XI2 - XI2([x, x]) XI2 XI1 + 2 3 2 (XI2([u]) PHI1 XI2 ) + 2 (XI2([x]) XI2 ) - 3 2 3 XI1([t]) XI2 + XI2([t]) XI2 XI1, XI2([u, u]) PHI1 - 2 2 PHI1([u, u]) PHI1 XI2 + 2 (XI2([x, u]) PHI1 XI2) - 2 2 2 (PHI1([x, u]) PHI1 XI2 ) + XI2([x, x]) PHI1 XI2 - 3 2 3 PHI1([x, x]) XI2 - XI2([t]) PHI1 XI2 + PHI1([t]) XI2 ]
If one compares with the determining system for the classical symmetries, one sees that the equations obtained here are not only considerably more involved, they are also non-linear. This is typical for non-classical symmetries and makes it much harder to solve the determining system. The problem becomes even more severe for higher values of Steps.
detools::ncDetSys
should work correctly for any system of differential equations
satisfying the following conditions: (i) the system is formally
integrable (this is always true for single equations and for systems in
Cauchy-Kowalevsky form); (ii) nonlinearities in the derivatives are
only of polynomial type and (iii) all equations can be solved for a
different derivative. If one of these conditions is violated, the user
should careful check the results (note: these are not artificial
restrictions of detools::ncDetSys
but fundamental
mathematical problems!).detools::complete
can be used
to check for integrability.detools::ncDetSys
is
not able to decide whether there exist any algebraic dependencies
between these terms. The determining system is set up under the
assumption that no such relations exist.
Essentially for the same reason, the current implementation also requires that all equations can be solved for different derivatives. If this is the case, it is trivial to take into account the relations introduced by the differential equations themselves.