LHLibrary - Maple Help

LieAlgebrasOfVectorFields

 LHLibrary
 a sub-package contains some utility routines for LieAlgebrasOfVectorFields

 Calling Sequence LHLibrary:-Routine(arguments, options)

Parameters

 Routine - a Routine of the LHLibrary sub-package; could be any of those shown via with(LHLibrary) arguments - the arguments of Routine options - some LHLibrary Routines accept optional arguments of the form name = value

Description

 • The LHLibrary sub-package includes several useful commands that are used as internal routines in the LieAlgebrasOfVectorFields package. These commands are mainly for dealing with differential equations.
 • The LHLibrary is part of the LieAlgebrasOfVectorFields package. For more detail, see Overview of the LieAlgebrasOfVectorFields package.
 • Any Routine can be used in the form Routine(...) only after executing the command with(LHLibrary), but can always be used in the form LHLibrary:-Routine(..).

List of Routines in LHLibrary Sub-package & examples

 > with(LieAlgebrasOfVectorFields);
 $\left[{\mathrm{Differential}}{,}{\mathrm{DisplayStructure}}{,}{\mathrm{Distribution}}{,}{\mathrm{EliminationLAVF}}{,}{\mathrm{EliminationSystem}}{,}{\mathrm{IDBasis}}{,}{\mathrm{IsLinearizable}}{,}{\mathrm{LAVF}}{,}{\mathrm{LHLibrary}}{,}{\mathrm{LHPDE}}{,}{\mathrm{LHPDO}}{,}{\mathrm{MapDE}}{,}{\mathrm{OneForm}}{,}{\mathrm{SymmetryLAVF}}{,}{\mathrm{VFPDO}}{,}{\mathrm{VectorField}}\right]$ (1)
 > with(LHLibrary);
 $\left[{\mathrm{AddBrackets}}{,}{\mathrm{Erase}}{,}{\mathrm{EssentialDependencies}}{,}{\mathrm{GetDerivativeList}}{,}{\mathrm{GetFunctionDependencies}}{,}{\mathrm{GetFunctionNames}}{,}{\mathrm{IsAdmissibleDependency}}{,}{\mathrm{IsHomogeneous}}{,}{\mathrm{RemoveBrackets}}{,}{\mathrm{RifDsubs}}{,}{\mathrm{Rifsimp}}{,}{\mathrm{SortFunctionList}}\right]$ (2)

 Calling Sequence & Parameters AddBrackets(x) RemoveBrackets(x) x    -    a name or function, or a list of them
 • If $x$ is a name then AddBrackets(x) adds brackets to $x$(i.e. $x\left(\right)$) When $x$ is a function, the function is returned unchanged.
 • RemoveBrackets(x) reverses the process from the previous dot point.
 • If $x$ is a list then both commands distribute themselves over the list.

Example

 ${a}{}\left(\right)$ (3)
 $\left[{a}{}\left(\right){,}{b}{}\left({x}\right){,}{c}{}\left({b}{}\left({x}\right)\right)\right]$ (4)
 > RemoveBrackets(b());
 ${b}$ (5)
 > RemoveBrackets([a, b(),u(x),k(u(x))]);
 $\left[{a}{,}{b}{,}{u}{}\left({x}\right){,}{k}{}\left({u}{}\left({x}\right)\right)\right]$ (6)

Adding & removing brackets to a name should return it unchanged.

 ${a}$ (7)

Erase

 Calling Sequence & Parameters Erase(x,L) x, L   -    a list or set of functions or names
 • Erase(x,L) returns a new list where the variables in x are removed from the list L.

Example

 > Erase([y], [x,y,z]);
 $\left[{x}{,}{z}\right]$ (8)
 > Erase([u(x),k(z)], [u(x),v(y),k(z)]);
 $\left[{v}{}\left({y}\right)\right]$ (9)

EssentialDependencies

 Calling Sequence & Parameters EssentialDependencies(sys, deps) sys    -   a DEs system (as a list of equations) that is assumed to be fully reduced deps   -   a list of names or functions of name
 • Let sys be a list of DEs with its dependent variables named deps. Then EssentialDependencies(sys, deps) returns the list of essential dependencies from the system sys. For example, a dep like $\mathrm{\xi }\left(x,y,z\right)$ is essentially dependent on $x$ if $\frac{\partial }{\partial x}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\mathrm{\xi }\left(x,y,z\right)$ is not 0, or more precisely if it does not reduce to 0 modulo the DEs system sys.
 • Typically, the input arguments come from a LHPDE object S (i.e. sys := GetSystem(S), deps = GetDependents(S)). See Overview of the LHPDE object for more detail.

Example

 > S := [diff(xi(x,y),y,y)=0, diff(eta(x,y),x)+diff(xi(x,y),y)=0, diff(eta(x,y),y)=0, diff(xi(x,y),x)=0];
 ${S}{≔}\left[\frac{{{\partial }}^{{2}}}{{\partial }{{y}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\xi }}{}\left({x}{,}{y}\right){=}{0}{,}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({x}{,}{y}\right){+}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\xi }}{}\left({x}{,}{y}\right){=}{0}{,}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({x}{,}{y}\right){=}{0}{,}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\xi }}{}\left({x}{,}{y}\right){=}{0}\right]$ (10)
 > EssentialDependencies(S, [xi(x,y), eta(x,y)]);
 $\left[{\mathrm{\xi }}{}\left({y}\right){,}{\mathrm{\eta }}{}\left({x}\right)\right]$ (11)

GetDerivativeList

 Calling Sequence & Parameters GetDerivativeList(x, n) GetDerivativeList(x, m..n) x      -    a list of functions or names representing dependent variables m,n    -    a non-negative integer
 • GetDerivativeList(x, n) returns a list of all derivatives of dependent variables x of differential order exactly n.
 • GetDerivativeList(x, m..n) returns a list of all derivatives of dependent variables x from order m to order n.
 • For each dep in x , the command differentiates it with respect to all variable names in the argument list of dep.

Example

 > GetDerivativeList([u(x,y)], 2);
 $\left[\frac{{{\partial }}^{{2}}}{{\partial }{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}\right){,}\frac{{{\partial }}^{{2}}}{{\partial }{x}{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}\right){,}\frac{{{\partial }}^{{2}}}{{\partial }{{y}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}\right)\right]$ (12)
 > GetDerivativeList([u(x)],0..2);
 $\left[{u}{}\left({x}\right){,}\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}\right){,}\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}\right)\right]$ (13)
 > GetDerivativeList([u(x,y,z),v(y),w(z),A],0..1);
 $\left[{u}{}\left({x}{,}{y}{,}{z}\right){,}{v}{}\left({y}\right){,}{w}{}\left({z}\right){,}{A}{,}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{z}\right){,}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{z}\right){,}\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{z}\right){,}\frac{{ⅆ}}{{ⅆ}{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{v}{}\left({y}\right){,}\frac{{ⅆ}}{{ⅆ}{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{w}{}\left({z}\right)\right]$ (14)

GetFunctionDependencies

 Calling Sequence & Parameters GetFunctionDependencies(func) func    -    a function or name
 • GetFunctionDependencies(func) returns a list of dependencies of the function as names in order

Example

 > GetFunctionDependencies(G(x));
 $\left[{x}\right]$ (15)
 > GetFunctionDependencies(a);
 $\left[\right]$ (16)
 > GetFunctionDependencies(u(a(x),y));
 $\left[{a}{,}{y}\right]$ (17)
 > GetFunctionDependencies(F(u(x,t), v(x,t), x, k(r), b(q), a, b));
 $\left[{u}{,}{v}{,}{x}{,}{k}{,}{b}{,}{a}{,}{b}\right]$ (18)

GetFunctionNames

 Calling Sequence & Parameters GetFunctionNames(funcL) funcL    -    a list or set of functions or names
 • GetFunctionNames(funcL) returns a list of function names in order

Example

 > GetFunctionNames([a(x), b(y)]);
 $\left[{a}{,}{b}\right]$ (19)
 > GetFunctionNames([a, u(x,y), v(x,y), K(v(x,y),u(x,y)), B(x)]);
 $\left[{a}{,}{u}{,}{v}{,}{K}{,}{B}\right]$ (20)

 Calling Sequence & Parameters IsAdmissibleDependency(u,vars) u       -     a variable or a list (or set) of variables vars    -     a sequence of names
 • IsAdmissibleDependency(u, vars) checks whether u is an admissible function respect to a set/list of variable names.
 • The command will either return true or an exception is thrown.

Example

 ${\mathrm{true}}$ (21)
 ${\mathrm{true}}$ (22)

IsHomogeneous

 Calling Sequence & Parameters IsHomogeneous(sys, vars) sys   -     a list of equations vars  -     a list of names or function of names
 • IsHomogeneous(sys, vars) checks if the DEs system sys is linear homogeneous with respect to vars.

Example

 > IsHomogeneous([diff(u(x,y),x,x) + diff(u(x,y),y,y) = 0], [u(x,y)]);
 ${\mathrm{true}}$ (23)
 > IsHomogeneous([diff(u(x,y),x,x) + diff(u(x,y),y,y) = b], [u(x,y),b]);
 ${\mathrm{true}}$ (24)
 > IsHomogeneous([a*diff(u(x,y),x,x) + diff(u(x,y),y,y) = 0], [u(x,y),a]);
 ${\mathrm{false}}$ (25)

RifDsubs

 Calling Sequence & Parameters RifDsubs(sys, expr) sys   -     a sequence of equations expr  -     an expression
 • The command is front-end to dsubs from Maple version 9.5. It performs differential substitutions into expressions.
 • RifDsubs ensures of fully substitution and termination, via calling dsubs multiple times.
 • The calling interface of RifDsubs is identical to the dsubs command. All input arguments will be passed down to dsubs.

Rifsimp

 Calling Sequence & Parameters Rifsimp(sys, options) sys      -       a list of set of polynomially nonlinear PDEs or ODEs options  -      (options) a sequence of option that pass down to DEtools[rifsimp]
 • The command is front-end to rifsimp from the DEtools library. The only difference between these two commands is that Rifsimp returns an empty system when the input argument syst is an empty list.
 • The calling interface of Rifsimp is identical to the rifsimp command. All input arguments will be passed down to rifsimp.

SortFunctionList

 Calling Sequence & Parameters SortFunctionList(funcL, L) funcL   -  a list of functions L       -  a list of variable names
 • SortFunctionList(funL, L) returns a list of functions after sorted according to the order in L.

Example

 > deps := [A(x),B(x,y),C(A(x),B(x,y))];
 ${\mathrm{deps}}{≔}\left[{A}{}\left({x}\right){,}{B}{}\left({x}{,}{y}\right){,}{C}{}\left({A}{}\left({x}\right){,}{B}{}\left({x}{,}{y}\right)\right)\right]$ (26)
 > SortFunctionList(deps, [C,B,A]);
 $\left[{C}{}\left({A}{}\left({x}\right){,}{B}{}\left({x}{,}{y}\right)\right){,}{B}{}\left({x}{,}{y}\right){,}{A}{}\left({x}\right)\right]$ (27)

Compatibility

 • The LieAlgebrasOfVectorFields[LHLibrary] command was introduced in Maple 2020.