 PDEtools - Maple Programming Help

Home : Support : Online Help : Mathematics : Differential Equations : Lie Symmetry Method : Commands for PDEs (and ODEs) : PDEtools/FunctionFieldSolutions

PDEtools

 FunctionFieldSolutions
 compute function field solutions for (differential or not) system of equations.

 Calling Sequence FunctionFieldSolutions(PDESYS, DepVars, options=value)

Parameters

 PDESYS - equation or a set or list of them; it can include PDEs, ODEs, non-differential equations and inequations DepVars - (optional) may be required; function, or a set or list of them; the dependent variables of the problem ivars = ... - (optional) name or set of names; additional independent variables, typically not present in the dependency of the unknowns DepVars mathfunctiondegree = ... - (optional) non-negative integer, or a set of equations where the lhs is one of unknowns (DepVars) and the rhs is a non-negative integer; specifies the upper bound degree for the math functions in its solution numberofsolutions = ... - (optional) non-negative integer or the keyword all; specifies the number of polynomial solutions desired. The default is all having degree as upper bound. orderofderivatives = ... - (optional) non-negative integer, or a set of equations where the lhs is one of unknowns (DepVars) and the rhs is a non-negative integer; specifies the upper bound order for derivatives in its solution polynomialdegree = ... - (optional) non-negative integer, or a set of equations where the lhs is one of unknowns (DepVars) and the rhs is a non-negative integer; specifies the upper bound degree for the degree of polynomials in its solution polynomialdependency = ... - (optional) non-negative integer, a range of them, a name, or a set of names, or a set or list containing any of the previous objects; dependency of the solution simplifier = ... - (optional) simplifier to be used instead of the default simplify/size

Options

A number of optional arguments can change the default computational behavior of FunctionFieldSolutions in ways that, depending on the example or your needs, may be preferred.

 • ivars = name | set(name) | list(name)
 This option permits specifying independent variables of the problem even when they are not present in the dependency of the functions that enter DepVars, the unknowns of the problem. Note that besides those variables specified using ivars = ..., all the variables found in the dependency of the unknowns of problem are also always considered independent variables.
 • mathfunctiondegree = nonnegint
 By default, an upper bound for the degree of the solution with respect to the mathematical functions of PDESYS and their derivatives is determined by internal routines based on PDEtools:-Library:-UpperBounds. You can optionally specify this upper bound by passing the argument mathfunctiondegree = n where n is a non-negative integer (could be zero).
 • numberofsolutions = nonnegint
 The right-hand side is a positive integer indicating how many solutions FunctionFieldSolutions will attempt to compute before interrupting the process and returning the solutions found. The default behavior is to compute as many polynomial solutions as can be computed with the upper bounds for degrees used or given by the user (option degree).
 • orderofderivatives = nonnegint
 By default, the solution attempted is polynomial in the mathematical functions found in PDESYS as well as in their derivatives up to the maximal differential order found in the equations of PDESYS. You can optionally specify this order of derivatives of mathematical functions of PDESYS by passing the argument orderofderivatives = n where n is a non-negative integer (could be zero).
 • polynomialdegree = nonnegint
 By default, an upper bound for the degree of the polynomials of independent variables, that appear as coefficients of the powers of mathematical functions entering the solution is determined by internal routines based on PDEtools:-Library:-UpperBounds. You can optionally specify this upper bound by passing the optional argument polynomialdegree = n where n is a non-negative integer (could be zero).
 • dependency = name | nonnegint | range(nonnegint) | set(name) | list(name),
 This option is useful to restrict in different ways the dependency of the polynomials entering as coefficients of mathematical functions within the solution. When dependency = n, a non-negative integer, only polynomial solutions depending on different (permutations of) n independent variables will be computed. When dependency = n..m, that is a range from n to m, only solutions depending on permutations of k variables, where k is in the range n..m will be computed. Alternatively, you can also indicate which permutations of which variables are to be the dependency of the polynomial solutions by specifying the rhs as a set of lists, with each list containing the desired dependency, for example: say the independent variables are x, y, z, then you can specify dependency = {[x, y], [x, t], [y, t]}.
 • simplifier = ...
 The right-hand side indicates the simplifier to be used instead of the default which is simplify/size. This option is of use not just to simplify the solutions. You can specify any procedure to be used as simplifier; in this way you can have the solutions computed by FunctionFieldSolutions post-processed entirely in the way you need before being returned (e.g. discard some, do something else with other ones, etc.).

Description

 • Given PDESYS, a system of equations for DepVars, possibly including inequations and non-differential equations, FunctionFieldSolutions computes solutions that are polynomial in the mathematical functions of PDESYS and its derivatives, with coefficients that are polynomial in the independent variables. The independent variables are typically the variables DepVars depend on, plus any others optionally specified with ivars = .... FunctionFieldSolutions also works with anticommutative variables set using the Physics package using the approach explained in PerformOnAnticommutativeSystem.
 • If DepVars is not given, FunctionFieldSolutions will consider all the differentiated unknown functions in PDESYS as unknowns of the problems. Specifying DepVars however permits not only restricting the unknowns in different ways but also specifying unknowns of the problems which do not appear differentiated in PDESYS.
 • FunctionFieldSolutions uses a refinement of the heuristic used by PolynomialSolutions to compute an upper bound for degree of the solution with respect to the mathematical functions entering PDESYS and their derivatives. The differential order of the derivatives of the mathematical functions of PDESYS entering the solution is equal to the maximal differential order of the equations of PDESYS. The coefficients of these mathematical functions and their derivatives are in turn polynomial in the independent variables, of degree determined by UpperBounds.
 • FunctionFieldSolutions is automatically invoked by Infinitesimals, InvariantSolutions, and SimilaritySolutions when they receive the optional argument typeofsymmetry = functionfield in which case the dependency of the polynomials entering the coefficients of the mathematical functions, as well as their degree, can also be specified directly to those commands using their dependency and degree options.
 • To avoid having to remember the optional keywords, if you type the keyword misspelled, or just a portion of it, a matching against the correct keywords is performed, and when there is only one match, the input is automatically corrected.

Examples

 > $\mathrm{with}\left(\mathrm{PDEtools}\right):$

Consider the following linear system in $F\left(x,y\right),G\left(x,y\right)$ that involves the mathematical function $\mathrm{exp}$

 > $\mathrm{declare}\left(\left(F,G\right)\left(x,y\right)\right)$
 ${F}{}\left({x}{,}{y}\right){}{\mathrm{will now be displayed as}}{}{F}$
 ${G}{}\left({x}{,}{y}\right){}{\mathrm{will now be displayed as}}{}{G}$ (1)
 > $\mathrm{sys}\left[1\right]≔\left\{-\mathrm{diff}\left(F\left(x,y\right),y\right)+\mathrm{diff}\left(F\left(x,y\right),x\right)=-\mathrm{exp}\left(x\right)+\frac{1}{y}+\mathrm{exp}\left(x\right)y+\frac{1}{x},-\mathrm{diff}\left(G\left(x,y\right),y\right)+\mathrm{diff}\left(G\left(x,y\right),x\right)=-\mathrm{exp}\left(x\right)-\frac{1}{y}+\mathrm{exp}\left(x\right)y+\frac{1}{x}\right\}$
 ${{\mathrm{sys}}}_{{1}}{≔}\left\{{-}{{F}}_{{y}}{+}{{F}}_{{x}}{=}{-}{{ⅇ}}^{{x}}{+}\frac{{1}}{{y}}{+}{{ⅇ}}^{{x}}{}{y}{+}\frac{{1}}{{x}}{,}{-}{{G}}_{{y}}{+}{{G}}_{{x}}{=}{-}{{ⅇ}}^{{x}}{-}\frac{{1}}{{y}}{+}{{ⅇ}}^{{x}}{}{y}{+}\frac{{1}}{{x}}\right\}$ (2)

Typically, systems of this type do not admit polynomial solutions and frequently admit function field solutions:

 > $\mathrm{PolynomialSolutions}\left(\mathrm{sys}\left[1\right]\right)$
 > $\mathrm{sol}\left[1\right]≔\mathrm{FunctionFieldSolutions}\left(\mathrm{sys}\left[1\right]\right)$
 ${{\mathrm{sol}}}_{{1}}{≔}\left\{{F}{=}{{ⅇ}}^{{x}}{}{y}{+}{\mathrm{ln}}{}\left({x}\right){-}{\mathrm{ln}}{}\left({y}\right){+}{\left({x}{+}{y}\right)}^{{2}}{}{\mathrm{_C6}}{+}{\mathrm{_C5}}{}{x}{+}{\mathrm{_C5}}{}{y}{+}{\mathrm{_C4}}{,}{G}{=}{{ⅇ}}^{{x}}{}{y}{+}{\mathrm{ln}}{}\left({x}\right){+}{\mathrm{ln}}{}\left({y}\right){+}{\left({x}{+}{y}\right)}^{{2}}{}{\mathrm{_C3}}{+}{\mathrm{_C2}}{}{x}{+}{\mathrm{_C2}}{}{y}{+}{\mathrm{_C1}}\right\}$ (3)

Verify this solution

 > $\mathrm{pdetest}\left(\mathrm{sol}\left[1\right],\mathrm{sys}\left[1\right]\right)$
 $\left\{{0}\right\}$ (4)

Compare with the general solution, that for this example is computable by pdsolve

 > $\mathrm{pdsolve}\left(\mathrm{sys}\left[1\right]\right)$
 $\left\{{F}{=}{{ⅇ}}^{{x}}{}{y}{-}{\mathrm{ln}}{}\left({-}{y}\right){+}{\mathrm{_F1}}{}\left({x}{+}{y}\right){+}{\mathrm{ln}}{}\left({x}\right){,}{G}{=}{{ⅇ}}^{{x}}{}{y}{-}{\mathrm{ln}}{}\left({-}{y}\right){+}{\mathrm{ln}}{}\left({x}\right){+}{2}{}{\mathrm{ln}}{}\left({y}\right){+}{\mathrm{_F2}}{}\left({x}{+}{y}\right)\right\}$ (5)

The following system is similar to ${\mathrm{sys}}_{1}$ but contains nonlinear terms and its solution is out of reach for pdsolve

 > $\mathrm{sys}\left[2\right]≔\left\{-F\left(x,y\right)\mathrm{diff}\left(F\left(x,y\right),y\right)+\mathrm{diff}\left(F\left(x,y\right),x\right)=-F\left(x,y\right)\left(\mathrm{exp}\left(x\right)-\frac{1}{y}\right)+\mathrm{exp}\left(x\right)y+\frac{1}{x},-F\left(x,y\right)\mathrm{diff}\left(G\left(x,y\right),y\right)+\mathrm{diff}\left(G\left(x,y\right),x\right)=-F\left(x,y\right)\left(\mathrm{exp}\left(x\right)+\frac{1}{y}\right)+\mathrm{exp}\left(x\right)y+\frac{1}{x}\right\}$
 ${{\mathrm{sys}}}_{{2}}{≔}\left\{{-}{F}{}{{F}}_{{y}}{+}{{F}}_{{x}}{=}{-}{F}{}\left({{ⅇ}}^{{x}}{-}\frac{{1}}{{y}}\right){+}{{ⅇ}}^{{x}}{}{y}{+}\frac{{1}}{{x}}{,}{-}{F}{}{{G}}_{{y}}{+}{{G}}_{{x}}{=}{-}{F}{}\left({{ⅇ}}^{{x}}{+}\frac{{1}}{{y}}\right){+}{{ⅇ}}^{{x}}{}{y}{+}\frac{{1}}{{x}}\right\}$ (6)
 > $\mathrm{sol}\left[2\right]≔\mathrm{FunctionFieldSolutions}\left(\mathrm{sys}\left[2\right]\right)$
 ${{\mathrm{sol}}}_{{2}}{≔}\left\{{F}{=}{{ⅇ}}^{{x}}{}{y}{+}{\mathrm{ln}}{}\left({x}\right){-}{\mathrm{ln}}{}\left({y}\right){+}{\mathrm{_C1}}{,}{G}{=}{{ⅇ}}^{{x}}{}{y}{+}{\mathrm{ln}}{}\left({x}\right){+}{\mathrm{ln}}{}\left({y}\right){+}{\mathrm{_C2}}\right\}$ (7)
 > $\mathrm{pdetest}\left(\mathrm{sol}\left[2\right],\mathrm{sys}\left[2\right]\right)$
 $\left\{{0}\right\}$ (8)

The following nonlinear system is also not solvable by pdsolve and its solution via FunctionFieldSolutions takes time to be computed; in cases like this one, the use of optional arguments to restrict the degrees in which the solution would depend on mathematical functions, can greatly diminish the computational time

 > $\mathrm{sys}\left[3\right]≔\left\{-F\left(x,y\right)\mathrm{diff}\left(F\left(x,y\right),y\right)+\mathrm{diff}\left(F\left(x,y\right),x\right)=-F\left(x,y\right)\left(\mathrm{exp}\left(x\right)-\frac{1}{y}\mathrm{exp}\left(\frac{x}{y}\right)\right)+\mathrm{exp}\left(x\right)y+\frac{\mathrm{exp}\left(\frac{x}{y}\right)}{x},-F\left(x,y\right)\mathrm{diff}\left(G\left(x,y\right),y\right)+\mathrm{diff}\left(G\left(x,y\right),x\right)=-F\left(x,y\right)\left(\mathrm{exp}\left(x\right)+\frac{\mathrm{cos}\left(xy\right)}{y}\right)+\mathrm{exp}\left(x\right)y+\frac{\mathrm{cos}\left(xy\right)}{x}\right\}$
 ${{\mathrm{sys}}}_{{3}}{≔}\left\{{-}{F}{}{{F}}_{{y}}{+}{{F}}_{{x}}{=}{-}{F}{}\left({{ⅇ}}^{{x}}{-}\frac{{{ⅇ}}^{\frac{{x}}{{y}}}}{{y}}\right){+}{{ⅇ}}^{{x}}{}{y}{+}\frac{{{ⅇ}}^{\frac{{x}}{{y}}}}{{x}}{,}{-}{F}{}{{G}}_{{y}}{+}{{G}}_{{x}}{=}{-}{F}{}\left({{ⅇ}}^{{x}}{+}\frac{{\mathrm{cos}}{}\left({y}{}{x}\right)}{{y}}\right){+}{{ⅇ}}^{{x}}{}{y}{+}\frac{{\mathrm{cos}}{}\left({y}{}{x}\right)}{{x}}\right\}$ (9)
 > $\mathrm{sol}\left[3\right]≔\mathrm{FunctionFieldSolutions}\left(\mathrm{sys}\left[3\right],\mathrm{mathfunctiondegree}=1\right)$
 ${{\mathrm{sol}}}_{{3}}{≔}\left\{{F}{=}{\mathrm{Ei}}{}\left(\frac{{x}}{{y}}\right){-}{\mathrm{_C4}}{}{\mathrm{Si}}{}\left({y}{}{x}\right){+}{\mathrm{_C4}}{}{\mathrm{Ssi}}{}\left({y}{}{x}\right){+}{{ⅇ}}^{{x}}{}{y}{+}{\mathrm{_C2}}{,}{G}{=}{\mathrm{Ci}}{}\left({y}{}{x}\right){+}{\mathrm{_C3}}{}{\mathrm{Si}}{}\left({y}{}{x}\right){-}{\mathrm{_C3}}{}{\mathrm{Ssi}}{}\left({y}{}{x}\right){+}{{ⅇ}}^{{x}}{}{y}{+}{\mathrm{_C1}}\right\}$ (10)
 > $\mathrm{pdetest}\left(\mathrm{sol}\left[3\right],\mathrm{sys}\left[3\right]\right)$
 $\left\{{0}\right\}$ (11)

Compatibility

 • The PDEtools[FunctionFieldSolutions] command was introduced in Maple 15.