Conversion of High Time Order PDE to First Order - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Differential Equations : pdsolve : pdsolve/numeric/firstorder

Conversion of High Time Order PDE to First Order

Description

• 

As mentioned on the pdsolve/numeric page, before numerical solution of time based PDE systems containing higher than first order derivatives, the system is converted to an equivalent first order system for solution.

  

The standard method of doing this is to introduce new variables that take the place of the derivatives that are higher than first order in time, and by defining these new variables through equations that are first order in time.

• 

The primary reason for this page is to explain that though this approach is straightforward to automate, it is not always the best solution. Other solutions, however, require reformulation of the input PDE or system, including any initial or boundary conditions, so often this is best done manually.  See the second example below.

• 

From the examples below, it appears as though the choice of lowering the maximal differential order in x is the best strategy for the first case, while lowering the error introduced in the boundary conditions is the best strategy for the second case.

  

This behavior can vary based on any aspect of the problem, the PDE, the initial conditions, or the boundary conditions.

  

In addition, in some cases the lowering of the differential order may be difficult due to mixed derivative terms or difficult boundary and initial conditions.

Examples

The PDE

2t2ux,t=2x2ux,t+2txux,t

2t2ux,t=2x2ux,t+2xtux,t

(1)

is converted to first order by introducing a new variable vx,t which is defined by

vx,t=tux,t

vx,t=tux,t

(2)

Use of this new variable in the input system results in the first order system:

tux,t=vx,t,tvx,t=2x2ux,t+xvx,t

tux,t=vx,t,tvx,t=2x2ux,t+xvx,t

(3)

As a further example, for a PDE containing a fourth time derivative of a dependent variable, three new variables need to be introduced to bring the system to first order.

Consider the following PDE, initial conditions, and boundary conditions (the linear biharmonic equation for a bar with rigidly fixed ends):

PDE:=2t2ux,t=14x4ux,t10

PDE:=2t2ux,t=1104x4ux,t

(4)

Init:=ux,0=uvx,D2ux,0=0

Init:=ux,0=uvx,D2ux,0=0

(5)

Bdry:=u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

Bdry:=u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

(6)

The automatic approach reformulates this input as follows.

PDE1:=tux,t=vx,t,tvx,t=14x4ux,t10

PDE1:=tux,t=vx,t,tvx,t=1104x4ux,t

(7)

Init1:=ux,0=uvx,vx,0=0

Init1:=ux,0=uvx,vx,0=0

(8)

Bdry1:=u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

Bdry1:=u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

(9)

Alternatively, you can reformulate this system as follows:

PDE2:=tvx,t=3xux,t10,tux,t=13x3vx,t3

PDE2:=tvx,t=310xux,t,tux,t=133x3vx,t

(10)

Init2:=ux,0=uvx,vx,0=0

Init2:=ux,0=uvx,vx,0=0

(11)

Bdry2:=u0,t=0,v0,t=0,u1,t=0,v1,t=0

Bdry2:=u0,t=0,v0,t=0,u1,t=0,v1,t=0

(12)

which may be a good choice as all boundary conditions are of the 'point'='value' form (so there will be no error introduced by discretization).

As yet another alternative:

PDE3:=tvx,t=32x2ux,t10,tux,t=12x2vx,t3

PDE3:=tvx,t=3102x2ux,t,tux,t=132x2vx,t

(13)

Init3:=ux,0=uvx,vx,0=0

Init3:=ux,0=uvx,vx,0=0

(14)

Bdry3:=u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

Bdry3:=u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

(15)

which may be a good choice because the system has the lowest possible maximal differential order in x.

Compare the error of the solutions obtained from these equivalent systems over the range t=0..5 for fixed step sizes.

Note: Use a uvx for which you have an approximate solution.

apxsol:=0.504413cosh4.73xcos4.73xcos7.07505t+0.495587sin4.73xsinh4.73xcos7.07505t

apxsol:=0.504413cosh4.73xcos4.73xcos7.07505t+0.495587sin4.73xsinh4.73xcos7.07505t

(16)

uvx:=apxsolt=0|apxsolt=0

uvx:=0.504413cosh4.73x0.504413cos4.73x+0.495587sin4.73x0.495587sinh4.73x

(17)

pds1:=pdsolvePDE1,Init1,Bdry1,numeric,timestep=132,spacestep=164

pds1:=moduleexportplot,plot3d,animate,value,settings;...end module

(18)

pds2:=pdsolvePDE2,Init2,Bdry2,numeric,timestep=132,spacestep=164

pds2:=moduleexportplot,plot3d,animate,value,settings;...end module

(19)

pds3:=pdsolvePDE3,Init3,Bdry3,numeric,timestep=132,spacestep=164

pds3:=moduleexportplot,plot3d,animate,value,settings;...end module

(20)

pl1:=pds1:-plotux,tapxsol,color=red,t=5:pl2:=pds2:-plotux,tapxsol,color=blue,t=5:pl3:=pds3:-plotux,tapxsol,color=green,t=5:plots[display]pl1,pl2,pl3

Now using a different approximate solution:

apxsol:=0.5000168cosh10.99561xcos10.99561xcos38.23301t+0.5sin10.99561xsinh10.99561xcos38.23301t

apxsol:=0.5000168cosh10.99561xcos10.99561xcos38.23301t+0.5sin10.99561xsinh10.99561xcos38.23301t

(21)

uvx:=apxsolt=0|apxsolt=0

uvx:=0.5000168cosh10.99561x0.5000168cos10.99561x+0.5sin10.99561x0.5sinh10.99561x

(22)

pds1:=pdsolvePDE1,Init1,Bdry1,numeric,timestep=164,spacestep=164

pds1:=moduleexportplot,plot3d,animate,value,settings;...end module

(23)

pds2:=pdsolvePDE2,Init2,Bdry2,numeric,timestep=164,spacestep=164

pds2:=moduleexportplot,plot3d,animate,value,settings;...end module

(24)

pds3:=pdsolvePDE3,Init3,Bdry3,numeric,timestep=164,spacestep=164

pds3:=moduleexportplot,plot3d,animate,value,settings;...end module

(25)

pl1:=pds1:-plotux,tapxsol,color=red,t=5:pl2:=pds2:-plotux,tapxsol,color=blue,t=5:pl3:=pds3:-plotux,tapxsol,color=green,t=5:plots[display]pl1,pl2,pl3

See Also

pdsolve, pdsolve/numeric, plot, plot3d, plots[animate]


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam