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

Online Help

All Products    Maple    MapleSim


dsolve/numeric/mebdfi

numerical solution of differential-algebraic equations

 

Calling Sequence

Parameters

Description

Examples

References

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=1.×10−6.

  

 

  

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

dsysx1tx2tdiffx1tx2t,t+y1ty2tdiffy1ty2t,t,x1tdiffx1t,t+y1tdiffy1t,t,diffy1t,t,t+9.8+2λ1ty1t+2λ2ty1ty2t,diffx1t,t,t+2λ1tx1t+2λ2tx1tx2t,diffy2t,t,t+9.82λ2ty1ty2t,diffx2t,t,t2λ2tx1tx2t

dsysx1tx2tⅆⅆ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)

icsx10=0,x20=0,y10=1,y20=32,Dx10=3,Dx20=4,Dy10=0,Dy20=0

icsx10=0,x20=0,y10=−1,y20=32,Dx10=−3,Dx20=4,Dy10=0,Dy20=0

(2)

Default solution:

dsol1dsolvedsysunionics,numeric,method=mebdfi

dsol1procx_mebdfi...end proc

(3)

t1time:

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

0.749

(5)

Lower order for stability:

dsol2dsolvedsysunionics,numeric,method=mebdfi,maxord=4

dsol2procx_mebdfi...end proc

(6)

t2time:

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.234

(8)

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.

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]