## DISODE45

DISODE45 is a Matlab function that solves non-smooth, nonstiff differential systems

`y'(t)=f(t,y(t)), \qquad y(0)=y_0 \in \mathbb{R}^m, \qquad t\in[t_0, t_f]`

The non-smoothness of the system happens at points, switching points, `(t_d, y_d)` where one of several switching surfaces defined by a function `g(t,y)` vanish, that is, `g_i(t_d,y_d)=0`.

The call to this function has the following syntax

[T,Y] = disode45(odefun,switchfun,tspan,y0)

[T,Y,TDIS,YDIS,IDIS,STATS]=disode45(odefun,switchfun,tspan,y0)

[T,Y] = disode45(odefun,switchfun,tspan,y0,options)

[T,Y,TDIS,YDIS,IDIS,STATS]=disode45(odefun,switchfun,tspan,y0,options)

[T,Y,TDIS,YDIS,IDIS,STATS]=disode45(odefun,switchfun,tspan,y0)

[T,Y] = disode45(odefun,switchfun,tspan,y0,options)

[T,Y,TDIS,YDIS,IDIS,STATS]=disode45(odefun,switchfun,tspan,y0,options)

It is very similar to the syntax used by the ODE suite Matlab package so that users that are familiar with this software can find the use of disode45 very easy.

The code has the following features:

- It can solve problems with as many switching surfaces as needed.
- The vector field `f(t,y)` can be a piecewise function such that at a region `\Omega^{(i)}` it has a value `f^{(i)}(t,y)`. A function `f^{(i)}(t,y)` can not be defined at a different region `\Omega^{(j)}` for `j\ne i`.
- It can deal with transversal discontinuities
- It can integrate problems with Filippov sliding regions
- It can integrate problems with tangent sliding regions
- It can integrate ODEs with impulses
- It can integrate problems with a switching vector field

Version:

1.0

Revision date:

Monday, 23 February, 2015

Creation date:

Monday, 23 February, 2015

Authors of the IUMA: