ODESolStruc
Reductions of order returned by dsolve
Calling Sequence
Parameters
Description
Examples
ODESolStruc(ans, [{reduced_ODE}, {TR}, {ITR}])
ans
-
answer expressed in terms of (r, s(r)), for an ODE originally in y(x).
{reduced_ODE}
set containing the reduced_ODEs for s(r).
{TR}
set containing the transformation equations from (r,s(r)) to (x,y(x)), where (r, s(r)) and (x, y(x)) represent any two pairs of independent/dependent variables.
{ITR}
set containing the transformation equations from (x,y(x)) to (r,s(r)).
For high order ODEs it may happen that dsolve succeeds in reducing the order of the ODE but not in solving the problem to the end. In those cases, the answer is expressed using ODESolStruc. The motivation for this routine is that the user may be able to obtain a solution for the reduced ODE, by manipulating it using the tools available in DEtools, or as a series expansion, or by other means. If a solution to the reduced ODE is obtained, a solution to the original problem can be built using DEtools[buildsol].
ODESolStruc is a function of two arguments. The first argument is the true mathematical value of the structure, written in terms of new variables (herein called r and s(r)) introduced by dsolve during the solving process. The second argument is a list with three sets, respectively containing: the reduced ODE for s(r); the transformation of variables (TR) used in the reduction process, from {r, s(r)} to {x, y(x)} (herein representing the variables of the original problem); and the inverse transformation (ITR).
The transformation sets TR and ITR are defined as follows: changing variables in the reduced ODE using TR must yield the original ODE; changing variables in the original ODE using ITR must yield the reduced ODE (see the example below). To perform the change of variables see PDEtools[dchange].
The differentiation rule of ODESolStruc is defined as follows. When calculating the derivative, only the first argument (true mathematical value of the structure) is differentiated, and it is considered a function of x, the old independent variable. The derivative is then calculated using the chain rule, taking into account the transformation equations TR. Note that the new variables {r, s(r)} are considered "dummies" (like the integration variable in a definite integral), and then the derivative of the ODESolStruc with respect to the new independent variable r is 0.
A second order nonlinear ODE
ode1≔diff⁡diff⁡y⁡x,x,x=−diff⁡y⁡x,x2⁢y⁡x2+xy⁡x3
ode1≔ⅆ2ⅆx2y⁡x=−ⅆⅆxy⁡x2⁢y⁡x2+xy⁡x3
This ODE is reduced by dsolve to a first order ODE of Abel type
ans1≔dsolve⁡ode1
ans1≔y⁡x=_a⁢ⅇ4⁢∫_b⁡_aⅆ_a3+4⁢c__1334whereⅆⅆ_a_b⁡_a=2⁢3⁢_a4+8⁢_b⁡_a39⁢_a3+8⁢_b⁡_a23+_b⁡_a_a,_a=y⁡xx34,_b⁡_a=3⁢x344⁢ⅆⅆxy⁡x⁢x−3⁢y⁡x,x=ⅇ4⁢∫_b⁡_aⅆ_a3+4⁢c__13,y⁡x=_a⁢ⅇ4⁢∫_b⁡_aⅆ_a3+4⁢c__1334
The display of ODESolStruc uses where to display the first operand (the answer) on the left hand side and the list with the reduced ODE and the transformation equations on the right hand side.
Answers containing ODESolStruc can also be tested using odetest
odetest⁡ans1,ode1
0
Each piece of the ODESolStruc above can be selected using the mouse, or through the following command:
reduced_ODE≔op⁡2,2,1,1,ans1
reduced_ODE≔ⅆⅆ_a_b⁡_a=2⁢3⁢_a4+8⁢_b⁡_a39⁢_a3+8⁢_b⁡_a23+_b⁡_a_a
TR≔op⁡2,2,2,ans1
TR≔_a=y⁡xx34,_b⁡_a=3⁢x344⁢ⅆⅆxy⁡x⁢x−3⁢y⁡x
ITR≔op⁡2,2,3,ans1
ITR≔x=ⅇ4⁢∫_b⁡_aⅆ_a3+4⁢c__13,y⁡x=_a⁢ⅇ4⁢∫_b⁡_aⅆ_a3+4⁢c__1334
new_vars≔map⁡lhs,TR
new_vars≔_a,_b⁡_a
old_vars≔map⁡lhs,ITR
old_vars≔x,y⁡x
The original ODE (ode[1] above) can be reobtained by changing variables in the reduced_ODE, using TR as follows:
ODE≔PDEtoolsdchange⁡TR,reduced_ODE:
original_ODE≔normal⁡isolate⁡ODE,diff⁡y⁡x,x,x
original_ODE≔ⅆ2ⅆx2y⁡x=−ⅆⅆxy⁡x2⁢y⁡x2+xy⁡x3
The reduced_ODE, in turn, can be obtained from the original_ODE by changing variables using the inverse transformation ITR:
RDE≔PDEtoolsdchange⁡ITR,original_ODE,_a,_b⁡_a:
collect⁡isolate⁡RDE,diff⁡_b⁡_a,_a,_b⁡_a,normal
ⅆⅆ_a_b⁡_a=2⁢3⁢_a4+8⁢_b⁡_a39⁢_a3+8⁢_b⁡_a23+_b⁡_a_a
See Also
DESol
DEtools[buildsol]
dsolve
eval
Download Help Document