Overview - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Overview of Linear Homogeneous PDE Commands

Description

 • The Linear Homogeneous PDE commands in the LieAlgebrasOfVectorFields package provide a general purpose toolkit for dealing with linear homogeneous partial differential equations (LHPDE). To be more specific, with these commands you can:
 1 reduce a LHPDEs system using the rifsimp command and with ranking recorded with the system.
 2 find properties of a LHPDEs system such as solution dimension, parametric derivatives, and whether a total degree ranking was used.
 3 explore relationships between solutions of two LHPDEs systems including whether one solution space is a subspace of the other, finding intersection of solution spaces of two LHPDEs, and finding vector space sum of solution spaces of two LHPDEs.
 4 access to utility commands for manipulating LHPDEs.
 5 manipulate as a partial differential operator form.
 6 manipulate a LHPDEs system that has partial dependencies (i.e. the dependent variables may depend on only some of the independent variables).
 7 manipulate a LHPDEs system that is in partially or fully integrated form (i.e. a system with constants of integration involved).
 • The linear homogeneous PDE functionality have been written focusing on the key LHPDE object, and almost all methods are within the LHPDE object. There only five exports relating to Linear Homogeneous PDE in the LieAlgebrasOfVectorFields package, four of them are for constructing a Maple object, and one is a subpackage containing utility commands.
 • The existing Maple builtins normal, expand, simplify, indets, has, hastype, type and convert are extended to work for LHPDE and LHPDO objects.
 • Some of the internal routines for Linear Homogeneous PDE are also available for use as LieAlgebrasOfVectorFields:-LHLibrary:-Routine. For more details, see overview of the LHLibrary subpackage.
 • To use this functionality, first a LHPDE object must be constructed (e.g. via LieAlgebrasOfVectorFields[LHPDE] command). Then once a LHPDE object is constructed successfully, a variety of methods will be available. For more detail, see Overview of the LHPDE object.

List of Linear Homogeneous PDE-Related Commands

 • There are five related exports, namely:

 A constructor to create a LHPDE object. A constructor to create a LHPDO object. A constructor to create an IDBasis object. A command for eliminating some dependent variables from a PDEs system. A subpackage containing low-level utilities for DEs

List of Methods from LHPDE, LHPDO, IDBasis Objects

 • The following methods are available for a LHPDE object.

 • The following methods are available for a LHPDO object.

 • A LHPDO object can also act as a differential operator. See the LHPDO Object as Operator for more detail.
 • The following Maple builtins are extended for allowing both LHPDE and LHPDO objects: type, expand, has, hastype, indets, normal, simplify, convert. See LHPDE Object Overloaded Builtins and LHPDO Object Overloaded Builtins for more detail.
 • The following methods are available for a IDBasis object.

Examples

 > $\mathrm{with}\left(\mathrm{LieAlgebrasOfVectorFields}\right)$
 $\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)

Construct an LHPDE object.  (This is the infinitesimal determining system for the vector fields of the 2-D Euclidean group (i.e. rotations and translations).)

 > $\mathrm{detSys}≔\left[\mathrm{diff}\left(\mathrm{\xi }\left(x,y\right),y,y\right)=0,\mathrm{diff}\left(\mathrm{\eta }\left(x,y\right),x\right)+\mathrm{diff}\left(\mathrm{\xi }\left(x,y\right),y\right)=0,\mathrm{diff}\left(\mathrm{\eta }\left(x,y\right),y\right)=0,\mathrm{diff}\left(\mathrm{\xi }\left(x,y\right),x\right)=0\right]$
 ${\mathrm{detSys}}{≔}\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]$ (2)
 > $\mathrm{E2}≔\mathrm{LHPDE}\left(\mathrm{detSys},\mathrm{indep}=\left[x,y\right],\mathrm{dep}=\left[\mathrm{\xi },\mathrm{\eta }\right]\right)$
 ${\mathrm{E2}}{≔}\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]{,}{\mathrm{indep}}{=}\left[{x}{,}{y}\right]{,}{\mathrm{dep}}{=}\left[{\mathrm{\xi }}{}\left({x}{,}{y}\right){,}{\mathrm{\eta }}{}\left({x}{,}{y}\right)\right]$ (3)

E2 is a LHPDE object containing a collection of methods.

 > $\mathrm{exports}\left(\mathrm{E2},'\mathrm{static}'\right)$
 ${\mathrm{type}}{,}{\mathrm{convert}}{,}{\mathrm{normal}}{,}{\mathrm{expand}}{,}{\mathrm{simplify}}{,}{\mathrm{indets}}{,}{\mathrm{has}}{,}{\mathrm{hastype}}{,}{\mathrm{GetIndependents}}{,}{\mathrm{GetDependents}}{,}{\mathrm{GetSystem}}{,}{\mathrm{GetRanking}}{,}{\mathrm{SetIDBasis}}{,}{\mathrm{GetIDBasis}}{,}{\mathrm{Copy}}{,}{\mathrm{Augment}}{,}{\mathrm{SolutionDimension}}{,}{\mathrm{IsFiniteType}}{,}{\mathrm{IsTrivial}}{,}{\mathrm{ParametricDerivatives}}{,}{\mathrm{OrderOfInvolution}}{,}{\mathrm{IsRifReduced}}{,}{\mathrm{IsTotalDegreeRanking}}{,}{\mathrm{AreSameSpace}}{,}{\mathrm{AreSame}}{,}{\mathrm{RifReduce}}{,}{\mathrm{ReducedForm}}{,}{\mathrm{AdjustDependencies}}{,}{\mathrm{Intersection}}{,}{\mathrm{VectorSpaceSum}}{,}{\mathrm{EliminationSystem}}{,}{\mathrm{IsSubspace}}{,}{\mathrm{DChange}}{,}{\mathrm{dchange}}{,}{\mathrm{LHSolve}}{,}{\mathrm{initialdata}}{,}{\mathrm{InitialData}}{,}{\mathrm{ModulePrint}}{,}{\mathrm{ModuleCopy}}{,}{\mathrm{ModuleApply}}$ (4)

The object has an associated type:

 > $\mathrm{type}\left(\mathrm{E2},'\mathrm{LHPDE}'\right)$
 ${\mathrm{true}}$ (5)

Conversion of an LHPDE object to a partial differential operator LHPDO object:

 > $\mathrm{\Delta }≔\mathrm{convert}\left(\mathrm{E2},'\mathrm{LHPDO}'\right)$
 ${\mathrm{\Delta }}{≔}\left({\mathrm{ξ}}{,}{\mathrm{η}}\right){→}\left[\frac{{\partial }}{{\partial }{y}}{}\left(\frac{{\partial }}{{\partial }{y}}{}{\mathrm{ξ}}\right){,}\frac{{\partial }}{{\partial }{x}}{}{\mathrm{η}}{+}\frac{{\partial }}{{\partial }{y}}{}{\mathrm{ξ}}{,}\frac{{\partial }}{{\partial }{y}}{}{\mathrm{η}}{,}\frac{{\partial }}{{\partial }{x}}{}{\mathrm{ξ}}\right]$ (6)

An LHPDO acts as an operator.  In this case it annihilates rotation vector field about the point (x0,y0)...

 > $\mathrm{\Delta }\left(\left[-\left(y-\mathrm{y0}\right),x-\mathrm{x0}\right]\right)$
 $\left[{0}{,}{0}{,}{0}{,}{0}\right]$ (7)

Apply the differential reduction and completion method of DEtools[rifsimp]...

 > $\mathrm{E2p}≔\mathrm{RifReduce}\left(\mathrm{E2}\right)$
 ${\mathrm{E2p}}{≔}\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{\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){,}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({x}{,}{y}\right){=}{0}\right]{,}{\mathrm{indep}}{=}\left[{x}{,}{y}\right]{,}{\mathrm{dep}}{=}\left[{\mathrm{\xi }}{}\left({x}{,}{y}\right){,}{\mathrm{\eta }}{}\left({x}{,}{y}\right)\right]$ (8)

...which puts the system into a form where the dimension of its solution space can be deduced:

 > $\mathrm{SolutionDimension}\left(\mathrm{E2p}\right)$
 ${3}$ (9)

There is a library of low level commands that are useful for PDE:

 > $\mathrm{LHLibrary}:-\mathrm{IsHomogeneous}\left(\mathrm{GetSystem}\left(\mathrm{E2p}\right),\left[\mathrm{\xi }\left(x,y\right),\mathrm{\eta }\left(x,y\right)\right]\right)$
 ${\mathrm{true}}$ (10)

The LHPDE package fluently handles PDE with partial dependency.  There is a method to adjust the dependencies...

 > $\mathrm{AdjustDependencies}\left(\mathrm{E2p},\mathrm{dep}="least"\right)$
 $\left[\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{y}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\xi }}{}\left({y}\right){=}{0}{,}\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({x}\right){=}{-}\frac{{ⅆ}}{{ⅆ}{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\xi }}{}\left({y}\right)\right]{,}{\mathrm{indep}}{=}\left[{x}{,}{y}\right]{,}{\mathrm{dep}}{=}\left[{\mathrm{\xi }}{}\left({y}\right){,}{\mathrm{\eta }}{}\left({x}\right)\right]$ (11)

PDE (or ODE) systems of finite type can be passed to Maple's PDE (respectively ODE) solvers pdsolve and dsolve.

 > $\mathrm{LHSolve}\left(\mathrm{E2p}\right)$
 $\left[{\mathrm{\xi }}{}\left({x}{,}{y}\right){=}{-}\mathrm{c__1}{}{y}{+}\mathrm{c__3}{,}{\mathrm{\eta }}{}\left({x}{,}{y}\right){=}\mathrm{c__1}{}{x}{+}\mathrm{c__2}\right]$ (12)