numeric first order - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Conversion of High Time Order PDE to First Order

 

Description

Examples

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

diffux,t,t,t=diffux,t,x,x+diffux,t,x,t

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

(1)

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

vx,t=diffux,t,t

vx,t=tux,t

(2)

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

diffux,t,t=vx,t,diffvx,t,t=diffux,t,x,x+diffvx,t,x

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):

PDEdiffux,t,t,t=110diffux,t,x,x,x,x

PDE2t2ux,t=4x4ux,t10

(4)

Initux,0=uvx,D2ux,0=0

Initux,0=uvx,D2ux,0=0

(5)

Bdryu0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

Bdryu0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

(6)

The automatic approach reformulates this input as follows.

PDE1diffux,t,t=vx,t,diffvx,t,t=110diffux,t,x,x,x,x

PDE1tux,t=vx,t,tvx,t=4x4ux,t10

(7)

Init1ux,0=uvx,vx,0=0

Init1ux,0=uvx,vx,0=0

(8)

Bdry1u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

Bdry1u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

(9)

Alternatively, you can reformulate this system as follows:

PDE2diffvx,t,t=310diffux,t,x,diffux,t,t=13diffvx,t,x,x,x

PDE2tvx,t=3xux,t10,tux,t=3x3vx,t3

(10)

Init2ux,0=uvx,vx,0=0

Init2ux,0=uvx,vx,0=0

(11)

Bdry2u0,t=0,v0,t=0,u1,t=0,v1,t=0

Bdry2u0,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:

PDE3diffvx,t,t=310diffux,t,x,x,diffux,t,t=13diffvx,t,x,x

PDE3tvx,t=32x2ux,t10,tux,t=2x2vx,t3

(13)

Init3ux,0=uvx,vx,0=0

Init3ux,0=uvx,vx,0=0

(14)

Bdry3u0,t=0,D1u0,t=0,u1,t=0,D1u1,t=0

Bdry3u0,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.

apxsol0.504413cosh4.73xcos4.73xcos7.07505t+0.495587sin4.73xsinh4.73xcos7.07505t

apxsol0.504413cosh4.73xcos4.73xcos7.07505t+0.495587sin4.73xsinh4.73xcos7.07505t

(16)

uvxevalapxsol,t=0

uvx0.504413cosh4.73x0.504413cos4.73x+0.495587sin4.73x0.495587sinh4.73x

(17)

pds1pdsolvePDE1,Bdry1,Init1,numeric,timestep=132,spacestep=164

pds1moduleexportplot,plot3d,animate,value,settings;...end module

(18)

pds2pdsolvePDE2,Bdry2,Init2,numeric,timestep=132,spacestep=164

pds2moduleexportplot,plot3d,animate,value,settings;...end module

(19)

pds3pdsolvePDE3,Bdry3,Init3,numeric,timestep=132,spacestep=164

pds3moduleexportplot,plot3d,animate,value,settings;...end module

(20)

pl1pds1:-plotux,tapxsol,color=red,t=5:pl2pds2:-plotux,tapxsol,color=blue,t=5:pl3pds3:-plotux,tapxsol,color=green,t=5:plotsdisplaypl1,pl2,pl3

Now using a different approximate solution:

apxsol0.5000168cosh10.99561xcos10.99561xcos38.23301t+0.5sin10.99561xsinh10.99561xcos38.23301t

apxsol0.5000168cosh10.99561xcos10.99561xcos38.23301t+0.5sin10.99561xsinh10.99561xcos38.23301t

(21)

uvxevalapxsol,t=0

uvx0.5000168cosh10.99561x0.5000168cos10.99561x+0.5sin10.99561x0.5sinh10.99561x

(22)

pds1pdsolvePDE1,Bdry1,Init1,numeric,timestep=164,spacestep=164

pds1moduleexportplot,plot3d,animate,value,settings;...end module

(23)

pds2pdsolvePDE2,Bdry2,Init2,numeric,timestep=164,spacestep=164

pds2moduleexportplot,plot3d,animate,value,settings;...end module

(24)

pds3pdsolvePDE3,Bdry3,Init3,numeric,timestep=164,spacestep=164

pds3moduleexportplot,plot3d,animate,value,settings;...end module

(25)

pl1pds1:-plotux,tapxsol,color=red,t=5:pl2pds2:-plotux,tapxsol,color=blue,t=5:pl3pds3:-plotux,tapxsol,color=green,t=5:plotsdisplaypl1,pl2,pl3

See Also

pdsolve

pdsolve/numeric

plot

plot3d

plots[animate]