DEtools
rifsimp
simplify overdetermined polynomially nonlinear PDE or ODE systems
Calling Sequence
Parameters
Description
Examples
rifsimp(system, options)
rifsimp(system, vars, options)
system
-
list or set of polynomially nonlinear PDEs or ODEs (may contain inequations)
vars
(optional) list of the main dependent variables
options
(optional) sequence of options to control the behavior of rifsimp
The rifsimp function can be used to simplify or rework overdetermined systems of polynomially nonlinear PDEs or ODEs and inequations to a more useful form -- relative standard form. The rifsimp function does not solve PDE systems, but provides existence and uniqueness information, and can be used as a first step to their solution. As an example, inconsistent systems can be detected by rifsimp.
Basically, given an input PDE system, and a list of dependent variables or constants to solve for, rifsimp returns the simplified PDE system along with any existence conditions required for the simplified system to hold.
Detailed examples of the use of rifsimp for various systems (along with some explanation of the algorithm) can be found in rifsimp[overview].
Other options are sometimes required along with the specification of the system and its solving variables. For common options, please see rifsimp[options], and for more advanced use, please see rifsimp[adv_options].
For a description of all possible output configurations, see rifsimp[output].
1. Overdetermined Systems
As a first example, we have the overdetermined system of two equations in one dependent variable y(x).
sys1≔x⁢diff⁡y⁡x,x2⁢diff⁡y⁡x,x,x2−2⁢x⁢diff⁡y⁡x,x⁢diff⁡y⁡x,x,x⁢y⁡x⁢diff⁡y⁡x,x,x,x+x⁢y⁡x2⁢diff⁡y⁡x,x,x,x2−y⁡x⁢diff⁡y⁡x,x,x+diff⁡y⁡x,x2=0,−diff⁡y⁡x,x⁢diff⁡y⁡x,x,x+y⁡x⁢diff⁡y⁡x,x,x,x+2⁢y⁡x2⁢diff⁡y⁡x,x,x2−4⁢y⁡x⁢diff⁡y⁡x,x,x⁢diff⁡y⁡x,x2+2⁢diff⁡y⁡x,x4=0
sys1≔x⁢ⅆⅆxy⁡x2⁢ⅆ2ⅆx2y⁡x2−2⁢x⁢ⅆⅆxy⁡x⁢ⅆ2ⅆx2y⁡x⁢y⁡x⁢ⅆ3ⅆx3y⁡x+x⁢y⁡x2⁢ⅆ3ⅆx3y⁡x2−y⁡x⁢ⅆ2ⅆx2y⁡x+ⅆⅆxy⁡x2=0,−ⅆⅆxy⁡x⁢ⅆ2ⅆx2y⁡x+y⁡x⁢ⅆ3ⅆx3y⁡x+2⁢y⁡x2⁢ⅆ2ⅆx2y⁡x2−4⁢y⁡x⁢ⅆ2ⅆx2y⁡x⁢ⅆⅆxy⁡x2+2⁢ⅆⅆxy⁡x4=0
Now call rifsimp.
with⁡DEtools:
ans1≔rifsimp⁡sys1
ans1≔table⁡Case=y⁡x≠0,ⅆ3ⅆx3y⁡x,Solved=ⅆ2ⅆx2y⁡x=ⅆⅆxy⁡x2y⁡x,Pivots=y⁡x≠0
We see that the system has been reduced (for the case y(x) not identically zero) to one much simpler equation that can now be handled with Maple's dsolve.
dsolve⁡ans1Solved,y⁡x,explicit
y⁡x=ⅇc__1⁢x⁢c__2
In addition to assisting dsolve in obtaining exact solutions, the simplified form can be used in combination with the initialdata function to obtain the required initial data for the solved form.
id1≔initialdata⁡ans1Solved
id1≔table⁡Finite=y⁡x0=c__1,D⁡y⁡x0=c__2,Infinite=
In this case, it gives us the expected results for a second order ODE, but it can also calculate the required initial data for more complex PDE systems (see initialdata for more information). Numerical methods can now be successfully applied to the reduced system, with initial conditions of the type calculated by initialdata.
dsolve⁡convert⁡ans1Solved,setuniony⁡0=1,D⁡y⁡0=2,y⁡x,numeric,output=Array⁡0,0.25,0.5,0.75,1.0
xy⁡xⅆⅆxy⁡x0.1.2.0.2500000000000001.648721254011623.297442508023240.5000000000000002.718281358456285.436562716912570.7500000000000004.481687976095218.963375952190411.7.3890539480692114.7781078961384
Finally, we can also obtain a formal power series (Taylor series) for the local solution of this problem (see rtaylor for more information).
tay_ser≔rtaylor⁡ans1Solved,order=4
tay_ser≔y⁡x=y⁡x0+D⁡y⁡x0⁢x−x0+D⁡y⁡x02⁢x−x022⁢y⁡x0+D⁡y⁡x03⁢x−x036⁢y⁡x02+D⁡y⁡x04⁢x−x0424⁢y⁡x03
The above series is fully determined when given the initial data described earlier:
tay_ser≔rtaylor⁡ans1Solved,id1,order=4
tay_ser≔y⁡x=c__1+c__2⁢x−x0+c__22⁢x−x022⁢c__1+c__23⁢x−x036⁢c__12+c__24⁢x−x0424⁢c__13
2. Inconsistent Systems
rifsimp can often determine whether a system is inconsistent.
sys2≔diff⁡u⁡x,y,x2+diff⁡u⁡x,y,y,y=0,u⁡x,y3−diff⁡u⁡x,y,x+x=0:
rifsimp⁡sys2
table⁡status=system is inconsistent
3. Constrained Mechanical Systems
This example shows the use of rifsimp as a preprocessor for a constrained mechanical system (that is, a Differential-Algebraic Equation or DAE system). The method of Lagrange formulates the motion of a bead of nonzero mass m on a frictionless wire of shape Phi(x,y) under gravity as follows:
ConstrainedSys≔m≠0,Φ⁡x⁡t,y⁡t=0,m⁢diff⁡x⁡t,t,t=−λ⁡t⁢D1⁡Φ⁡x⁡t,y⁡t,m⁢diff⁡y⁡t,t,t=−λ⁡t⁢D2⁡Φ⁡x⁡t,y⁡t−m⁢g
ConstrainedSys≔m≠0,Φ⁡x⁡t,y⁡t=0,m⁢ⅆ2ⅆt2x⁡t=−λ⁡t⁢D1⁡Φ⁡x⁡t,y⁡t,m⁢ⅆ2ⅆt2y⁡t=−λ⁡t⁢D2⁡Φ⁡x⁡t,y⁡t−m⁢g
Note that a mass falling under gravity without air resistance corresponds to:
Φ≔x,y↦0
We pick the example of a pendulum, so the bead moves on a circular wire.
Φ≔x,y↦x2+y2−1
ConstrainedSys
m≠0,x⁡t2+y⁡t2−1=0,m⁢ⅆ2ⅆt2x⁡t=−2⁢λ⁡t⁢x⁡t,m⁢ⅆ2ⅆt2y⁡t=−2⁢λ⁡t⁢y⁡t−m⁢g
Such constrained systems present great difficulties for numerical solvers. Of course, we could eliminate the constraint using polar coordinates, but in general this is impossible for mechanical systems with complicated constraints. For example, just replace the constraint with another function, so that the wire has a different shape.
Φ2≔x,y↦x4+y4−1
(See Reid et al., 1996, given in the reference and package information page Rif). The pendulum is the classic example of such systems that have been the focus of much recent research due to their importance in applications.
SimpSys≔rifsimp⁡ConstrainedSys
SimpSys≔table⁡Constraint=m⁢g⁢y⁡t3+ⅆⅆty⁡t2⁢m−m⁢g⁢y⁡t+2⁢λ⁡t⁢y⁡t2−2⁢λ⁡t=0,x⁡t2+y⁡t2−1=0,Case=x⁡t≠0,ⅆⅆtx⁡t,y⁡t−1⁢y⁡t+1≠0,ⅆⅆtλ⁡t,Solved=ⅆ2ⅆt2y⁡t=−m⁢g+2⁢λ⁡t⁢y⁡tm,ⅆⅆtλ⁡t=−3⁢m⁢g⁢ⅆⅆty⁡t2,ⅆⅆtx⁡t=−y⁡t⁢ⅆⅆty⁡tx⁡t,Pivots=m≠0,x⁡t≠0,y⁡t−1≠0,y⁡t+1≠0
initialdata⁡SimpSys
table⁡Constraint=_C33⁢_C5⁢_C6+2⁢_C32⁢c__1−_C3⁢_C5⁢_C6+_C42⁢_C6−2⁢c__1=0,_C32+c__22−1=0,Finite=λ⁡t0=c__1,x⁡t0=c__2,y⁡t0=_C3,D⁡y⁡t0=_C4,g=_C5,m=_C6,Infinite=,Pivots=_C6≠0,c__2≠0,_C3−1≠0,_C3+1≠0
Although there is no simplification as in the previous examples, rifsimp has found additional constraints that the initial conditions must satisfy (Constraint and Pivots in the initialdata output), and obtained an equation for the time derivative of lambda(t). Maple's dsolve[numeric] can then be used to obtain a numerical solution, in the manner of the previous example.
4. Lie Symmetry Determination
This example shows the use of rifsimp to assist in determination of Lie point symmetries of an ODE. Given the ODE:
ODE≔2⁢x2⁢y⁡x⁢diff⁡y⁡x,x,x−x2⁢diff⁡y⁡x,x2+1+y⁡x2
ODE≔2⁢x2⁢y⁡x⁢ⅆ2ⅆx2y⁡x−x2⁢ⅆⅆxy⁡x2+1+y⁡x2
We can obtain the system of PDE for it's Lie point symmetries via:
sys≔coeffs⁡numer⁡DEtoolsodepde⁡ODE,ξ,η⁡x,y,y⁡x,_y1
sys≔−2⁢∂2∂y2ξ⁡x,y⁢x3⁢y2−∂∂yξ⁡x,y⁢x3⁢y,2⁢∂2∂y2η⁡x,y⁢x3⁢y2−4⁢∂2∂x∂yξ⁡x,y⁢x3⁢y2−∂∂yη⁡x,y⁢x3⁢y+η⁡x,y⁢x3,4⁢∂2∂x∂yη⁡x,y⁢x3⁢y2−2⁢∂2∂x2ξ⁡x,y⁢x3⁢y2−3⁢∂∂yξ⁡x,y⁢x3⁢y+3⁢∂∂yξ⁡x,y⁢x⁢y3−2⁢∂∂xη⁡x,y⁢x3⁢y,2⁢∂2∂x2η⁡x,y⁢x3⁢y2−2⁢∂∂xξ⁡x,y⁢x3⁢y+2⁢∂∂xξ⁡x,y⁢x⁢y3+∂∂yη⁡x,y⁢x3⁢y−∂∂yη⁡x,y⁢x⁢y3+η⁡x,y⁢x3+η⁡x,y⁢x⁢y2−2⁢ξ⁡x,y⁢y3
We can then use rifsimp to greatly simplify this system:
rifsys≔rifsimp⁡sys
rifsys≔table⁡Solved=∂2∂x2η⁡x,y=−η⁡x,y⁢x+ξ⁡x,y⁢yx3,∂∂xξ⁡x,y=η⁡x,yy,∂∂yη⁡x,y=η⁡x,yy,∂∂yξ⁡x,y=0
From this point, pdsolve can be used to obtain the infinitesimals for the Lie point symmetries via:
pdsolve⁡rifsysSolved
η⁡x,y=c__3⁢ln⁡x2+c__2⁢ln⁡x+c__1⁢y,ξ⁡x,y=x⁢c__3⁢ln⁡x2+c__2−2⁢c__3⁢ln⁡x+c__1−c__2+2⁢c__3
See Also
checkrank
DifferentialAlgebra[RosenfeldGroebner]
dsolve[numeric]
initialdata
PDEtools[casesplit]
Rif
rifsimp[adv_options]
rifsimp[cases]
rifsimp[nonlinear]
rifsimp[options]
rifsimp[output]
rifsimp[overview]
rifsimp[ranking]
Download Help Document