PDEtools
ToJet
rewrites in jet notation a given mathematical expression
FromJet
rewrites in function notation a mathematical expression written in jet notation
Calling Sequence
Parameters
Description
Examples
ToJet(expr, DepVars, jetnotation = ..., ...)
FromJet(expr, DepVars, differentiationnotation = ...)
expr
-
algebraic expression or equation
DepVars
function or list of functions indicating the dependent variables of the problem
differentiationnotation = ...
(optional) can be diff (default), D; specifies the derivative notation to use
jetnotation = ...
(optional) can be jetnumbers, jetvariables (default), jetvariableswithbrackets or jetODE; specifies the jet notation to use
quiet = ...
(optional) can be true (default for FromJet) or false (default for ToJet); to avoid displaying information regarding the enumeration representing independent variables
The ToJet and FromJet commands rewrite back and forth mathematical expressions using jet and function notation respectively. ToJet is also used to rewrite an expression already in jet notation using a different jet notation.
Given a set of m smooth functions Ym depending on n independent variables Xn, the associated "jet space" prolonged to order k is the Euclidean space you construct taking each of these n independent and m dependent variables, as well as the partial derivatives of the Ym with respect to the Xn up to order k, all as independent variables in equal footing. Recalling, a function of n variables has n+kk partial derivatives of order k, including order 0. Thus, the dimension of the kth prolongation of the jet space is n+m⁢n+kk.
The four alternative jet notations handled by ToJet and FromJet and understood by all the symmetry commands of PDEtools are: jetvariables (also used in DifferentialAlgebra), jetvariableswithbrackets (also used in DifferentialAlgebra and the deprecated diffalg), jetnumbers (also used in the Maple D differentiation operator) and jetODE (also used in DEtools[Lie]). You transform from one notation to the other one using ToJet with the option jetnotation = ... or the synonym notation = ..., as shown in the Examples section.
The default jet notation used by ToJet is jetvariables, which is frequently used in textbooks and easier to read than the other notations. The table relating function <-> jetvariables notation can be summarized around an example - say the function u⁡x,t, as follows:
function notation
jetvariables notation
u⁡x,t
= u
∂∂xu⁡x,t
= ux
∂2∂x∂tu⁡x,t
= ux,t
...
Both the DifferentialAlgebra and its preceding deprecated diffalg packages also use a similar notation, jetvariableswithbrackets, with only one difference: u⁡x,t=u, so with brackets [] after the name of the dependent variable only when representing the derivative of order zero. To have these brackets in the output of ToJet use the option jetnotation = jetvariableswithbrackets.
An alternative jet notation, frequently used for programming purposes, is the jetnumbers notation, that follows the conventions used by the Maple D differentiation operator. The equivalence between function and jetnumbers notation is thus as follows:
jet notation
= u1
= u1,2
When the dependent variables involved have different dependencies, the enumeration used to represent the independent variables is displayed on the screen (see first example in the Examples section). To avoid the display of this information use the quiet option.
Finally, the jetODE notation can be used when there is only one dependent variable of only one independent variable, as for instance u⁡x. The table relating function <-> jetODE notation is
jetODE notation
u⁡x
ⅆⅆxu⁡x
= _y1
ⅆ2ⅆx2u⁡x
= _y2
Note the use of _y to prefix the representation of derivatives regardless of whether the unknown (in this example, u⁡x) has the name y.
By default FromJet returns the derivatives found in expr expressed using diff; to make it return using the D notation specify the optional argument differentiationnotation = D.
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,D_Dx,declare,ToJet,FromJet
D_Dx,declare,ToJet,FromJet
DepVars≔u⁡x,t,v⁡t,w⁡y
PDE≔diff⁡u⁡x,t⁢v⁡t⁢w⁡y,x+diff⁡u⁡x,t⁢v⁡t⁢w⁡y,t,y
PDE≔∂∂xu⁡x,t⁢v⁡t⁢w⁡y+∂∂tu⁡x,t⁢v⁡t⁢ⅆⅆyw⁡y+u⁡x,t⁢ⅆⅆtv⁡t⁢ⅆⅆyw⁡y
The following is PDE in jetvariables notation
jetPDE≔ToJet⁡PDE,DepVars
jetPDE≔u⁢vt⁢wy+v⁢w⁢ux+v⁢ut⁢wy
Compare with the jetnumbers notation, and because the DepVars involve different dependencies, the enumeration representing independent variables is also displayed
jetnumbersPDE≔ToJet⁡PDE,DepVars,notation=jetnumbers
jet notation: [1 = x, 2 = t, 3 = y]
________________________________
jetnumbersPDE≔u⁢v2⁢w3+u1⁢v⁢w+u2⁢v⁢w3
To avoid displaying information regarding the enumeration for the independent variables include the keyword quiet.
In all cases, to convert back, use FromJet
FromJet⁡jetnumbersPDE,DepVars
∂∂xu⁡x,t⁢v⁡t⁢w⁡y+∂∂tu⁡x,t⁢v⁡t⁢ⅆⅆyw⁡y+u⁡x,t⁢ⅆⅆtv⁡t⁢ⅆⅆyw⁡y
To have the output in D notation use the optional argument differentiationnotation = D
FromJet⁡jetPDE,DepVars,differentiationnotation=D
D1⁡u⁡x,t⁢v⁡t⁢w⁡y+D2⁡u⁡x,t⁢v⁡t⁢D⁡w⁡y+u⁡x,t⁢D⁡v⁡t⁢D⁡w⁡y
One of the features of expressions written in jet notation is that you can compute partial derivatives of them with respect to functions and derivatives in the natural way you differentiate in Maple - because in jet notation functions and derivatives are represented by objects of type name. However, because in jet notation the dependency of the functions is not explicit, to compute total derivatives you need to use the total differentiation command D_Dx of PDEtools. For example, the total derivative of jetnumbersPDE with respect to t is given by diff(PDE, t) or, in the jet notation of jetnumbersPDE, by
D_Dx⁡jetnumbersPDE,t,DepVars
u⁢v2,2⁢w3+u1⁢v2⁢w+2⁢u2⁢v2⁢w3+u1,2⁢v⁢w+u2,2⁢v⁢w3
FromJet⁡,DepVars
∂2∂t∂xu⁡x,t⁢v⁡t⁢w⁡y+∂∂xu⁡x,t⁢ⅆⅆtv⁡t⁢w⁡y+∂2∂t2u⁡x,t⁢v⁡t⁢ⅆⅆyw⁡y+2⁢∂∂tu⁡x,t⁢ⅆⅆtv⁡t⁢ⅆⅆyw⁡y+u⁡x,t⁢ⅆ2ⅆt2v⁡t⁢ⅆⅆyw⁡y
diff⁡PDE,t−
0
Note that the D_Dx command is context sensitive: it returns using the jet notation found in the input, so if instead of jetnumbersPDE you pass jetPDE written using jetvariables, instead of (4.8) you get
D_Dx⁡jetPDE,t,DepVars
u⁢vt,t⁢wy+v⁢w⁢ux,t+v⁢ut,t⁢wy+w⁢ux⁢vt+2⁢ut⁢vt⁢wy
FromJet can also be used to rewrite expressions involving the ODE jet notation of DEtools[Lie]
JetODE≔_y2=f⁡x,y,_y1
D_Dx⁡JetODE,x,y⁡x
_y3=∂∂xf⁡x,y,_y1+∂∂yf⁡x,y,_y1⁢_y1+∂∂_y1f⁡x,y,_y1⁢_y2
FromJet⁡JetODE,y⁡x
ⅆ2ⅆx2y⁡x=f⁡x,y⁡x,ⅆⅆxy⁡x
ToJet⁡,y⁡x
yx,x=f⁡x,y,yx
To have this output expressed using jetODE or jetvariableswithbrackets notation use the optional argument notation = ...
ToJet⁡,y⁡x,notation=jetODE
_y2=f⁡x,y,_y1
ToJet⁡,y⁡x,notation=jetvariableswithbrackets
Note also the conversion directly from ODE jet notation to PDE jet notation:
ToJet⁡JetODE,y⁡x
Both ToJet and FromJet automatically rewrite any jet notation found in the input into the target notation. Consider this input where the functions are y⁡x and u⁡x,t and various notations appear mixed:
ee≔_y2⁢_y1+u⁢y+yx⁢u⁡x,t+u1⁢y⁡x+ux⁢ut
DepVars≔y⁡x,u⁡x,t
ToJet⁡ee,DepVars
u⁢y+u⁢yx+y⁢ux+ux⁢ut+yx,x⁢yx
FromJet⁡ee,DepVars
ⅆ2ⅆx2y⁡x⁢ⅆⅆxy⁡x+u⁡x,t⁢y⁡x+ⅆⅆxy⁡x⁢u⁡x,t+∂∂xu⁡x,t⁢y⁡x+∂∂xu⁡x,t⁢∂∂tu⁡x,t
See Also
D_Dx
declare
DEtools[Lie]
DifferentialAlgebra
Download Help Document