LieAlgebrasOfVectorFields
LHLibrary
a subpackage contains some utility routines for LieAlgebrasOfVectorFields
Calling Sequence
Parameters
Description
List of Routines in LHLibrary Subpackage & examples
Compatibility
LHLibrary:-Routine(arguments, options)
Routine
-
a Routine of the LHLibrary subpackage; 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
The LHLibrary subpackage 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(..).
with(LieAlgebrasOfVectorFields);
Differential,DisplayStructure,Distribution,EliminationLAVF,EliminationSystem,IDBasis,IsLinearizable,LAVF,LHLibrary,LHPDE,LHPDO,MapDE,OneForm,SymmetryLAVF,VFPDO,VectorField
with(LHLibrary);
AddBrackets,Erase,EssentialDependencies,GetDerivativeList,GetFunctionDependencies,GetFunctionNames,IsAdmissibleDependency,IsHomogeneous,RemoveBrackets,RifDsubs,Rifsimp,SortFunctionList
AddBrackets, RemoveBrackets
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⁡) 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
AddBrackets(a);
a⁡
AddBrackets([a, b(x), c(b(x))]);
a⁡,b⁡x,c⁡b⁡x
RemoveBrackets(b());
b
RemoveBrackets([a, b(),u(x),k(u(x))]);
a,b,u⁡x,k⁡u⁡x
Adding & removing brackets to a name should return it unchanged.
RemoveBrackets(AddBrackets(a));
a
Erase
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.
Erase([y], [x,y,z]);
x,z
Erase([u(x),k(z)], [u(x),v(y),k(z)]);
v⁡y
EssentialDependencies
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 ξ⁡x,y,z is essentially dependent on x if ∂∂xξ⁡x,y,z 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.
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≔∂2∂y2ξ⁡x,y=0,∂∂xη⁡x,y+∂∂yξ⁡x,y=0,∂∂yη⁡x,y=0,∂∂xξ⁡x,y=0
EssentialDependencies(S, [xi(x,y), eta(x,y)]);
ξ⁡y,η⁡x
GetDerivativeList
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.
GetDerivativeList([u(x,y)], 2);
∂2∂x2u⁡x,y,∂2∂x∂yu⁡x,y,∂2∂y2u⁡x,y
GetDerivativeList([u(x)],0..2);
u⁡x,ⅆⅆxu⁡x,ⅆ2ⅆx2u⁡x
GetDerivativeList([u(x,y,z),v(y),w(z),A],0..1);
u⁡x,y,z,v⁡y,w⁡z,A,∂∂xu⁡x,y,z,∂∂yu⁡x,y,z,∂∂zu⁡x,y,z,ⅆⅆyv⁡y,ⅆⅆzw⁡z
GetFunctionDependencies
GetFunctionDependencies(func)
func - a function or name
GetFunctionDependencies(func) returns a list of dependencies of the function as names in order
GetFunctionDependencies(G(x));
x
GetFunctionDependencies(a);
GetFunctionDependencies(u(a(x),y));
a,y
GetFunctionDependencies(F(u(x,t), v(x,t), x, k(r), b(q), a, b));
u,v,x,k,b,a,b
GetFunctionNames
GetFunctionNames(funcL)
funcL - a list or set of functions or names
GetFunctionNames(funcL) returns a list of function names in order
GetFunctionNames([a(x), b(y)]);
a,b
GetFunctionNames([a, u(x,y), v(x,y), K(v(x,y),u(x,y)), B(x)]);
a,u,v,K,B
IsAdmissibleDependency
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.
IsAdmissibleDependency([u(x,y),v(x,y)], x,y);
true
IsAdmissibleDependency([w(x)], x,y);
IsAdmissibleDependency([u(x,y,z), v(x,y,z), w(a,b)], x,y,z);
Error, (in LieAlgebrasOfVectorFields:-LHLibrary:-IsAdmissibleDependency) function should depend on [x, y, z], but received w(a,b)
IsHomogeneous
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.
IsHomogeneous([diff(u(x,y),x,x) + diff(u(x,y),y,y) = 0], [u(x,y)]);
IsHomogeneous([diff(u(x,y),x,x) + diff(u(x,y),y,y) = b], [u(x,y),b]);
IsHomogeneous([a*diff(u(x,y),x,x) + diff(u(x,y),y,y) = 0], [u(x,y),a]);
false
RifDsubs
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
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
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.
deps := [A(x),B(x,y),C(A(x),B(x,y))];
deps≔A⁡x,B⁡x,y,C⁡A⁡x,B⁡x,y
SortFunctionList(deps, [C,B,A]);
C⁡A⁡x,B⁡x,y,B⁡x,y,A⁡x
The LieAlgebrasOfVectorFields[LHLibrary] command was introduced in Maple 2020.
For more information on Maple 2020 changes, see Updates in Maple 2020.
See Also
PDEtools[dsubs]
DEtools[rifsimp]
Download Help Document