DEtools
odepde
return the PDE for the coefficients of the symmetry generator
Calling Sequence
Parameters
Description
Examples
odepde(ODE, sym)
odepde(ODE, chi)
odepde(ODE, C)
ODE
-
ODE (ordinary differential equation)
sym
symmetry from which to build a PDE
chi
(optional) different scheme to obtain the coefficients of the infinitesimal that generate the PDE
C
obtain the PDE satisfied by a first integral of ODE
Given a first order ODE
diff(y(x),x) = F(x, y(x));
ⅆⅆxy⁡x=F⁡x,y⁡x
that is assumed to be invariant under the action of the one-parameter Lie group with infinitesimal generator
f -> xi(x, y)*diff(f,x) + eta(x, y) *diff(f,y);
f→ξ⁡x,y⁢∂∂x⁢f+η⁡x,y⁢∂∂y⁢f
or a second order ODE
diff(y(x),x,x) = F(x, y(x), diff(y(x),x));
ⅆ2ⅆx2y⁡x=F⁡x,y⁡x,ⅆⅆxy⁡x
assumed to be invariant under
f -> xi(x, y, _y1)*diff(f,x) + eta(x, y, _y1) *diff(f,y);
f→ξ⁡x,y,_y1⁢∂∂x⁢f+η⁡x,y,_y1⁢∂∂y⁢f
or an nth order ODE
yn=F⁡x,y,y⁢' ,y⁢'',...,yn−1
f -> xi(x, y, _y1,`...`,_yn)*diff(f,x) + eta(x, y, _y1,`...`,_yn) *diff(f,y);
f→ξ⁡x,y,_y1,...,_yn⁢∂∂x⁢f+η⁡x,y,_y1,...,_yn⁢∂∂y⁢f
the odepde command builds the PDE that must be satisfied by the infinitesimals xi and eta. This command is context sensitive; it returns the appropriate PDE depending on the differential order of the given ODE.
As a convention, _y1 represents the first derivative of the indeterminate function of the given ODE, _y2 represents the second, and so on.
In general, ξ=G, η=_y1⁢G is always a (trivial) solution to the PDE, where G is an arbitrary function of x,y,_y1,…,_yn, and _yn is replaced by the right hand side of the ODE.
Thus, any solution ξ=A,η=B, gives rise to a solution with xi=0, η=−_y1⁢A+B. This means that we can always set xi=0 without any loss of generality. To obtain the PDE for eta when xi=0, call odepde directly with the extra argument chi.
To any nth order ODE, _yn=F⁡x,y,_y1,…,y⁡n−1, there is a corresponding differential operator, A,
A := C -> diff(C,x) + _y1*diff(C,y)+ `...` + `_y(n-1)`*diff(C,`_y(n-2)`) + F*diff(C,`_y(n-1)`);
A≔C→∂∂x⁢C+_y1⁢∂∂y⁢C+...+_y(n-1)⁢∂∂_y(n-2)⁢C+F⁢∂∂_y(n-1)⁢C
with the property that, if A⁡C=0, then C⁡x,y,... is a first integral of the ODE. If the option C is specified, then odepde returns the ODE that is generated by applying A to C⁡x,y,....
If you are not directly interested in the PDE for xi and eta, but in the PDE for "a restricted form" of these infinitesimals, you can specify this restricted form at first, as an extra argument, and odepde builds the PDE starting from it. This is more efficient than generating the most general PDE and then substituting particular values for xi and eta afterwards, since for ODEs of degree three or higher, the size of the corresponding PDE grows exponentially as the order increases.
This function is part of the DEtools package, and so it can be used in the form odepde(..) only after executing the command with(DEtools). However, it can always be accessed through the long form of the command by using DEtools[odepde](..).
with⁡DEtools:
ODE≔diff⁡y⁡x,x=Φ⁡x,y⁡x
ODE≔ⅆⅆxy⁡x=Φ⁡x,y⁡x
PDE_xi_eta≔odepde⁡ODE
PDE_xi_eta≔∂∂x_η⁡x,y+∂∂y_η⁡x,y−∂∂x_ξ⁡x,y⁢Φ⁡x,y−∂∂y_ξ⁡x,y⁢Φ⁡x,y2−_ξ⁡x,y⁢∂∂xΦ⁡x,y−_η⁡x,y⁢∂∂yΦ⁡x,y
PDE_chi≔odepde⁡ODE,χ
PDE_chi≔∂∂x_χ⁡x,y+∂∂y_χ⁡x,y⁢Φ⁡x,y−_χ⁡x,y⁢∂∂yΦ⁡x,y
A concrete example of a second order ODE
ODE≔diff⁡y⁡x,x,x=2⁢a−y⁡x+2⁢x⁢a
ODE≔ⅆ2ⅆx2y⁡x=2⁢a−y⁡x+2⁢x⁢a
PDE_chi≔2⁢_y1⁢∂∂_y1_χ⁡x,y,_y1−_χ⁡x,y,_y1⁢a2⁢x⁢a−y2+4⁢∂2∂_y12_χ⁡x,y,_y1⁢a22⁢x⁢a−y2+2⁢2⁢_y1⁢∂2∂_y1∂y_χ⁡x,y,_y1+2⁢∂2∂_y1∂x_χ⁡x,y,_y1+∂∂y_χ⁡x,y,_y1⁢a2⁢x⁢a−y−4⁢∂∂_y1_χ⁡x,y,_y1⁢a22⁢x⁢a−y2+∂2∂x2_χ⁡x,y,_y1+∂2∂y2_χ⁡x,y,_y1⁢_y12+2⁢∂2∂x∂y_χ⁡x,y,_y1⁢_y1
What some of symgen's routines (way=2 and way=5) actually do is to look for particular solutions for PDE_chi and translate the result into an expression for _xi and _eta using xi = F*eta + chi explained above. For example:
symgen⁡ODE,way=2
_ξ=1,_η=2⁢a,_ξ=x,_η=y
The size of the PDE grows exponentially as the order of the ODE increases:
ODE2≔diff⁡y⁡x,x,x=F⁡x,y⁡x,diff⁡y⁡x,x
ODE2≔ⅆ2ⅆx2y⁡x=F⁡x,y⁡x,ⅆⅆxy⁡x
ODE3≔diff⁡y⁡x,x,x,x=F⁡x,y⁡x,diff⁡y⁡x,x,diff⁡y⁡x,x,x
ODE3≔ⅆ3ⅆx3y⁡x=F⁡x,y⁡x,ⅆⅆxy⁡x,ⅆ2ⅆx2y⁡x
ODE4≔diff⁡y⁡x,x,x,x,x=F⁡x,y⁡x,diff⁡y⁡x,x,diff⁡y⁡x,x,x,diff⁡y⁡x,x,x,x
ODE4≔ⅆ4ⅆx4y⁡x=F⁡x,y⁡x,ⅆⅆxy⁡x,ⅆ2ⅆx2y⁡x,ⅆ3ⅆx3y⁡x
length⁡odepde⁡ODE2;length⁡odepde⁡ODE3;length⁡odepde⁡ODE4
1218
15220
147211
However, the expressions are not so large when you work with a restricted form of the infinitesimals. For example:
odepde⁡ODE4,_ξ=0,_η=η⁡x
−η⁡x⁢∂∂yF⁡x,y,_y1,_y2,_y3−ⅆⅆxη⁡x⁢∂∂_y1F⁡x,y,_y1,_y2,_y3−ⅆ2ⅆx2η⁡x⁢∂∂_y2F⁡x,y,_y1,_y2,_y3−ⅆ3ⅆx3η⁡x⁢∂∂_y3F⁡x,y,_y1,_y2,_y3+ⅆ4ⅆx4η⁡x
See Also
buildsym
dsolve,Lie
equinv
PDEtools
pdsolve
symgen
Download Help Document