## `detools::ncDetSys` -- determining system for non-classical Lie symmetries

#### Introduction

`detools::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.

#### Call(s)

`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>)`

#### Parameters

`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.

#### Options

`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.

#### Returns

The determining system is returned as a list. The type of the list element is controlled by the option `Expr`.

#### Side Effects

`detools::ncDetSys` reads and writes some entries of the table `detools::data`. This includes especially further information about the used data types.

#### Related Functions

`detools::detSys`

#### Details

- `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.
- Internally all calculations are performed within a suitably chosen domain of `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.

- For classical symmetries, the determining system can be set up with the method `detools::detSys`

#### Option: Ansatz=ans

- With this option one can prescribe a special ansatz for the symmetry generators. `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.
- A very simple use of this option is to choose one's own names for the coefficients of the generic ansatz. Assume we are given a differential equation for the unknown function u(x,t). Then a symmetry generator is a vector field on a three dimensional manifold with the coordinates x,t,u. In order to call the corresponding coefficients xi,tau,eta, one can use this option with the value `Ansatz=[[xi(x,t,u),x], [tau(x,t,u),t], [eta(x,t,u),u]]`.

#### Option: Param=paraml

- This option makes sense only in connection with the option Ansatz. `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]`.

#### Option: Expr=ebool

- This option controls the format of the output. If `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`.

#### Option: Interactive=bool

- `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.

#### Option: Steps=n

- This option controls at which level the non-classical symmetries are sought. This means that the parameter `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.

#### Example 1

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.

#### Background

- Lie symmetry analysis is one of the most important techniques for studying differential equations. More information about it and especially about its mathematical background and its many application can be found in the following text books:
  - P.J. Olver: Applications of Lie groups to Differential Equations, Graduate Texts in Mathematics 107, Springer, New York 1986
  - G.W. Bluman, S. Kumei: Symmetries and Differential Equations, Applied Mathematical Sciences 81, Springer, New York 1989
  Non-classical symmetries have been introduced by Bluman and Cole already in the late 60s. But only in recent years a better understanding and a more complete theory has been developed.
- It is not so easy to give a completely fool proof implementation of setting up the determining system. `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!).
- If the system is not formally integrable, the infinitesimal approach which underlies most of Lie symmetry analysis is no longer sufficient; it may not find all existent symmetries. In cases of doubt, a completion with the method `detools::complete` can be used to check for integrability.
- If transcendent terms are present in the equations, the determining system may be set up incorrectly, as `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.

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000