mebdfi - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

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]