numerical solution of differential-algebraic equations - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Differential-algebraic Equations : dsolve/mebdfi

dsolve/numeric/mebdfi - numerical solution of differential-algebraic equations

Calling Sequence

dsolve(daesys, numeric, method=mebdfi, vars, options)

Parameters

daesys

-

set or list; differential-algebraic system of equation and initial conditions

numeric

-

literal name; instruct dsolve to find a numerical solution

method=mebdfi

-

literal equation; numerical method to use

vars

-

(optional) a set or list of dependent variables for daesys

options

-

(optional) equations of the form keyword = value

Description

• 

The dsolve command with the options numeric and method=mebdfi finds a numerical solution of a DAE system using the Modified Extended Backward Differentiation Equation Implicit method. This is a stiff method, so can handle stiff problems efficiently, but should only be used for DAE of index 2 or lower. It can be used to solve regular ODE problems, but use of regular ODE solvers is recommended for that purpose (see dsolve[numeric,IVP]).

• 

The following options are available for the mebdfi method:

'output'

=

keyword or array

'known'

=

name or list of names

'startinit'

=

boolean

'optimize'

=

boolean

'maxfun'

=

integer

'abserr'

=

numeric

'relerr'

=

numeric

'minstep'

=

numeric

'maxstep'

=

numeric

'initstep'

=

numeric

'maxord'

=

integer

  

'output' and 'known'

  

The 'output' option specifies the output from dsolve, and the known option specifies user-defined known functions. These options are discussed in dsolve[numeric].

  

 

  

'startinit' and 'optimize'

  

These options control the method and behavior of the computation, the 'startinit' option is the same as for IVP problems, and is discussed in dsolve[numeric,IVP], while the 'optimize' option is discussed in dsolve[numeric].

  

 

  

'maxfun'

  

This option specifies the maximum number of steps taken to obtain the requested solution. For this direct solver, this is the closest parallel to dsolve[maxfun]. By default this option is disabled.

  

 

  

'abserr' and 'relerr'

  

These options specify the desired accuracy of the solution, and are discussed in dsolve[Error_Control]. The default values for mebdfi are abserr=1.10-7 and relerr=0.000001.

  

 

  

'minstep', 'maxstep', and 'initstep'

  

These options provide finer control over the step size used in the method, and are also discussed in dsolve[Error_Control]. By default minstep is determined within the computation, maxstep is disabled, and initstep=relerr. When setting minstep ensure that the value is adequately small to allow for the first few steps, which are computed at a lower order.

  

 

  

'maxord'

  

This option specifies the maximum order of the method used in the course of the computation as an integer between 2 and 8. The default value is 8, but for difficult problems it may be necessary to specify this as 4 or 5. Lower order gives better stability, but is less efficient.

  

 

• 

The computation may return with an error message corresponding to an error condition of the mebdfi procedure.

• 

Results can be plotted using the function odeplot in the plots package.

Examples

Double pendulum (index-reduced to index-2):

dsys:=ⅆ2ⅆt2x1t+2λ1tx1t+2λ2tx1tx2t,ⅆ2ⅆt2y1t+9.8+2λ1ty1t+2λ2ty1ty2t,ⅆ2ⅆt2x2t2λ2tx1tx2t,ⅆ2ⅆt2y2t+9.82λ2ty1ty2t,x1tⅆⅆtx1t+y1tⅆⅆty1t,x1tx2tⅆⅆtx1tx2t+y1ty2tⅆⅆty1ty2t

dsys:=x1tx2tⅆⅆtx1tⅆⅆtx2t+y1ty2tⅆⅆty1tⅆⅆty2t,x1tⅆⅆtx1t+y1tⅆⅆty1t,ⅆ2ⅆt2x2t2λ2tx1tx2t,ⅆ2ⅆt2x1t+2λ1tx1t+2λ2tx1tx2t,ⅆ2ⅆt2y2t+9.82λ2ty1ty2t,ⅆ2ⅆt2y1t+9.8+2λ1ty1t+2λ2ty1ty2t

(1)

ics:=x10=0,Dx10=3,y10=1,Dy10=0,x20=0,Dx20=4,y20=32,Dy20=0

ics:=x10=0,x20=0,y10=1,y20=32,Dx10=3,Dx20=4,Dy10=0,Dy20=0

(2)

Default solution:

dsol1:=dsolvedsys∪ics,numeric,method=mebdfi

dsol1:=procx_mebdfi...end proc

(3)

t1:=time:

dsol110

t=10.,λ1t=8.05374866836774572,λ2t=6.40533775902082869,x1t=0.355531961724009915,ⅆⅆtx1t=1.25978921249117670,x2t=0.492864788890956418,ⅆⅆtx2t=1.05303335398026632,y1t=0.934664111102251338,ⅆⅆty1t=0.479204587580475905,y2t=0.453894585514793392,ⅆⅆty2t=0.538264833117563346

(4)

timet1

1.133

(5)

Lower order for stability:

dsol2:=dsolvedsys∪ics,numeric,method=mebdfi,maxord=4

dsol2:=procx_mebdfi...end proc

(6)

t2:=time:

dsol210

t=10.,λ1t=8.05124380921260041,λ2t=6.42065568374894546,x1t=0.357252010506513173,ⅆⅆtx1t=1.25072569463780869,x2t=0.492112228851291800,ⅆⅆtx2t=1.04698380844525074,y1t=0.934008348789023168,ⅆⅆty1t=0.478394293227407508,y2t=0.452537634291989843,ⅆⅆty2t=0.535462511444270373

(7)

timet2

1.853

(8)

See Also

dsolve/dae_extension, dsolve/Error_Control, dsolve[ck45], dsolve[maxfun], dsolve[numeric,DAE], dsolve[numeric,IVP], dsolve[numeric], dsolve[rkf45], dsolve[rosenbrock], dsolve[Stiffness], plots[odeplot]

References

  

Cash, J.R. "The Integration of stiff IVP in ODE using modified extended BDF." Computers and Mathematics with Applications. Vol. 9. (1983): 645-657.

  

Cash, J.R., and Considine, S. "An MEBDF code for stiff IVP." ACM Trans Math Software. 1992: 142-158.


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