PDEtools
FunctionFieldSolutions
compute function field solutions for (differential or not) system of equations.
Calling Sequence
Parameters
Options
Description
Examples
Compatibility
FunctionFieldSolutions(PDESYS, DepVars, options=value)
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
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), <or a set or list of any of the previous types>
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]}.
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.).
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.
with⁡PDEtools:
Consider the following linear system in F⁡x,y,G⁡x,y that involves the mathematical function exp
declare⁡F,G⁡x,y
F⁡x,y⁢will now be displayed as⁢F
G⁡x,y⁢will now be displayed as⁢G
sys1≔−diff⁡F⁡x,y,y+diff⁡F⁡x,y,x=−exp⁡x+1y+exp⁡x⁢y+1x,−diff⁡G⁡x,y,y+diff⁡G⁡x,y,x=−exp⁡x−1y+exp⁡x⁢y+1x
sys1≔−Fy+Fx=−ⅇx+1y+ⅇx⁢y+1x,−Gy+Gx=−ⅇx−1y+ⅇx⁢y+1x
Typically, systems of this type do not admit polynomial solutions and frequently admit function field solutions:
PolynomialSolutions⁡sys1
sol1≔FunctionFieldSolutions⁡sys1
sol1≔F=ⅇx⁢y+ln⁡x−ln⁡y+x+y2⁢c__62+x+y⁢c__5+c__4,G=ⅇx⁢y+ln⁡x+ln⁡y+x+y2⁢c__32+x+y⁢c__2+c__1
Verify this solution
pdetest⁡sol1,sys1
0
Compare with the general solution, that for this example is computable by pdsolve
pdsolve⁡sys1
F=ⅇx⁢y−ln⁡−y+f__1⁡x+y+ln⁡x,G=ⅇx⁢y+2⁢ln⁡y+f__2⁡x+y−ln⁡−y+ln⁡x
The following system is similar to sys1 but contains nonlinear terms and its solution is out of reach for pdsolve
sys2≔−F⁡x,y⁢diff⁡F⁡x,y,y+diff⁡F⁡x,y,x=−F⁡x,y⁢exp⁡x−1y+exp⁡x⁢y+1x,−F⁡x,y⁢diff⁡G⁡x,y,y+diff⁡G⁡x,y,x=−F⁡x,y⁢exp⁡x+1y+exp⁡x⁢y+1x
sys2≔−F⁢Fy+Fx=−F⁢ⅇx−1y+ⅇx⁢y+1x,−F⁢Gy+Gx=−F⁢ⅇx+1y+ⅇx⁢y+1x
sol2≔FunctionFieldSolutions⁡sys2
sol2≔F=ⅇx⁢y+ln⁡x−ln⁡y+c__1,G=ⅇx⁢y+ln⁡x+ln⁡y+c__2
pdetest⁡sol2,sys2
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
sys3≔−F⁡x,y⁢diff⁡F⁡x,y,y+diff⁡F⁡x,y,x=−F⁡x,y⁢exp⁡x−1y⁢exp⁡xy+exp⁡x⁢y+exp⁡xyx,−F⁡x,y⁢diff⁡G⁡x,y,y+diff⁡G⁡x,y,x=−F⁡x,y⁢exp⁡x+cos⁡x⁢yy+exp⁡x⁢y+cos⁡x⁢yx
sys3≔−F⁢Fy+Fx=−F⁢ⅇx−ⅇxyy+ⅇx⁢y+ⅇxyx,−F⁢Gy+Gx=−F⁢ⅇx+cos⁡x⁢yy+ⅇx⁢y+cos⁡x⁢yx
sol3≔FunctionFieldSolutions⁡sys3,mathfunctiondegree=1
sol3≔F=Ei⁡xy−c__4⁢Si⁡x⁢y+c__4⁢Ssi⁡x⁢y+ⅇx⁢y+c__2,G=Ci⁡x⁢y+c__3⁢Si⁡x⁢y−c__3⁢Ssi⁡x⁢y+ⅇx⁢y+c__1
pdetest⁡sol3,sys3
The PDEtools[FunctionFieldSolutions] command was introduced in Maple 15.
For more information on Maple 15 changes, see Updates in Maple 15.
See Also
DEtools/polysols
pdetest
PDEtools/Library
PerformOnAnticommutativeSystem
Physics
Setup
TWSolutions
Download Help Document