Overview of the PDEtools Package
DescriptionList of PDEtools Package CommandsBrief description of each commandReferences
<Text-field style="Heading 2" layout="Heading 2" bookmark="info">Description</Text-field>
The PDEtools package is a collection of commands and routines for finding analytical solutions for partial differential equations (PDEs) based on the paper "A Computational Approach for the Analytical Solving of Partial Differential Equations" by E.S. Cheb-Terrab and K. von Bulow (see References), and the continuation of this work by the same authors (Symmetry routines) during 2004.
The package is an implementation of known methods for solving PDEs; however, it also allows you to look for solutions of equations not yet automatically solved by the package, or for "different solutions" when the package returns a solution which is not the most general one. For this purpose, you can make use of the dchange command and of the HINT option of the pdsolve command, especially the functional hint, both explained in more detail in the corresponding help pages.
PDEtools includes a subset of commands for computing conserved currents and generalized integrating factors as well as for performing most of the steps of the traditional symmetry analysis of PDE systems. That includes the automatic computation of the infinitesimal symmetry generators as well as the automatic computation of related group invariant solutions of different kinds departing directly from the PDE system to be solved.
Most of the internal routines of PDEtools are also available for use as PDEtools:-Library:-Routine; this permits programming your own extensions of the package using the existing tools. For details see PDEtools,Library.
Most of the symmetry commands as well as all the ones in the PDEtools:-Library handle anticommutative variables and functions automatically - see the respective help pages.
Each command in the PDEtools package can be accessed by using either the long form or the short form of the command name in the command calling sequence. The name PDETools can also be used as a synonym for PDEtools.
Note: The diff_table command allows you to enter (input) expressions and their derivatives using compact mathematical notation (jetvariables with brackets), representing an important saving in redundant typing for PDE problems.
To display the help page for a particular PDEtools command from the Maple prompt, see Getting Help with a Command in a Package.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk0">List of PDEtools Package Commands</Text-field>
<Text-field style="Heading 3" layout="Heading 3" bookmark="bkmrk1">General purpose and traveling wave solution PDE commands:</Text-field>buildcasesplitcharstripdchangedcoeffsdeclarediff_tabledifforderdpolyformdsubsLaplacemapdePDEplotseparabilitySolvesplitstripsplitsysToMissingDependentVariableTWSolutionsundeclare
<Text-field style="Heading 3" layout="Heading 3" bookmark="bkmrk2">Symmetry and related solution PDE commands:</Text-field>CanonicalCoordinatesChangeSymmetryCharacteristicQCharacteristicQInvariantsConservedCurrentsConservedCurrentTestConsistencyTestD_DxDeterminingPDEEta_kEulerFromJetFunctionFieldSolutionsInfinitesimalGeneratorInfinitesimalsIntegratingFactorsIntegratingFactorTestInvariantEquationInvariantsInvariantSolutionsInvariantTransformationPolynomialSolutionsReducedFormSimilaritySolutionsSimilarityTransformationSymmetryCommutatorSymmetryGaugeSymmetrySolutionsSymmetryTestSymmetryTransformationToJet
Most of the internal routines of PDEtools are also available for use as PDEtools:-Library:-Routine; see PDEtools,Library.
To avoid having to remember the relatively large number of keywords that can be passed as optional arguments for the symmetry related commands, if you type the keyword misspelled, or just a portion of it, a matching against the existing keywords is performed, and when there is only one match, the input is automatically corrected.
<Text-field style="Heading 2" layout="Heading 2" bookmark="bkmrk3">Brief description of each command</Text-field>
A brief description of the PDEtools package commands, split into General purpose and Symmetry related, is as follows.
<Text-field style="Heading 3" layout="Heading 3" bookmark="General">General purpose</Text-field>
build takes a result given by pdsolve and returns the final expression for the indeterminate function (useful when the method used by pdsolve was separation or change of variables).
casesplit splits a system of equations (and inequations) into a sequence of systems of equations and inequations such that the union of the non-singular solutions of the latter is equal to the set of solutions of the original system. In addition, in each of the returned systems, all differential or algebraic redundancies are removed, and all the integrability conditions are automatically satisfied. The computations are performed using the DifferentialAlgebra package.
charstrip evaluates the characteristic strip associated with a given first order PDE; that is, it builds the coupled system of ODEs equivalent to that PDE. Additionally, given a characteristic strip, charstrip can reverse it and return the family of PDEs behind it.
dchange performs changes of variables in any algebraic object (PDEs, multiple integrals, integro-differential equations, etc.), as well as in procedures. This command is useful to change the format of a PDE from one that is difficult to solve to one that is solvable.
dcoeffs returns coefficients of polynomial differential equations, much like coeffs with algebraic polynomials.
declare permits a simple and compact display on the screen of functions and derivatives. Typically, one declares functions, such as declare(f(x, y, z)), so that f(x,y,z) displays as 'f' (that is, just by its name). Also, derivatives are "displayed" as indexed functions and it is possible to declare a "prime variable." In other words, for functions of one variable, derivatives with respect to that variable will be displayed with a prime, '.
difforder returns the general (or particular, with regard to any variable) differential order of a partial derivative (or the maximum general or particular differential order of an expression containing partial derivatives).
dpolyform accepts an equation or expression, or a set or list of them, understood to be equal to zero, and returns a differential polynomial system of equations.
dsubs substitutes a derivative inside differential equations such that the resulting expression does not depend on the derivative being substituted.
FunctionFieldSolutions computes exact solutions to DE systems involving mathematical functions, possibly inequations, ODEs and also non-differential equations. The solutions are returned as power series (with some upper bound degree NiNJIm5HNiI=) in the mathematical functions and its derivatives (up to some upper bound differential order NiNJIm1HNiI=), having for coefficients multivariable polynomials (with some upper bound degree NiNJInJHNiI=) of the independent variables.
Laplace solves a second order linear PDE in two independent variables using the method of Laplace (not a Laplace transform).
mapde maps a PDE into another PDE with different format (from among a few formats implemented at present), which is perhaps more easily solvable.
PDEplot produces the plot of the solution for a first order linear (or nonlinear) partial differential equation (PDE), for given initial conditions.
pdetest returns either 0 (when the PDE is annulled by the solution sol), indicating that the solution is correct, or a remaining algebraic expression (obtained after simplifying the PDE with respect to the proposed solution), indicating that the solution might be wrong.
Given a PDE, pdsolve's main goal is to find an analytical solution for it. There are no restrictions as to the type, differential order, or number of independent variables of the PDEs pdsolve can try to solve.
PolynomialSolutions receives a PDE system, optionally an indication of the degree and dependency, and computes related polynomial solutions.
separability determines under what conditions it is possible to obtain a complete solution, through separation of variables by sum or product, for a given PDE. A complete solution is defined to be a solution that depends on sum(diff_ord[i]+1,i=1..n) parameters, where n is the number of independent variables and diff_ord is the maximum differential order of the PDE with respect to each of the independent variables.
Solve is an unified solver that receives a system of equations, algebraic or differential, and solves this system, returning solutions optionally independent of indicated variables, calling solve, dsolve or pdsolve according to the input received.
splitstrip evaluates the strip associated with a PDE the same way as the strip command, but returns this strip, when possible, split into subsets, obtained by calling splitsys with the ODEs of the characteristic strip as argument.
splitsys splits a set of equations (ODEs, PDEs, algebraic equations, or a combination of these) into subsets, each one with equations coupled among themselves but not coupled to the equations of the other subsets.
ToMissingDependentVariable receives a PDE and returns another one, PDE2, equivalent to PDE in that from the solution of PDE2 one gets the solution to PDE, and such that PDE2 does not depend, explicitly, on the dependent variable.
TWSolutions computes Traveling Wave Solutions for PDEs and systems of them, either as expansions in tanh or in a number of other functions like JacobiSN, WeierstrassP, etc..
undeclare clears declarations previously made.
<Text-field style="Heading 3" layout="Heading 3" bookmark="Symmetry">Symmetry solution related</Text-field>
Note: Herein infinitesimals refer to a list with the components of the infinitesimal generator of a symmetry group.
CanonicalCoordinates receives the infinitesimals of a symmetry group and returns associated canonical coordinates for it.
ChangeSymmetry performs change of variables on the infinitesimals of a symmetry generator.
CharacteristicQ receives the infinitesimals of a point symmetry and returns the characteristic of the group.
CharacteristicQInvariants receives the infinitesimals of a symmetry group and computes related differential invariants directly from the CharacteristicQ for the infinitesimals.
ConservedCurrents receives a PDE system and returns the conserved currents of it; when the system involves only ODEs, the conserved currents are the first integrals of the system.
ConservedCurrentTest receives an algebraic expression and a PDE system and verifies whether the given expression is a conserved current.
ConsistencyTest receives a PDE system and returns true or false according to whether the system is consistent
D_Dx computes total derivatives in jet notation, that is taking the independent and dependent variables and their derivatives as differentiation variables in equal footing.
DeterminingPDE receives a PDE system and computes the determining PDE system satisfied by the infinitesimals of the symmetry groups admitted by the given PDE system.
Eta_k receives the infinitesimals of a symmetry and returns a table-procedure that computes, on request, any prolongation of these infinitesimals.
Euler is the Euler operator: when applied to a DE system, it returns the exact conditions; i.e. the conditions to be satisfied when the system is a divergence.
FromJet receives a mathematical expression in jet notation and returns the corresponding expression in function notation. This command is the counterpart of ToJet.
FunctionFieldSolutions computes exact solutions to DE systems involving mathematical functions, possibly inequations, ODEs and also non-differential equations. The solutions are returned are power series (with some upper bound degree NiNJIm5HNiI=) in the mathematical functions and its derivatives (up to some upper bound differential order NiNJIm1HNiI=), having for coefficients multivariable polynomials (with some upper bound degree NiNJInJHNiI=) of the independent variables.
InfinitesimalGenerator receives the infinitesimals of a symmetry and returns a procedure (operator) representing the infinitesimal generator, that is, one which acts on a PDE system to return the related determining PDE.
Infinitesimals receives a PDE system and returns the infinitesimals of symmetry groups admitted by the given PDE system.
IntegratingFactors receives a DE system and returns the generalized integrating factors.
IntegratingFactorTest receives an algebraic expression and a DE system, and verifies whether the given expression is a generalized integrating factor.
InvariantEquation receives the infinitesimals of a symmetry group and computes the equation that is simultaneously invariant under the symmetry transformations corresponding to the given symmetries.
InvariantSolutions receives a PDE system and returns the so-called group invariant solutions for it, that is, the PDE system solutions derived by first (automatically) computing the symmetries admitted by it.
InvariantTransformation receives the infinitesimals of a symmetry group and computes the related finite (symmetry) transformations reducing the number of independent variables by N. (You can optionally specify N.) These are the transformations from which InvariantSolutions derives solutions to the PDE system.
Invariants receives the infinitesimals of a symmetry group and computes related differential invariants of any specified order.
PolynomialSolutions receives a PDE system, optionally an indication of the degree and dependency, and computes related polynomial solutions.
ReducedForm receives two PDE systems and reduces the first one with respect to the second one; this is similar to what simplify/siderels does but with PDE systems. This command can be useful beyond the symmetry approach for PDE systems.
SimilaritySolutions receives a PDE system and returns the so-called similarity solutions for it. This command is present mainly for pedagogical purposes in that the solutions it returns are computed using one symmetry at a time. For practical purposes use InvariantSolutions instead, which can reduce the given PDE system using many symmetries in one go.
SimilarityTransformation receives a PDE system and computes the finite (symmetry) transformations reducing the number of independent variables by one. These are the transformations from which SimilaritySolutions derives solutions to the PDE system.
SymmetryCommutator receives a pair of infinitesimals corresponding to symmetry transformations and returns their commutator.
SymmetryGauge receives a symmetry, as a list or as an infinitesimal generator, and rewrites this symmetry in the most general form or in the one indicated using optional arguments.
SymmetryTest receives the infinitesimals of a symmetry group and a PDE system and tests whether the PDE system admits that symmetry.
SymmetryTransformation receives the infinitesimals of a 1-Dimensional point symmetry group and returns the finite form of the (symmetry) transformation leaving invariant any PDE system admitting that symmetry.
SymmetrySolutions receives the infinitesimals of a point symmetry group, a solution to some PDE system (itself not required) and returns the another solution, obtained by transforming the given one using the finite form of the (symmetry) transformation given.
ToJet receives a mathematical expression in function notation and returns the corresponding expression in jet notation. This command is the counterpart of FromJet.
<Text-field style="Heading 2" layout="Heading 2" bookmark="References">References</Text-field>
Cheb-Terrab, E.S., and von Bulow, K. "A Computational Approach for the Analytical Solving of Partial Differential Equations." Computer Physics Communications, Vol. 90, (1995): 102-116.
Olver, P.J. Equivalence, Invariants and Symmetry. Cambridge Press, 1995.
Stephani, H. Differential Equations: Their Solution Using Symmetries. Edited by M. MacCallum. Cambridge University Press, 1989.
See AlsoDEtoolsdsolveLibraryodetestpdetestpdsolveUsingPackages